diff options
-rw-r--r-- | NEWS | 5 | ||||
-rw-r--r-- | imap.c | 9 |
2 files changed, 14 insertions, 0 deletions
@@ -111,6 +111,11 @@ fetchmail 6.3.10 (not yet released): * fetchmail only requests IPv6 addresses via name service if at least one is configured on the local host, likewise for IPv4. (AI_ADDRCONFIG flag to getaddrinfo()) Extended version of Redhat's patch. +* If the server name contains "yahoo.com", offers the "ID" capability, and we're + polling via IMAP, send an ID ("guid" "1") transaction first, ignoring its + result. This appears needed to be able to log into Yahoo's Zimbra servers, but + there are open issues (such as being only able to download one message and + server certificate mismatches). # CHANGES TO CONTRIB * Fix bashism in contrib/fetchsetup. Fixes Debian Bug#530081. @@ -478,6 +478,15 @@ static int imap_getauth(int sock, struct query *ctl, char *greeting) */ ok = PS_AUTHFAIL; + /* Yahoo hack - we'll just try ID if it was offered by the server, + * and IGNORE errors. */ + { + char *tmp = strstr(capabilities, " ID"); + if (tmp && !isalnum(tmp[3]) && strstr(ctl->server.via ? ctl->server.via : ctl->server.pollname, "yahoo.com")) { + (void)gen_transact(sock, "ID (\"guid\" \"1\")"); + } + } + if ((ctl->server.authenticate == A_ANY || ctl->server.authenticate == A_EXTERNAL) && strstr(capabilities, "AUTH=EXTERNAL")) |