diff options
-rw-r--r-- | src/dnsbase.c | 24 |
1 files changed, 13 insertions, 11 deletions
diff --git a/src/dnsbase.c b/src/dnsbase.c index 28c88988..3d063166 100644 --- a/src/dnsbase.c +++ b/src/dnsbase.c @@ -273,18 +273,20 @@ domain_name_cmp(const char *ptr, const char *name, const char *domain) while (*name && *ptr) if (c = *ptr++ - *name++) return c; - if (*domain && *ptr != '.') - return *ptr - *domain; - ptr++; - while (*domain && *ptr) - if (c = *ptr++ - *domain++) - return c; - if (*domain == '.' && domain[1] == 0) - domain++; - if (*ptr == '.' && ptr[1] == 0) + if (*domain) { + if (*ptr != '.') + return *ptr - *domain; ptr++; - if (*domain || *ptr) - return 1; + while (*domain && *ptr) + if (c = *ptr++ - *domain++) + return c; + if (*domain == '.' && domain[1] == 0) + domain++; + if (*ptr == '.' && ptr[1] == 0) + ptr++; + if (*domain || *ptr) + return 1; + } return 0; } |