diff options
-rw-r--r-- | NEWS | 3 | ||||
-rw-r--r-- | pop3.c | 3 | ||||
-rw-r--r-- | uid.c | 4 |
3 files changed, 8 insertions, 2 deletions
@@ -29,6 +29,9 @@ features -- * SIGUSR1 is now used for wakeup rather than SIGHUP. This eliminates any possible confusion about fetchmail's behavior at logout time. +* Received line parsing for envelope addresses now matches MX as well as + canonical DNS addresses, making multidrop routing slightly more reliable. + bugs -- * Fixed a FreeBSD compilation glitch involving SIGCLD (thanks to @@ -181,6 +181,8 @@ static int pop3_getrange(FILE *sockfp, struct query *ctl, int*countp, int*newp) else if (sscanf(buf, "%d %s", &num, id) == 2) { save_str(&ctl->newsaved, num, id); + + /* note: ID comparison is caseblind */ if (!str_in_list(&ctl->oldsaved, id)) (*newp)++; } @@ -231,6 +233,7 @@ static int pop3_is_old(FILE *sockfp, struct query *ctl, int num) if (!ctl->oldsaved) return (num <= last); else + /* note: ID comparison is caseblind */ return (str_in_list(&ctl->oldsaved, str_find (&ctl->newsaved, num))); } @@ -163,11 +163,11 @@ void free_str_pair_list(struct idlist **idl) #endif int str_in_list(struct idlist **idl, const char *str) -/* is a given ID in the given list? */ +/* is a given ID in the given list? (comparison is caseblind) */ { if (*idl == (struct idlist *)NULL || str == (char *) NULL) return(0); - else if (strcmp(str, (*idl)->id) == 0) + else if (strcasecmp(str, (*idl)->id) == 0) return(1); else return(str_in_list(&(*idl)->next, str)); |