emacs-diffs
[Top][All Lists]
Advanced

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

[Emacs-diffs] /srv/bzr/emacs/trunk r103527: * lisp/net/rcirc.el: Add Qua


From: Deniz Dogan
Subject: [Emacs-diffs] /srv/bzr/emacs/trunk r103527: * lisp/net/rcirc.el: Add QuakeNet authentication support.
Date: Sat, 05 Mar 2011 16:40:50 +0100
User-agent: Bazaar (2.0.3)

------------------------------------------------------------
revno: 103527
committer: Deniz Dogan <address@hidden>
branch nick: emacs-trunk
timestamp: Sat 2011-03-05 16:40:50 +0100
message:
  * lisp/net/rcirc.el: Add QuakeNet authentication support.
  (rcirc-authinfo, rcirc-check-auth-status)
  (rcirc-authenticate): Support QuakeNet.
modified:
  lisp/ChangeLog
  lisp/net/rcirc.el
=== modified file 'lisp/ChangeLog'
--- a/lisp/ChangeLog    2011-03-05 13:34:55 +0000
+++ b/lisp/ChangeLog    2011-03-05 15:40:50 +0000
@@ -1,5 +1,11 @@
 2011-03-05  Deniz Dogan  <address@hidden>
 
+       * net/rcirc.el: Add QuakeNet authentication support.
+       (rcirc-authinfo, rcirc-check-auth-status)
+       (rcirc-authenticate): Support QuakeNet.
+
+2011-03-05  Deniz Dogan  <address@hidden>
+
        * net/rcirc.el: Add functionality to authenticate before
        autojoining channels.
        (rcirc-authenticate-before-join): New option.

=== modified file 'lisp/net/rcirc.el'
--- a/lisp/net/rcirc.el 2011-03-05 13:34:55 +0000
+++ b/lisp/net/rcirc.el 2011-03-05 15:40:50 +0000
@@ -204,12 +204,14 @@
   `nickserv': NICK PASSWORD [NICKSERV-NICK]
   `chanserv': NICK CHANNEL PASSWORD
   `bitlbee': NICK PASSWORD
+  `quakenet': ACCOUNT PASSWORD
 
 Examples:
  ((\"freenode\" nickserv \"bob\" \"p455w0rd\")
   (\"freenode\" chanserv \"bob\" \"#bobland\" \"passwd99\")
   (\"bitlbee\" bitlbee \"robert\" \"sekrit\")
-  (\"dal.net\" nickserv \"bob\" \"sekrit\" \"address@hidden"))"
+  (\"dal.net\" nickserv \"bob\" \"sekrit\" \"address@hidden")
+  (\"quakenet.org\" quakenet \"bobby\" \"sekrit\"))"
   :type '(alist :key-type (string :tag "Server")
                :value-type (choice (list :tag "NickServ"
                                          (const nickserv)
@@ -223,7 +225,11 @@
                                    (list :tag "BitlBee"
                                          (const bitlbee)
                                          (string :tag "Nick")
-                                         (string :tag "Password"))))
+                                         (string :tag "Password"))
+                                    (list :tag "QuakeNet"
+                                          (const quakenet)
+                                          (string :tag "Account")
+                                          (string :tag "Password"))))
   :group 'rcirc)
 
 (defcustom rcirc-auto-authenticate-flag t
@@ -2506,8 +2512,10 @@
                          (format "You are now identified for \C-b%s\C-b." 
rcirc-nick)
                          "Password accepted - you are now recognized."
                          )))
-               ;; place for other methods
-               )
+               (and ;; quakenet
+                (string= sender "Q")
+                (string= target rcirc-nick)
+                (string-match message "\\`You are now logged in as .+\\.\\'")))
           (setq rcirc-user-authenticated t)
           (run-hook-with-args 'rcirc-authenticated-hook process)
           (remove-hook 'rcirc-authenticated-hook 
'rcirc-join-channels-post-auth t))))))
@@ -2756,26 +2764,33 @@
            (nick (caddr i))
            (method (cadr i))
            (args (cdddr i)))
-       (when (and (string-match server rcirc-server)
-                  (string-match nick rcirc-nick))
-         (cond ((equal method 'nickserv)
-                (rcirc-send-privmsg
-                 process
+       (when (and (string-match server rcirc-server))
+          (if (and (memq method '(nickserv chanserv bitlbee))
+                   (string-match nick rcirc-nick))
+              ;; the following methods rely on the user's nickname.
+              (case method
+                (nickserv
+                 (rcirc-send-privmsg
+                  process
                   (or (cadr args) "NickServ")
-                  (concat "identify " (car args))))
-               ((equal method 'chanserv)
-                (rcirc-send-privmsg
-                 process
+                  (concat "IDENTIFY " (car args))))
+                (chanserv
+                 (rcirc-send-privmsg
+                  process
                   "ChanServ"
-                  (format "identify %s %s" (car args) (cadr args))))
-               ((equal method 'bitlbee)
-                (rcirc-send-privmsg
-                 process
+                  (format "IDENTIFY %s %s" (car args) (cadr args))))
+                (bitlbee
+                 (rcirc-send-privmsg
+                  process
                   "&bitlbee"
-                  (concat "identify " (car args))))
-               (t
-                (message "No %S authentication method defined"
-                         method))))))))
+                  (concat "IDENTIFY " (car args)))))
+            ;; quakenet authentication doesn't rely on the user's nickname.
+            ;; the variable `nick' here represents the Q account name.
+            (when (eq method 'quakenet)
+              (rcirc-send-privmsg 
+               process
+               "address@hidden"
+               (format "AUTH %s %s" nick (car args))))))))))
 
 (defun rcirc-handler-INVITE (process sender args text)
   (rcirc-print process sender "INVITE" nil (mapconcat 'identity args " ") t))


reply via email to

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