From: Magnus H. <leg...@us...> - 2007-11-02 13:25:13
|
Update of /cvsroot/emacs-jabber/emacs-jabber In directory sc8-pr-cvs17:/tmp/cvs-serv15888 Modified Files: jabber-sasl.el Log Message: Revision: ma...@fr...--2005/emacs-jabber--cvs-head--0--patch-421 Creator: Magnus Henoch <ma...@fr...> Use proper password reading function for SASL mechanisms sending initial response Index: jabber-sasl.el =================================================================== RCS file: /cvsroot/emacs-jabber/emacs-jabber/jabber-sasl.el,v retrieving revision 2.13 retrieving revision 2.14 diff -u -d -r2.13 -r2.14 --- jabber-sasl.el 14 Sep 2007 22:08:28 -0000 2.13 +++ jabber-sasl.el 2 Nov 2007 13:25:07 -0000 2.14 @@ -71,6 +71,7 @@ (plist-get (fsm-get-state-data jc) :username) "xmpp" (plist-get (fsm-get-state-data jc) :server))) + (sasl-read-passphrase (jabber-sasl-read-passphrase-closure jc)) (step (sasl-next-step client nil))) (jabber-send-sexp jc @@ -80,12 +81,16 @@ (base64-encode-string (sasl-step-data step) t)))) (cons client step)))))) +(defun jabber-sasl-read-passphrase-closure (jc) + "Return a lambda function suitable for `sasl-read-passphrase' for JC." + (lexical-let ((password (plist-get (fsm-get-state-data jc) :password)) + (bare-jid (jabber-connection-bare-jid jc))) + (if password + (lambda (prompt) password) + (lambda (prompt) (jabber-read-password bare-jid))))) + (defun jabber-sasl-process-input (jc xml-data sasl-data) - (let ((sasl-read-passphrase (lexical-let ((password (plist-get (fsm-get-state-data jc) :password)) - (bare-jid (jabber-connection-bare-jid jc))) - (if password - (lambda (prompt) password) - (lambda (prompt) (jabber-read-password bare-jid))))) + (let ((sasl-read-passphrase (jabber-sasl-read-passphrase-closure jc)) (client (car sasl-data)) (step (cdr sasl-data))) (cond |