diff options
author | Eric S. Raymond <esr@thyrsus.com> | 1996-10-19 14:17:06 +0000 |
---|---|---|
committer | Eric S. Raymond <esr@thyrsus.com> | 1996-10-19 14:17:06 +0000 |
commit | 3c4ab481e9cfe604f283f7173405fc27ae91b226 (patch) | |
tree | c943ac760ba1b41c1dfb4a6d2d42e1f19bfdba20 | |
parent | 00fa03c8553785f9b123a8552d2b59266b418e2c (diff) | |
download | fetchmail-3c4ab481e9cfe604f283f7173405fc27ae91b226.tar.gz fetchmail-3c4ab481e9cfe604f283f7173405fc27ae91b226.tar.bz2 fetchmail-3c4ab481e9cfe604f283f7173405fc27ae91b226.zip |
Better octet-message parsing.
svn path=/trunk/; revision=351
-rw-r--r-- | NEWS | 2 | ||||
-rw-r--r-- | pop3.c | 13 |
2 files changed, 13 insertions, 2 deletions
@@ -42,6 +42,8 @@ bugs -- * Rewrite "To: jrh (J. Random Hacker)" correctly. +* Find "nnn octets" anywhere on a POP3 server's RETR response line. + fetchmail-1.8 (Fri Oct 11 15:08:10 EDT 1996): features -- @@ -6,6 +6,7 @@ #include <config.h> #include <stdio.h> +#include <string.h> #include "socket.h" #include "fetchmail.h" @@ -191,12 +192,20 @@ int number; int *lenp; { int ok; - char buf [POPBUFSIZE+1]; + char buf [POPBUFSIZE+1], *cp; gen_send(socket, "RETR %d", number); if ((ok = pop3_ok(socket, buf)) != 0) return(ok); - *lenp = atoi(buf); + /* look for "nnn octets" -- there may or may not be preceding cruft */ + if ((cp = strstr(buf, " octets")) == (char *)NULL) + *lenp = 0; + else + { + while (isdigit(*--cp)) + continue; + *lenp = atoi(++cp); + } return(0); } |