Mercurial > emacs
diff lisp/erc/erc-backend.el @ 106989:69a56b685af8
Fix erc reconnection via non-default connectors (Bug#4958).
* erc-backend.el (erc-session-connector): New var.
(erc-server-reconnect): Use it to reconnect via old connector (Bug#4958).
* erc.el (erc-determine-parameters): Save erc-server-connect-function to erc-session-connector.
author | Chong Yidong <cyd@stupidchicken.com> |
---|---|
date | Mon, 25 Jan 2010 13:49:23 -0500 |
parents | 1d1d5d9bd884 |
children | eb66d5d15b09 89ed069d5e26 |
line wrap: on
line diff
--- a/lisp/erc/erc-backend.el Mon Jan 25 01:04:59 2010 -0800 +++ b/lisp/erc/erc-backend.el Mon Jan 25 13:49:23 2010 -0500 @@ -130,6 +130,10 @@ "The server name used to connect to for this session.") (make-variable-buffer-local 'erc-session-server) +(defvar erc-session-connector nil + "The function used to connect to this session (nil for the default).") +(make-variable-buffer-local 'erc-session-connector) + (defvar erc-session-port nil "The port used to connect to.") (make-variable-buffer-local 'erc-session-port) @@ -538,8 +542,10 @@ (erc-set-active-buffer (current-buffer)) (setq erc-server-last-sent-time 0) (setq erc-server-lines-sent 0) - (erc-open erc-session-server erc-session-port erc-server-current-nick - erc-session-user-full-name t erc-session-password)))) + (let ((erc-server-connect-function (or erc-session-connector + 'open-network-stream))) + (erc-open erc-session-server erc-session-port erc-server-current-nick + erc-session-user-full-name t erc-session-password))))) (defun erc-server-filter-function (process string) "The process filter for the ERC server."