diff options
author | Sergey Poznyakoff <gray@gnu.org.ua> | 2007-10-29 23:20:45 +0000 |
---|---|---|
committer | Sergey Poznyakoff <gray@gnu.org.ua> | 2007-10-29 23:20:45 +0000 |
commit | 13ae7323003334393343dfedac03c75e51c22be9 (patch) | |
tree | 583ed1f3304867935e52c493ebc608f6ed49172c | |
parent | 6624b845b4f02110dd1068582d3e11956a76d91b (diff) | |
download | mailfromd-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.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) | |||
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 | ||