aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSergey Poznyakoff <gray@gnu.org.ua>2007-10-29 23:20:45 +0000
committerSergey Poznyakoff <gray@gnu.org.ua>2007-10-29 23:20:45 +0000
commit13ae7323003334393343dfedac03c75e51c22be9 (patch)
tree583ed1f3304867935e52c493ebc608f6ed49172c
parent6624b845b4f02110dd1068582d3e11956a76d91b (diff)
downloadmailfromd-13ae7323003334393343dfedac03c75e51c22be9.tar.gz
mailfromd-13ae7323003334393343dfedac03c75e51c22be9.tar.bz2
(domain_name_cmp): Yet another bugfix
git-svn-id: file:///svnroot/mailfromd/trunk@1525 7a8a7f39-df28-0410-adc6-e0d955640f24
-rw-r--r--src/dnsbase.c24
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)
273 while (*name && *ptr) 273 while (*name && *ptr)
274 if (c = *ptr++ - *name++) 274 if (c = *ptr++ - *name++)
275 return c; 275 return c;
276 if (*domain && *ptr != '.') 276 if (*domain) {
277 return *ptr - *domain; 277 if (*ptr != '.')
278 ptr++; 278 return *ptr - *domain;
279 while (*domain && *ptr)
280 if (c = *ptr++ - *domain++)
281 return c;
282 if (*domain == '.' && domain[1] == 0)
283 domain++;
284 if (*ptr == '.' && ptr[1] == 0)
285 ptr++; 279 ptr++;
286 if (*domain || *ptr) 280 while (*domain && *ptr)
287 return 1; 281 if (c = *ptr++ - *domain++)
282 return c;
283 if (*domain == '.' && domain[1] == 0)
284 domain++;
285 if (*ptr == '.' && ptr[1] == 0)
286 ptr++;
287 if (*domain || *ptr)
288 return 1;
289 }
288 return 0; 290 return 0;
289} 291}
290 292

Return to:

Send suggestions and report system problems to the System administrator.