diff options
author | Matthias Andree <matthias.andree@gmx.de> | 2007-02-03 00:13:12 +0000 |
---|---|---|
committer | Matthias Andree <matthias.andree@gmx.de> | 2007-02-03 00:13:12 +0000 |
commit | 20d043a8283164ffbc74d737ff858fc99c2711c4 (patch) | |
tree | 80940b1af01c88b9f4880c46260a3b90621570ed | |
parent | 071e48042c68f2dd41ff7332fee1d9307bb9a0a6 (diff) | |
download | fetchmail-20d043a8283164ffbc74d737ff858fc99c2711c4.tar.gz fetchmail-20d043a8283164ffbc74d737ff858fc99c2711c4.tar.bz2 fetchmail-20d043a8283164ffbc74d737ff858fc99c2711c4.zip |
Fix 6.3.6 regression: repoll upon socket error after STLS failure.
Berlios Bug #10133, reported by Andrej Kacian.
svn path=/branches/BRANCH_6-3/; revision=5022
-rw-r--r-- | NEWS | 6 | ||||
-rw-r--r-- | pop3.c | 23 |
2 files changed, 16 insertions, 13 deletions
@@ -44,8 +44,10 @@ be removed from a 6.4.0 or newer release.) fetchmail 6.3.7 (not yet released): -# REGRESSION FIX -* Fix KPOP, broken with the 6.3.6 security fix. Patch by Miroslav Trmac. +# FIXES FOR REGRESSIONS IN 6.3.6 +* Fix KPOP. Patch by Miloslav Trmac. +* Fix repoll when server disconnects after opportunistic TLS failed for POP3. + Berlios Bug #10133, reported by Andrej Kacian. # TRANSLATION UPDATES * Japanese (Takeshi Hamasaki), Polish (Jakub Bogusz) @@ -635,17 +635,6 @@ static int pop3_getauth(int sock, struct query *ctl, char *greeting) } memset(shroud, 0x55, sizeof(shroud)); shroud[0] = '\0'; -#ifdef SSL_ENABLE - /* this is for servers which claim to support TLS, but actually - * don't! */ - if (connection_may_have_tls_errors && ok == PS_SOCKET) - { - xfree(ctl->sslproto); - ctl->sslproto = xstrdup(""); - /* repoll immediately without TLS */ - ok = PS_REPOLL; - } -#endif break; case P_APOP: @@ -694,6 +683,18 @@ static int pop3_getauth(int sock, struct query *ctl, char *greeting) ok = PS_ERROR; } +#ifdef SSL_ENABLE + /* this is for servers which claim to support TLS, but actually + * don't! */ + if (connection_may_have_tls_errors && ok == PS_SOCKET) + { + xfree(ctl->sslproto); + ctl->sslproto = xstrdup(""); + /* repoll immediately without TLS */ + ok = PS_REPOLL; + } +#endif + if (ok != 0) { /* maybe we detected a lock-busy condition? */ |