GNU bug report logs - #2404
[PATCH] rcirc - support servers that require a PASS command

Previous Next

Package: emacs;

Reported by: Jonathan Rockway <jon <at> jrock.us>

Date: Fri, 20 Feb 2009 06:15:03 UTC

Severity: wishlist

Tags: patch

Done: Glenn Morris <rgm <at> gnu.org>

Bug is archived. No further changes may be made.

To add a comment to this bug, you must first unarchive it, by sending
a message to control AT debbugs.gnu.org, with unarchive 2404 in the body.
You can then email your comments to 2404 AT debbugs.gnu.org in the normal way.

Toggle the display of automated, internal messages from the tracker.

View this report as an mbox folder, status mbox, maintainer mbox


Report stored :
bug#2404; Package emacs,rcirc. (Fri, 20 Feb 2009 06:15:03 GMT) Full text and rfc822 format available.

Message #3 received at quiet <at> emacsbugs.donarmstrong.com (full text, mbox):

From: Jonathan Rockway <jon <at> jrock.us>
To: quiet <at> debbugs.gnu.org
Subject: [PATCH] rcirc - support servers that require a PASS command
Date: Sun, 15 Feb 2009 14:20:08 -0600
[Message part 1 (text/plain, inline)]
Severity: wishlist
Package: emacs,rcirc

[ resent from
  http://lists.gnu.org/archive/html/emacs-devel/2009-02/msg00606.html ]


My irc proxy (irssi-proxy) wants a password before allowing connections,
so I added support for this to rcirc.  The patch is attached.

[rcirc-PASS.patch (text/x-diff, inline)]
diff --git a/lisp/net/rcirc.el b/lisp/net/rcirc.el
index f63237f..ec1d777 100644
--- a/lisp/net/rcirc.el
+++ b/lisp/net/rcirc.el
@@ -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)
@@ -380,6 +386,8 @@ If ARG is non-nil, instead prompt for connection parameters."
 	     (nick (read-string "IRC Nick: "
 				(or (plist-get server-plist 'nick)
 				    rcirc-default-nick)))
+             (password (read-passwd "IRC Password: "
+                                      (plist-get server-plist 'password)))
 	     (channels (split-string
 			(read-string "IRC Channels: "
 				     (mapconcat 'identity
@@ -387,9 +395,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)
@@ -400,7 +412,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))
@@ -409,7 +422,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
@@ -441,7 +454,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)
@@ -490,6 +503,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 :"
[Message part 3 (text/plain, inline)]
Regards,
Jonathan Rockway

--
print just => another => perl => hacker => if $,=$"


Added tag(s) patch. Request was from Glenn Morris <rgm <at> gnu.org> to control <at> debbugs.gnu.org. (Wed, 20 Jan 2010 01:41:02 GMT) Full text and rfc822 format available.

bug closed, send any further explanations to Jonathan Rockway <jon <at> jrock.us> Request was from Glenn Morris <rgm <at> gnu.org> to control <at> debbugs.gnu.org. (Mon, 07 Jun 2010 21:38:02 GMT) Full text and rfc822 format available.

bug archived. Request was from Debbugs Internal Request <help-debbugs <at> gnu.org> to internal_control <at> debbugs.gnu.org. (Tue, 06 Jul 2010 11:24:03 GMT) Full text and rfc822 format available.

This bug report was last modified 14 years and 356 days ago.

Previous Next


GNU bug tracking system
Copyright (C) 1999 Darren O. Benham, 1997,2003 nCipher Corporation Ltd, 1994-97 Ian Jackson.