Commit 2d9a4946 authored by Jonathan Rockway's avatar Jonathan Rockway Committed by Stefan Monnier

* 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.
parent 35b148ee
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.
......
......@@ -80,6 +80,11 @@ VALUE must be a number or string. If absent,
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 @@ connected to automatically."
: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 @@ If ARG is non-nil, instead prompt for connection parameters."
(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 @@ If ARG is non-nil, instead prompt for connection parameters."
: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 @@ If ARG is non-nil, instead prompt for connection parameters."
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 ARG is non-nil, instead prompt for connection parameters."
(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 @@ If ARG is non-nil, instead prompt for connection parameters."
;;;###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 @@ If ARG is non-nil, instead prompt for connection parameters."
(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 :"
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment