From c71cb022f71ec4aa3ab478094c58937702ae2845 Mon Sep 17 00:00:00 2001 From: DL6ER Date: Fri, 11 May 2018 16:31:45 +0200 Subject: [PATCH] Return early if no wildcard domains are defined to avoid warning to be printed although for-loop will anyhow be skipped Signed-off-by: DL6ER --- datastructure.c | 17 +++++++++-------- 1 file changed, 9 insertions(+), 8 deletions(-) diff --git a/datastructure.c b/datastructure.c index 1ffc6bcf..0d19fc61 100644 --- a/datastructure.c +++ b/datastructure.c @@ -239,15 +239,18 @@ int detectStatus(const char *domain) // Note that this is a really expensive subroutine and trying to match // blocked domains against all configured wildcards will take some time int i; + + // Return early if no wildcard domains are defined + if(counters.wildcarddomains < 1) + return QUERY_CACHE; + validate_access("wildcarddomains", counters.wildcarddomains-1, false, __LINE__, __FUNCTION__, __FILE__); for(i=0; i < counters.wildcarddomains; i++) { if(strcasecmp(wildcarddomains[i], domain) == 0) { // Exact match with wildcard domain - // if(debug) - // printf("%s / %s (exact wildcard match)\n",wildcarddomains[i], domain); - return 4; + return QUERY_WILDCARD; } // Create copy of domain under investigation char * part = strdup(domain); @@ -272,13 +275,11 @@ int detectStatus(const char *domain) // Test for a match if(strcasecmp(wildcarddomains[i], partbuffer) == 0) { - // Free allocated memory before return'ing + // Free allocated memory before returning free(part); free(partbuffer); // Return match with wildcard domain - // if(debug) - // printf("%s / %s (wildcard match)\n",wildcarddomains[i], partbuffer); - return 4; + return QUERY_WILDCARD; } if(strlen(partbuffer) > 0) { @@ -297,5 +298,5 @@ int detectStatus(const char *domain) // wildcard blocking, but from e.g. an // address=// configuration // Answer as "cached" - return 3; + return QUERY_CACHE; }