]> Pileus Git - ~andy/fetchmail/commitdiff
Version bump.
authorEric S. Raymond <esr@thyrsus.com>
Mon, 31 Jan 2000 07:03:54 +0000 (07:03 -0000)
committerEric S. Raymond <esr@thyrsus.com>
Mon, 31 Jan 2000 07:03:54 +0000 (07:03 -0000)
svn path=/trunk/; revision=2724

Makefile.in
NEWS
uid.c

index cfc7db7ab17241525870a7c1e5d851778b9537c8..31e69ff8114bb3138358b72c6ad3a9122a582e78 100644 (file)
@@ -4,7 +4,7 @@
 # So just uncomment all the lines marked QNX.
 
 PACKAGE = fetchmail
-VERSION = 5.2.4
+VERSION = 5.2.5
 
 SUBDIRS = @INTLSUB@ @POSUB@  
 
diff --git a/NEWS b/NEWS
index 16e501a9e62c7b839ee4bb7db33d2c5f61f04b08..8dc6f564127f20be4dbf54d1f00c7b34193fd8d9 100644 (file)
--- a/NEWS
+++ b/NEWS
@@ -15,6 +15,15 @@ package will have two security verifications instead of one...
 
 (The `lines' figures total .c, .h, .l, and .y files under version control.)
 
+fetchmail-5.2.5 (Mon Jan 31 02:02:48 EST 2000), 18445 lines:
+
+* Fixed bugs in BSMTP generation reported by Jaap Lutz.
+* Make fetchmailconf better at handling backslashes in usernames
+  and passwords.
+* Jochen Hayeek's patch to handle spaces in UID usernames.
+
+There are 279 people on fetchmail-friends and 497 on fetchmail-announce.
+
 fetchmail-5.2.4 (Mon Jan 17 02:37:58 EST 2000), 18445 lines:
 
 * Fix bug introduced in 5.2.2 that stopped --syslog from working.
diff --git a/uid.c b/uid.c
index 8b6777b612c434e84140f1c38d61e9687d6e85d4..9017ebbd050122707e5f4aefad28c9c41001e320 100644 (file)
--- a/uid.c
+++ b/uid.c
@@ -113,54 +113,59 @@ void initialize_saved_lists(struct query *hostlist, const char *idfile)
 
        while (fgets(buf, POPBUFSIZE, tmpfp) != (char *)NULL)
        {
-         /*
-          * At this point, we assume the bug has two fields -- a user@host 
-          * part, and an ID part. Either field may contain spurious @ signs. 
-           * The previous version of this code presumed one could split at 
-           * the rightmost '@'.  This is not correct, as InterMail puts an 
-           * '@' in the UIDL.
-          */
+           /*
+            * At this point, we assume the bug has two fields -- a user@host 
+            * part, and an ID part. Either field may contain spurious @ signs.
+            * The previous version of this code presumed one could split at 
+            * the rightmost '@'.  This is not correct, as InterMail puts an 
+            * '@' in the UIDL.
+            */
          
-         /* very first, skip leading spaces */
-         user = buf + strspn(buf, " \t");
+           /* first, skip leading spaces */
+           user = buf + strspn(buf, " \t");
 
-         /* First, we split the buf into a userhost part and an id part */
-         if ( (delimp1 = strpbrk(user, " \t")) != NULL ) {
-               id = delimp1 + strspn(delimp1, " \t");  /* set pointer to id */
+           /* First, we split the buf into a userhost part and an id part */
+           if ((id = strchr(user, '<')) != NULL )      /* set pointer to id */
+           {
+               for (delimp1 = id; delimp1 >= user; delimp1--)
+                   if ((*delimp1 != ' ') && (*delimp1 != '\t'))
+                       break;
+               delimp1++; /* but what if there is only white space ?!? */
                saveddelim1 = *delimp1; /* save char after token */
                *delimp1 = '\0';                /* delimit token with \0 */
-               if (id != NULL) {
-                       /* now remove trainling white space chars from id */
-                       if ( (delimp2 = strpbrk(id, " \t\n")) != NULL ) {
-                               saveddelim2 = *delimp2;
-                               *delimp2 = '\0';
-                       }
-                       atsign = strrchr(user, '@');
-                       if (atsign) {
-                               *atsign = '\0';
-                               host = atsign + 1;
-
-                       }
-                       for (ctl = hostlist; ctl; ctl = ctl->next) {
-                               if (ctl->server.truename &&
-                                   strcasecmp(host, ctl->server.truename) == 0
-                                   && strcasecmp(user, ctl->remotename) == 0) {
+               if (id != NULL) 
+               {
+                   /* now remove trailing white space chars from id */
+                   if ((delimp2 = strpbrk(id, " \t\n")) != NULL ) {
+                       saveddelim2 = *delimp2;
+                       *delimp2 = '\0';
+                   }
+                   atsign = strrchr(user, '@');
+                   if (atsign) {
+                       *atsign = '\0';
+                       host = atsign + 1;
+
+                   }
+                   for (ctl = hostlist; ctl; ctl = ctl->next) {
+                       if (ctl->server.truename &&
+                           strcasecmp(host, ctl->server.truename) == 0
+                           && strcasecmp(user, ctl->remotename) == 0) {
        
-                                       save_str(&ctl->oldsaved, id, UID_SEEN);
-                                       break;
-                               }
+                           save_str(&ctl->oldsaved, id, UID_SEEN);
+                           break;
                        }
-                       /* if it's not in a host we're querying,
-                       ** save it anyway */
-                       if (ctl == (struct query *)NULL) {
+                   }
+                   /* if it's not in a host we're querying,
+                   ** save it anyway */
+                   if (ctl == (struct query *)NULL) {
                                /* restore string */
-                               *delimp1 = saveddelim1;
-                               *atsign = '@';
-                               if (delimp2 != NULL) {
-                                       *delimp2 = saveddelim2;
-                               }
-                               save_str(&scratchlist, buf, UID_SEEN);
+                       *delimp1 = saveddelim1;
+                       *atsign = '@';
+                       if (delimp2 != NULL) {
+                           *delimp2 = saveddelim2;
                        }
+                       save_str(&scratchlist, buf, UID_SEEN);
+                   }
                }
            }
        }