aboutsummaryrefslogtreecommitdiffstats
path: root/lisp
diff options
context:
space:
mode:
authorJulien Danjou2010-10-06 14:02:39 +0000
committerKatsumi Yamaoka2010-10-06 14:02:39 +0000
commitfd9ba500f5f58549e0210a2334c38ba0916257d9 (patch)
treef48ac3770cf2620d10643b67e604c5ff88a20a46 /lisp
parent356242428b39c85760780f961ba40672d8e2d8b3 (diff)
downloademacs-fd9ba500f5f58549e0210a2334c38ba0916257d9.tar.gz
emacs-fd9ba500f5f58549e0210a2334c38ba0916257d9.zip
sieve-manage.el: Add authenticate function.
sieve-manage.el (sieve-manage-open): Use sieve-manage-default-port.
Diffstat (limited to 'lisp')
-rw-r--r--lisp/gnus/ChangeLog10
-rw-r--r--lisp/gnus/sieve-manage.el19
-rw-r--r--lisp/gnus/sieve.el9
3 files changed, 28 insertions, 10 deletions
diff --git a/lisp/gnus/ChangeLog b/lisp/gnus/ChangeLog
index 08c5282728e..0ffc7599cba 100644
--- a/lisp/gnus/ChangeLog
+++ b/lisp/gnus/ChangeLog
@@ -1,3 +1,13 @@
12010-10-06 Julien Danjou <julien@danjou.info>
2
3 * sieve-manage.el: Update example in `Commentary'.
4
5 * sieve.el (sieve-open-server): Use sieve-manage-authenticate.
6
7 * sieve-manage.el (sieve-manage-open): Use sieve-manage-default-port,
8 not 2000.
9 (sieve-manage-authenticate): Re-add function.
10
12010-10-06 Lars Magne Ingebrigtsen <larsi@gnus.org> 112010-10-06 Lars Magne Ingebrigtsen <larsi@gnus.org>
2 12
3 * shr.el (shr-insert): Get 'space transition right. 13 * shr.el (shr-insert): Get 'space transition right.
diff --git a/lisp/gnus/sieve-manage.el b/lisp/gnus/sieve-manage.el
index 370a53d4ac9..c542632a5a0 100644
--- a/lisp/gnus/sieve-manage.el
+++ b/lisp/gnus/sieve-manage.el
@@ -50,9 +50,11 @@
50;; 50;;
51;; and that's it. Example of a managesieve session in *scratch*: 51;; and that's it. Example of a managesieve session in *scratch*:
52;; 52;;
53;; (with-current-buffer (sieve-manage-open "mail.example.com")
54;; (sieve-manage-authenticate)
55;; (sieve-manage-listscripts))
53;; 56;;
54;; (sieve-manage-listscripts my-buf) 57;; => ((active . "main") "vacation")
55;; ("vacation" "testscript" ("splitmail") "badscript")
56;; 58;;
57;; References: 59;; References:
58;; 60;;
@@ -387,7 +389,7 @@ Optional argument AUTH indicates authenticator to use, see
387If nil, chooses the best stream the server is capable of. 389If nil, chooses the best stream the server is capable of.
388Optional argument BUFFER is buffer (buffer, or string naming buffer) 390Optional argument BUFFER is buffer (buffer, or string naming buffer)
389to work in." 391to work in."
390 (setq buffer (or buffer (format " *sieve* %s:%d" server (or port 2000)))) 392 (setq buffer (or buffer (format " *sieve* %s:%d" server (or port sieve-manage-default-port))))
391 (with-current-buffer (get-buffer-create buffer) 393 (with-current-buffer (get-buffer-create buffer)
392 (mapc 'make-local-variable sieve-manage-local-variables) 394 (mapc 'make-local-variable sieve-manage-local-variables)
393 (sieve-manage-disable-multibyte) 395 (sieve-manage-disable-multibyte)
@@ -444,6 +446,17 @@ to work in."
444 (sieve-manage-erase) 446 (sieve-manage-erase)
445 buffer))) 447 buffer)))
446 448
449(defun sieve-manage-authenticate (&optional buffer)
450 "Authenticate on server in BUFFER.
451Return `sieve-manage-state' value."
452 (with-current-buffer (or buffer (current-buffer))
453 (if (eq sieve-manage-state 'nonauth)
454 (when (funcall (nth 2 (assq sieve-manage-auth
455 sieve-manage-authenticator-alist))
456 (current-buffer))
457 (setq sieve-manage-state 'auth))
458 sieve-manage-state)))
459
447(defun sieve-manage-opened (&optional buffer) 460(defun sieve-manage-opened (&optional buffer)
448 "Return non-nil if connection to managesieve server in BUFFER is open. 461 "Return non-nil if connection to managesieve server in BUFFER is open.
449If BUFFER is nil then the current buffer is used." 462If BUFFER is nil then the current buffer is used."
diff --git a/lisp/gnus/sieve.el b/lisp/gnus/sieve.el
index e988cb759de..ca181c2e7b3 100644
--- a/lisp/gnus/sieve.el
+++ b/lisp/gnus/sieve.el
@@ -320,17 +320,12 @@ Server : " server ":" (or port "2000") "
320 (insert "\n")))) 320 (insert "\n"))))
321 321
322(defun sieve-open-server (server &optional port) 322(defun sieve-open-server (server &optional port)
323 "Open SERVER (on PORT) and authenticate."
323 (with-current-buffer 324 (with-current-buffer
324 ;; open server 325 ;; open server
325 (set (make-local-variable 'sieve-manage-buffer) 326 (set (make-local-variable 'sieve-manage-buffer)
326 (sieve-manage-open server)) 327 (sieve-manage-open server))
327 ;; authenticate 328 (sieve-manage-authenticate)))
328 (if (eq sieve-manage-state 'nonauth)
329 (if (funcall (nth 2 (assq sieve-manage-auth
330 sieve-manage-authenticator-alist))
331 (current-buffer))
332 (setq sieve-manage-state 'auth))
333 (eq sieve-manage-state 'auth))))
334 329
335(defun sieve-refresh-scriptlist () 330(defun sieve-refresh-scriptlist ()
336 (interactive) 331 (interactive)