(defvar nntp-async-timer nil)
(defvar nntp-async-process-list nil)
+(defvar nntp-ssl-program
+ "openssl s_client -quiet -ssl3 -connect %s:%p"
+"A string containing commands for SSL connections.
+Within a string, %s is replaced with the server address and %p with
+port number on server. The program should accept IMAP commands on
+stdin and return responses to stdout.")
+
(eval-and-compile
- (autoload 'mail-source-read-passwd "mail-source")
- (autoload 'open-ssl-stream "ssl"))
+ (autoload 'mail-source-read-passwd "mail-source"))
\f
"nntpd" buffer nntp-address nntp-port-number))
(defun nntp-open-ssl-stream (buffer)
- (let ((proc (open-ssl-stream "nntpd" buffer nntp-address nntp-port-number)))
+ (let* ((process-connection-type nil)
+ (proc (as-binary-process
+ (start-process "nntpd" buffer
+ shell-file-name
+ shell-command-switch
+ (format-spec nntp-ssl-program
+ (format-spec-make
+ ?s nntp-address
+ ?p nntp-port-number))))))
+ (process-kill-without-query proc)
(save-excursion
(set-buffer buffer)
(nntp-wait-for-string "^\r*20[01]")
(save-excursion
(set-buffer (or (nntp-find-connection-buffer nntp-server-buffer)
nntp-server-buffer))
- (let ((len (/ (point-max) 1024))
+ (let ((len (/ (buffer-size) 1024))
message-log-max)
(unless (< len 10)
(setq nntp-have-messaged t)
proc)
(and nntp-pre-command
(push nntp-pre-command command))
- (setq proc (apply 'start-process "nntpd" buffer command))
+ (setq proc (as-binary-process
+ (apply 'start-process "nntpd" buffer command)))
(save-excursion
(set-buffer buffer)
(nntp-wait-for-string "^\r*20[01]")
(case-fold-search t)
proc)
(and nntp-pre-command (push nntp-pre-command command))
- (setq proc (apply 'start-process "nntpd" buffer command))
+ (setq proc (as-binary-process
+ (apply 'start-process "nntpd" buffer command)))
(when (memq (process-status proc) '(open run))
(nntp-wait-for-string "^r?telnet")
(process-send-string proc "set escape \^X\n")