emacs-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

rcirc update: allow sending a server password when connecting


From: Ryan Yeske
Subject: rcirc update: allow sending a server password when connecting
Date: Wed, 05 May 2010 18:02:22 -0700

2010-05-01  Ryan Yeske  <address@hidden>

        * net/rcirc.el (rcirc-default-user-name): Change to "user".
        (rcirc-default-full-name): Change to "unknown".
        (rcirc-user-name-history): Add variable.
        (rcirc): When prompting for connection paramaters, also prompt for
        username and password.
        (rcirc-connect): Take a PASS argument.  If PASS is non-nil, send
        value to server when connecting.




=== modified file 'lisp/net/rcirc.el'
--- lisp/net/rcirc.el   2010-01-13 08:35:10 +0000
+++ lisp/net/rcirc.el   2010-05-06 00:59:16 +0000
@@ -85,6 +85,10 @@
 VALUE must be a string.  If absent, `rcirc-default-full-name' is
 used.
 
+`:pass'
+
+VALUE must be a string.
+
 `:channels'
 
 VALUE must be a list of strings describing which channels to join
@@ -95,6 +99,7 @@
                                             (:port integer)
                                             (:user-name string)
                                             (:full-name string)
+                                            (:pass string)
                                             (:channels (repeat string)))))
   :group 'rcirc)
 
@@ -108,14 +113,12 @@
   :type 'string
   :group 'rcirc)
 
-(defcustom rcirc-default-user-name (user-login-name)
+(defcustom rcirc-default-user-name "user"
   "Your user name sent to the server when connecting."
   :type 'string
   :group 'rcirc)
 
-(defcustom rcirc-default-full-name (if (string= (user-full-name) "")
-                                      rcirc-default-user-name
-                                    (user-full-name))
+(defcustom rcirc-default-full-name "unknown"
   "The full name sent to the server when connecting."
   :type 'string
   :group 'rcirc)
@@ -369,6 +372,9 @@
 (defvar rcirc-nick-name-history nil
   "History variable for \\[rcirc] call.")
 
+(defvar rcirc-user-name-history nil
+  "History variable for \\[rcirc] call.")
+
 ;;;###autoload
 (defun rcirc (arg)
   "Connect to all servers in `rcirc-server-alist'.
@@ -393,6 +399,12 @@
                                (or (plist-get server-plist :nick)
                                    rcirc-default-nick)
                                'rcirc-nick-name-history))
+            (user-name (read-string "IRC Username: "
+                                     (or (plist-get server-plist :user-name)
+                                         rcirc-default-user-name)
+                                     'rcirc-user-name-history))
+            (pass (read-passwd "IRC Password: " nil
+                               (plist-get server-plist :pass)))
             (channels (split-string
                        (read-string "IRC Channels: "
                                     (mapconcat 'identity
@@ -400,7 +412,7 @@
                                                           :channels)
                                                " "))
                        "[, ]+" t)))
-       (rcirc-connect server port nick rcirc-default-user-name
+       (rcirc-connect server port nick user-name pass
                       rcirc-default-full-name
                       channels))
     ;; connect to servers in `rcirc-server-alist'
@@ -411,6 +423,7 @@
              (port (or (plist-get (cdr c) :port) rcirc-default-port))
              (user-name (or (plist-get (cdr c) :user-name)
                             rcirc-default-user-name))
+              (pass (plist-get (cdr c) :pass))
              (full-name (or (plist-get (cdr c) :full-name)
                             rcirc-default-full-name))
              (channels (plist-get (cdr c) :channels)))
@@ -421,7 +434,7 @@
                  (setq connected p)))
              (if (not connected)
                  (condition-case e
-                     (rcirc-connect server port nick user-name
+                     (rcirc-connect server port nick user-name pass
                                     full-name channels)
                    (quit (message "Quit connecting to %s" server)))
                (with-current-buffer (process-buffer connected)
@@ -453,8 +466,8 @@
 (defvar rcirc-process nil)
 
 ;;;###autoload
-(defun rcirc-connect (server &optional port nick user-name full-name
-                            startup-channels)
+(defun rcirc-connect (server &optional port nick user-name pass
+                             full-name startup-channels)
   (save-excursion
     (message "Connecting to %s..." server)
     (let* ((inhibit-eol-conversion)
@@ -503,10 +516,11 @@
       (add-hook 'auto-save-hook 'rcirc-log-write)
 
       ;; identify
+      (when pass
+        (rcirc-send-string process (concat "PASS " pass)))
       (rcirc-send-string process (concat "NICK " nick))
       (rcirc-send-string process (concat "USER " user-name
-                                      " hostname servername :"
-                                      full-name))
+                                         " 0 * :" full-name))
 
       ;; setup ping timer if necessary
       (unless rcirc-keepalive-timer





reply via email to

[Prev in Thread] Current Thread [Next in Thread]