From e83dc39d6853ec31919ee54223fe1196b8d7de1d Mon Sep 17 00:00:00 2001 From: "Eric S. Raymond" Date: Tue, 30 Sep 1997 21:57:07 +0000 Subject: More robust message size queries svn path=/trunk/; revision=1447 --- NEWS | 1 + driver.c | 4 ++++ imap.c | 3 +-- pop3.c | 2 -- 4 files changed, 6 insertions(+), 4 deletions(-) diff --git a/NEWS b/NEWS index de6e58a3..fd552e44 100644 --- a/NEWS +++ b/NEWS @@ -21,6 +21,7 @@ fetchmail-4.2.9 () existing Received line and *after* any From headers shipped up by the server. This fixes odd problems with some sensitive sendmails. * Compuserve RPA authentication support. +* Fixed a bug that screwed up message size queries on some IMAP2bis servers. There are 285 people on the fetchmail-friends list. diff --git a/driver.c b/driver.c index c0af504f..c548fafd 100644 --- a/driver.c +++ b/driver.c @@ -1642,7 +1642,11 @@ const struct method *proto; /* protocol method table */ */ if (proto->getsizes) { + int i; + msgsizes = (int *)alloca(sizeof(int) * count); + for (i = 0; i < count; i++) + msgsizes[i] = -1; ok = (proto->getsizes)(sock, count, msgsizes); if (ok != 0) diff --git a/imap.c b/imap.c index cb3437a8..2b25f866 100644 --- a/imap.c +++ b/imap.c @@ -463,6 +463,7 @@ static int imap_getsizes(int sock, int count, int *sizes) /* capture the sizes of all messages */ { char buf [POPBUFSIZE+1]; + int i; gen_send(sock, "FETCH 1:%d RFC822.SIZE", count); for (;;) @@ -475,8 +476,6 @@ static int imap_getsizes(int sock, int count, int *sizes) break; else if (sscanf(buf, "* %d FETCH (RFC822.SIZE %d)", &num, &size) == 2) sizes[num - 1] = size; - else - sizes[num - 1] = -1; } return(PS_SUCCESS); diff --git a/pop3.c b/pop3.c index 59d7f9e1..356feb36 100644 --- a/pop3.c +++ b/pop3.c @@ -434,8 +434,6 @@ static int pop3_getsizes(int sock, int count, int *sizes) break; else if (sscanf(buf, "%d %d", &num, &size) == 2) sizes[num - 1] = size; - else - sizes[num - 1] = -1; } return(ok); -- cgit v1.2.3