diff options
author | Sergey Poznyakoff <gray@gnu.org.ua> | 2007-10-29 18:27:21 +0000 |
---|---|---|
committer | Sergey Poznyakoff <gray@gnu.org.ua> | 2007-10-29 18:27:21 +0000 |
commit | 6624b845b4f02110dd1068582d3e11956a76d91b (patch) | |
tree | 66df7b421090b6c5f8333f4d7cbfb7deba03e45b /src/dnsbase.c | |
parent | 13b3191f6d774341df664222adc5f85cad0a00cb (diff) | |
download | mailfromd-6624b845b4f02110dd1068582d3e11956a76d91b.tar.gz mailfromd-6624b845b4f02110dd1068582d3e11956a76d91b.tar.bz2 |
(domain_name_cmp): Allow for trailing dot after domain.
git-svn-id: file:///svnroot/mailfromd/trunk@1524 7a8a7f39-df28-0410-adc6-e0d955640f24
Diffstat (limited to 'src/dnsbase.c')
-rw-r--r-- | src/dnsbase.c | 10 |
1 files changed, 8 insertions, 2 deletions
diff --git a/src/dnsbase.c b/src/dnsbase.c index cbb658d0..28c88988 100644 --- a/src/dnsbase.c +++ b/src/dnsbase.c @@ -270,15 +270,21 @@ static int domain_name_cmp(const char *ptr, const char *name, const char *domain) { int c; - while (*name) + while (*name && *ptr) if (c = *ptr++ - *name++) return c; if (*domain && *ptr != '.') return *ptr - *domain; ptr++; - while (*domain) + 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; } |