diff options
author | Eric S. Raymond <esr@thyrsus.com> | 1998-03-26 17:26:42 +0000 |
---|---|---|
committer | Eric S. Raymond <esr@thyrsus.com> | 1998-03-26 17:26:42 +0000 |
commit | cb84a102dd4c8b647910670bf063bf66473c9c20 (patch) | |
tree | 13738f86fc5e943182f47f47444029a894af62c0 | |
parent | 09eb76026c868509728cf4075812784914026aa7 (diff) | |
download | fetchmail-cb84a102dd4c8b647910670bf063bf66473c9c20.tar.gz fetchmail-cb84a102dd4c8b647910670bf063bf66473c9c20.tar.bz2 fetchmail-cb84a102dd4c8b647910670bf063bf66473c9c20.zip |
Document the fact that TOP doesn't really let us do split fetches a la IMAP.
svn path=/trunk/; revision=1726
-rw-r--r-- | pop3.c | 29 |
1 files changed, 27 insertions, 2 deletions
@@ -486,11 +486,36 @@ static int pop3_is_old(int sock, struct query *ctl, int num) str_find (&ctl->newsaved, num))); } +#ifdef UNUSED +/* + * We could use this to fetch headers only as we do for IMAP. The trouble + * is that there's no way to fetch the body only. So the following RETR + * would have to re-fetch the header. Enough messages have longer headers + * than bodies to make this a net loss. + */ +static int pop_fetch_headers(int sock, struct query *ctl,int number,int *lenp) +/* request headers of nth message */ +{ + int ok; + char buf[POPBUFSIZE+1]; + + /* phase = PHASE_FETCH */ + + gen_send(sock, "TOP %d 0", number); + if ((ok = pop3_ok(sock, buf)) != 0) + return(ok); + + *lenp = -1; /* we got sizes from the LIST response */ + + return(PS_SUCCESS); +} +#endif /* UNUSED */ + static int pop3_fetch(int sock, struct query *ctl, int number, int *lenp) /* request nth message */ { int ok; - char buf [POPBUFSIZE+1]; + char buf[POPBUFSIZE+1]; /* phase = PHASE_FETCH */ @@ -500,7 +525,7 @@ static int pop3_fetch(int sock, struct query *ctl, int number, int *lenp) *lenp = -1; /* we got sizes from the LIST response */ - return(0); + return(PS_SUCCESS); } static int pop3_delete(int sock, struct query *ctl, int number) |