Mercurial > emacs
changeset 108939:dbf3fd5a1594
* lisp/net/rcirc.el: Add support for password authentication.
(rcirc-server-alist): Add :password keyword.
(rcirc): Ask for a password, or get it from the server's alist.
(rcirc-connect): Add password argument. Pass it to server.
author | Stefan Monnier <monnier@iro.umontreal.ca> |
---|---|
date | Mon, 07 Jun 2010 17:20:44 -0400 |
parents | 319b48a599cf |
children | 1a7733e684f6 |
files | lisp/ChangeLog lisp/net/rcirc.el |
diffstat | 2 files changed, 26 insertions(+), 4 deletions(-) [+] |
line wrap: on
line diff
--- a/lisp/ChangeLog Sat Jun 05 22:36:27 2010 +0200 +++ b/lisp/ChangeLog Mon Jun 07 17:20:44 2010 -0400 @@ -1,3 +1,10 @@ +2010-06-07 Jonathan Rockway <jon@jrock.us> + + * net/rcirc.el: Add support for password authentication. + (rcirc-server-alist): Add :password keyword. + (rcirc): Ask for a password, or get it from the server's alist. + (rcirc-connect): Add password argument. Pass it to server. + 2010-06-05 Juanma Barranquero <lekktu@gmail.com> * net/dbus.el (dbus-register-method): Declare function.
--- a/lisp/net/rcirc.el Sat Jun 05 22:36:27 2010 +0200 +++ b/lisp/net/rcirc.el Mon Jun 07 17:20:44 2010 -0400 @@ -80,6 +80,11 @@ VALUE must be a string. If absent, `rcirc-default-user-name' is used. +`:password' + +VALUE must be a string. If absent, no PASS command will be sent +to the server. + `:full-name' VALUE must be a string. If absent, `rcirc-default-full-name' is @@ -94,6 +99,7 @@ :value-type (plist :options ((:nick string) (:port integer) (:user-name string) + (:password string) (:full-name string) (:channels (repeat string))))) :group 'rcirc) @@ -393,6 +399,8 @@ (or (plist-get server-plist :nick) rcirc-default-nick) 'rcirc-nick-name-history)) + (password (read-passwd "IRC Password: " + (plist-get server-plist 'password))) (channels (split-string (read-string "IRC Channels: " (mapconcat 'identity @@ -400,9 +408,13 @@ :channels) " ")) "[, ]+" t))) + + (when (= 0 (length password)) + (setq password nil)) + (rcirc-connect server port nick rcirc-default-user-name rcirc-default-full-name - channels)) + channels password)) ;; connect to servers in `rcirc-server-alist' (let (connected-servers) (dolist (c rcirc-server-alist) @@ -413,7 +425,8 @@ rcirc-default-user-name)) (full-name (or (plist-get (cdr c) :full-name) rcirc-default-full-name)) - (channels (plist-get (cdr c) :channels))) + (channels (plist-get (cdr c) :channels)) + (password (plist-get (cdr c) :password))) (when server (let (connected) (dolist (p (rcirc-process-list)) @@ -422,7 +435,7 @@ (if (not connected) (condition-case e (rcirc-connect server port nick user-name - full-name channels) + full-name channels password) (quit (message "Quit connecting to %s" server))) (with-current-buffer (process-buffer connected) (setq connected-servers @@ -454,7 +467,7 @@ ;;;###autoload (defun rcirc-connect (server &optional port nick user-name full-name - startup-channels) + startup-channels password) (save-excursion (message "Connecting to %s..." server) (let* ((inhibit-eol-conversion) @@ -503,6 +516,8 @@ (add-hook 'auto-save-hook 'rcirc-log-write) ;; identify + (when password + (rcirc-send-string process (concat "PASS " password))) (rcirc-send-string process (concat "NICK " nick)) (rcirc-send-string process (concat "USER " user-name " hostname servername :"