summaryrefslogtreecommitdiff
path: root/lisp/erc/erc-backend.el
diff options
context:
space:
mode:
authorF. Jason Park <jp@neverwas.me>2021-07-12 03:44:28 -0700
committerAmin Bandali <bandali@gnu.org>2022-11-23 21:14:25 -0500
commited8862c40432302b68433a9b8c00cd5604962ec4 (patch)
treeb3b49d2f9c37314d229b0027c0c84c5871cf8840 /lisp/erc/erc-backend.el
parentae254a65cd6c0292865c449d639140f5d149f68e (diff)
downloademacs-ed8862c40432302b68433a9b8c00cd5604962ec4.tar.gz
emacs-ed8862c40432302b68433a9b8c00cd5604962ec4.tar.bz2
emacs-ed8862c40432302b68433a9b8c00cd5604962ec4.zip
Add non-IRCv3 SASL module to ERC
* doc/misc/erc.texi: Add SASL section in Advanced Usage chapter to document the new SASL module. * etc/ERC-NEWS: Mention addition of erc-sasl module for SASL support. * lisp/erc/erc-compat.el (erc-compat--29-sasl-scram-construct-gs2-header, erc-compat--29-sasl-scram-client-first-message, erc-compat--29-sasl-scram--client-final-message): Fix encoding bug and add minimal authorization support with copies of SASL functions introduced in Emacs 29. * lisp/erc/erc.el (erc-modules): Add `sasl'. * lisp/erc/erc-sasl.el: New file (bug#29108). * test/lisp/erc/erc-sasl-tests.el: New file. * test/lisp/erc/erc-scenarios-sasl.el: New file. * test/lisp/erc/resources/sasl/plain-failed.eld: New file. * test/lisp/erc/resources/sasl/plain.eld: New file. * test/lisp/erc/resources/sasl/scram-sha-1.eld: New file. * test/lisp/erc/resources/sasl/scram-sha-256.eld: New file. * test/lisp/erc/resources/sasl/external.eld: New file.
Diffstat (limited to 'lisp/erc/erc-backend.el')
-rw-r--r--lisp/erc/erc-backend.el9
1 files changed, 9 insertions, 0 deletions
diff --git a/lisp/erc/erc-backend.el b/lisp/erc/erc-backend.el
index 973616bc37e..6e91353808b 100644
--- a/lisp/erc/erc-backend.el
+++ b/lisp/erc/erc-backend.el
@@ -2334,6 +2334,15 @@ See `erc-display-server-message'." nil
(erc-display-message parsed 'notice 'active 's671
?n nick ?a securemsg)))
+(define-erc-response-handler (900)
+ "Handle a \"RPL_LOGGEDIN\" server command.
+Some servers don't consider this SASL-specific but rather just an
+indication of a server-side state change from logged-out to
+logged-in." nil
+ ;; Whenever ERC starts caring about user accounts, it should record
+ ;; the session as being logged here.
+ (erc-display-message parsed 'notice proc (erc-response.contents parsed)))
+
(define-erc-response-handler (431 445 446 451 462 463 464 481 483 484 485
491 501 502)
;; 431 - No nickname given