diff options
| author | Jonathan Rockway | 2010-06-07 17:20:44 -0400 |
|---|---|---|
| committer | Stefan Monnier | 2010-06-07 17:20:44 -0400 |
| commit | 2d9a4946e70052df156d69d7737eb8e069933d21 (patch) | |
| tree | f13f5cfa716243f97bb9733faf0ff664f1a2d374 | |
| parent | 35b148ee23a71d8a1e2c585eded278fa32208f8b (diff) | |
| download | emacs-2d9a4946e70052df156d69d7737eb8e069933d21.tar.gz emacs-2d9a4946e70052df156d69d7737eb8e069933d21.zip | |
* 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.
| -rw-r--r-- | lisp/ChangeLog | 7 | ||||
| -rw-r--r-- | lisp/net/rcirc.el | 23 |
2 files changed, 26 insertions, 4 deletions
diff --git a/lisp/ChangeLog b/lisp/ChangeLog index f4ba9e0fb40..a36b5be3f02 100644 --- a/lisp/ChangeLog +++ b/lisp/ChangeLog | |||
| @@ -1,3 +1,10 @@ | |||
| 1 | 2010-06-07 Jonathan Rockway <jon@jrock.us> | ||
| 2 | |||
| 3 | * net/rcirc.el: Add support for password authentication. | ||
| 4 | (rcirc-server-alist): Add :password keyword. | ||
| 5 | (rcirc): Ask for a password, or get it from the server's alist. | ||
| 6 | (rcirc-connect): Add password argument. Pass it to server. | ||
| 7 | |||
| 1 | 2010-06-05 Juanma Barranquero <lekktu@gmail.com> | 8 | 2010-06-05 Juanma Barranquero <lekktu@gmail.com> |
| 2 | 9 | ||
| 3 | * net/dbus.el (dbus-register-method): Declare function. | 10 | * net/dbus.el (dbus-register-method): Declare function. |
diff --git a/lisp/net/rcirc.el b/lisp/net/rcirc.el index 8d70415148f..17e36855ac6 100644 --- a/lisp/net/rcirc.el +++ b/lisp/net/rcirc.el | |||
| @@ -80,6 +80,11 @@ VALUE must be a number or string. If absent, | |||
| 80 | VALUE must be a string. If absent, `rcirc-default-user-name' is | 80 | VALUE must be a string. If absent, `rcirc-default-user-name' is |
| 81 | used. | 81 | used. |
| 82 | 82 | ||
| 83 | `:password' | ||
| 84 | |||
| 85 | VALUE must be a string. If absent, no PASS command will be sent | ||
| 86 | to the server. | ||
| 87 | |||
| 83 | `:full-name' | 88 | `:full-name' |
| 84 | 89 | ||
| 85 | VALUE must be a string. If absent, `rcirc-default-full-name' is | 90 | VALUE must be a string. If absent, `rcirc-default-full-name' is |
| @@ -94,6 +99,7 @@ connected to automatically." | |||
| 94 | :value-type (plist :options ((:nick string) | 99 | :value-type (plist :options ((:nick string) |
| 95 | (:port integer) | 100 | (:port integer) |
| 96 | (:user-name string) | 101 | (:user-name string) |
| 102 | (:password string) | ||
| 97 | (:full-name string) | 103 | (:full-name string) |
| 98 | (:channels (repeat string))))) | 104 | (:channels (repeat string))))) |
| 99 | :group 'rcirc) | 105 | :group 'rcirc) |
| @@ -393,6 +399,8 @@ If ARG is non-nil, instead prompt for connection parameters." | |||
| 393 | (or (plist-get server-plist :nick) | 399 | (or (plist-get server-plist :nick) |
| 394 | rcirc-default-nick) | 400 | rcirc-default-nick) |
| 395 | 'rcirc-nick-name-history)) | 401 | 'rcirc-nick-name-history)) |
| 402 | (password (read-passwd "IRC Password: " | ||
| 403 | (plist-get server-plist 'password))) | ||
| 396 | (channels (split-string | 404 | (channels (split-string |
| 397 | (read-string "IRC Channels: " | 405 | (read-string "IRC Channels: " |
| 398 | (mapconcat 'identity | 406 | (mapconcat 'identity |
| @@ -400,9 +408,13 @@ If ARG is non-nil, instead prompt for connection parameters." | |||
| 400 | :channels) | 408 | :channels) |
| 401 | " ")) | 409 | " ")) |
| 402 | "[, ]+" t))) | 410 | "[, ]+" t))) |
| 411 | |||
| 412 | (when (= 0 (length password)) | ||
| 413 | (setq password nil)) | ||
| 414 | |||
| 403 | (rcirc-connect server port nick rcirc-default-user-name | 415 | (rcirc-connect server port nick rcirc-default-user-name |
| 404 | rcirc-default-full-name | 416 | rcirc-default-full-name |
| 405 | channels)) | 417 | channels password)) |
| 406 | ;; connect to servers in `rcirc-server-alist' | 418 | ;; connect to servers in `rcirc-server-alist' |
| 407 | (let (connected-servers) | 419 | (let (connected-servers) |
| 408 | (dolist (c rcirc-server-alist) | 420 | (dolist (c rcirc-server-alist) |
| @@ -413,7 +425,8 @@ If ARG is non-nil, instead prompt for connection parameters." | |||
| 413 | rcirc-default-user-name)) | 425 | rcirc-default-user-name)) |
| 414 | (full-name (or (plist-get (cdr c) :full-name) | 426 | (full-name (or (plist-get (cdr c) :full-name) |
| 415 | rcirc-default-full-name)) | 427 | rcirc-default-full-name)) |
| 416 | (channels (plist-get (cdr c) :channels))) | 428 | (channels (plist-get (cdr c) :channels)) |
| 429 | (password (plist-get (cdr c) :password))) | ||
| 417 | (when server | 430 | (when server |
| 418 | (let (connected) | 431 | (let (connected) |
| 419 | (dolist (p (rcirc-process-list)) | 432 | (dolist (p (rcirc-process-list)) |
| @@ -422,7 +435,7 @@ If ARG is non-nil, instead prompt for connection parameters." | |||
| 422 | (if (not connected) | 435 | (if (not connected) |
| 423 | (condition-case e | 436 | (condition-case e |
| 424 | (rcirc-connect server port nick user-name | 437 | (rcirc-connect server port nick user-name |
| 425 | full-name channels) | 438 | full-name channels password) |
| 426 | (quit (message "Quit connecting to %s" server))) | 439 | (quit (message "Quit connecting to %s" server))) |
| 427 | (with-current-buffer (process-buffer connected) | 440 | (with-current-buffer (process-buffer connected) |
| 428 | (setq connected-servers | 441 | (setq connected-servers |
| @@ -454,7 +467,7 @@ If ARG is non-nil, instead prompt for connection parameters." | |||
| 454 | 467 | ||
| 455 | ;;;###autoload | 468 | ;;;###autoload |
| 456 | (defun rcirc-connect (server &optional port nick user-name full-name | 469 | (defun rcirc-connect (server &optional port nick user-name full-name |
| 457 | startup-channels) | 470 | startup-channels password) |
| 458 | (save-excursion | 471 | (save-excursion |
| 459 | (message "Connecting to %s..." server) | 472 | (message "Connecting to %s..." server) |
| 460 | (let* ((inhibit-eol-conversion) | 473 | (let* ((inhibit-eol-conversion) |
| @@ -503,6 +516,8 @@ If ARG is non-nil, instead prompt for connection parameters." | |||
| 503 | (add-hook 'auto-save-hook 'rcirc-log-write) | 516 | (add-hook 'auto-save-hook 'rcirc-log-write) |
| 504 | 517 | ||
| 505 | ;; identify | 518 | ;; identify |
| 519 | (when password | ||
| 520 | (rcirc-send-string process (concat "PASS " password))) | ||
| 506 | (rcirc-send-string process (concat "NICK " nick)) | 521 | (rcirc-send-string process (concat "NICK " nick)) |
| 507 | (rcirc-send-string process (concat "USER " user-name | 522 | (rcirc-send-string process (concat "USER " user-name |
| 508 | " hostname servername :" | 523 | " hostname servername :" |