GNU bug report logs -
#7438
23.2; [PATCH] lisp/gnus/pop3.el fix STLS command ordering
Previous Next
Reported by: Yuri Karaban <tech <at> askold.net>
Date: Thu, 18 Nov 2010 23:08:01 UTC
Severity: normal
Tags: patch
Found in version 23.2
Done: Chong Yidong <cyd <at> stupidchicken.com>
Bug is archived. No further changes may be made.
Full log
View this message in rfc822 format
[Message part 1 (text/plain, inline)]
Hi
Starttls (STLS) is not working with pop3.
There is a bug in current implementation.
Current implementation sends STLS just after opening connection.
As result connection hangs (pop3.el tries to read a greeting message
after STLS, but all POP3 servers I tried does not send anything after
successful negotiation). On other hand, ignoring server greeting leads
to mistreating server greeting (+OK <timestamp>) as successful response
to STLS command. In this case negotiation starts too early (before
reading real response to STLS).
I've attached a patch which fixes the problem. The server greeting got
read first (as with plain POP3) and only after receiving greeting STLS
issued and TLS negotiation starts.
I hope much this would be fixed in next minor release of emacs.
Thanks!
[pop3.el-stls-order.patch (text/x-patch, inline)]
--- pop3.el.orig 2010-04-04 01:26:09.000000000 +0300
+++ pop3.el 2010-11-19 00:21:53.106967116 +0200
@@ -261,12 +261,6 @@
(setq port 110))
(let ((process (starttls-open-stream "POP" (current-buffer)
mailhost (or port 110))))
- (pop3-send-command process "STLS")
- (let ((response (pop3-read-response process t)))
- (if (and response (string-match "+OK" response))
- (starttls-negotiate process)
- (pop3-quit process)
- (error "POP server doesn't support starttls")))
process))
(t
(open-network-stream "POP" (current-buffer) mailhost port))))
@@ -274,6 +268,13 @@
(setq pop3-timestamp
(substring response (or (string-match "<" response) 0)
(+ 1 (or (string-match ">" response) -1)))))
+ (when (eq pop3-stream-type 'starttls)
+ (pop3-send-command process "STLS")
+ (let ((response (pop3-read-response process t)))
+ (if (and response (string-match "+OK" response))
+ (starttls-negotiate process)
+ (pop3-quit process)
+ (error "POP server doesn't support starttls"))))
process)))
;; Support functions
[Message part 3 (text/plain, inline)]
--
Citius Altius Fortius
This bug report was last modified 14 years and 190 days ago.
Previous Next
GNU bug tracking system
Copyright (C) 1999 Darren O. Benham,
1997,2003 nCipher Corporation Ltd,
1994-97 Ian Jackson.