userAgent filter now checks for substrings instead of perfect match

This commit is contained in:
uan
2025-08-08 13:49:50 +02:00
parent 11dd7a3587
commit 03d6abb69a

View File

@@ -123,18 +123,28 @@ func (ws *WebServer) isIpValid(ip string) bool {
case FILTER_MODE_BLACKLIST: case FILTER_MODE_BLACKLIST:
return !slices.Contains(ws.ipFilter, ip) return !slices.Contains(ws.ipFilter, ip)
default: default:
return false return false //if something went wrong with conf parsing
} }
} }
func (ws *WebServer) isUserAgentValid(userAgent string) bool { func (ws *WebServer) isUserAgentValid(userAgent string) bool {
switch ws.userAgentFilterMode { switch ws.userAgentFilterMode {
case FILTER_MODE_WHITELIST: case FILTER_MODE_WHITELIST:
return slices.Contains(ws.userAgentFilter, userAgent) for _, userAgentString := range ws.userAgentFilter {
case FILTER_MODE_BLACKLIST: if strings.Contains(userAgentString, userAgent) {
return !slices.Contains(ws.userAgentFilter, userAgent) return true
default: }
}
return false return false
case FILTER_MODE_BLACKLIST:
for _, userAgentString := range ws.userAgentFilter {
if strings.Contains(userAgentString, userAgent) {
return false
}
}
return true
default:
return false //if something went wrong with conf parsing
} }
} }