aboutsummaryrefslogtreecommitdiff
path: root/src/dnsbase.c
diff options
context:
space:
mode:
authorSergey Poznyakoff <gray@gnu.org.ua>2007-10-29 18:27:21 +0000
committerSergey Poznyakoff <gray@gnu.org.ua>2007-10-29 18:27:21 +0000
commit6624b845b4f02110dd1068582d3e11956a76d91b (patch)
tree66df7b421090b6c5f8333f4d7cbfb7deba03e45b /src/dnsbase.c
parent13b3191f6d774341df664222adc5f85cad0a00cb (diff)
downloadmailfromd-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.c10
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;
}

Return to:

Send suggestions and report system problems to the System administrator.