diff options
| -rw-r--r-- | NEWS | 4 | ||||
| -rw-r--r-- | imap.c | 23 | 
2 files changed, 20 insertions, 7 deletions
@@ -2,6 +2,10 @@  (The `lines' figures total .c, .h, .l, and .y files under version control.) +* Grant Edwards's patch to correct NTLM behavior. +* In IMAP, set Seen flag explicity when keep is on; works around flaky +  servers that don't set Seen on a body fetch. +  fetchmail-5.1.2 (Thu Oct  7 09:46:07 EDT 1999), 17906 lines:  * Joe Loughry <loughry@uswest.net> sent a patch to handle multihomed machines.  * Changed mimedecode default to `off'; it seems that doing RFC2047 decoding @@ -982,13 +982,7 @@ int imap_getauth(int sock, struct query *ctl, char *greeting)      {          if (outlevel >= O_DEBUG)              report (stdout, _("NTLM authentication is supported\n")); -    if ((ok = do_imap_ntlm (sock, ctl))) -        { -            if (outlevel >= O_MONITOR) -                report (stdout, "IMAP> *\n"); -            SockWrite (sock, "*\r\n", 3); -        } -        return ok; +        return do_imap_ntlm (sock, ctl);      }  #endif /* NTLM_ENABLE */ @@ -1257,6 +1251,21 @@ static int imap_trail(int sock, struct query *ctl, int number)  	/* UW IMAP returns "OK FETCH", Cyrus returns "OK Completed" */  	if (strstr(buf, "OK"))  	    break; + +	/* +	 * We've had a report of one server (not yet identified) that  +	 * fails to set SEEN on a body fetch.  This becomes an issue when +	 * keep is on, because seen messages aren't deleted and get +	 * refetched on each poll.  As a workaround, if keep is on +	 * we set the Seen flag explicitly. +	 */ +	if (ctl->keep) +	    if ((ok = gen_transact(sock, +			imap_version == IMAP4  +				? "STORE %d +FLAGS.SILENT (\\Seen)" +				: "STORE %d +FLAGS (\\Seen)",  +			number))) +		return(ok);      }      return(PS_SUCCESS);  | 
