sieve-manage: add authenticate function
authorJulien Danjou <julien@danjou.info>
Wed, 6 Oct 2010 13:42:25 +0000 (15:42 +0200)
committerJulien Danjou <julien@danjou.info>
Wed, 6 Oct 2010 13:43:40 +0000 (15:43 +0200)
Signed-off-by: Julien Danjou <julien@danjou.info>
lisp/ChangeLog
lisp/sieve-manage.el
lisp/sieve.el
texi/ChangeLog
texi/sieve.texi

index b3ed728..7605a87 100644 (file)
@@ -1,7 +1,12 @@
 2010-10-06  Julien Danjou  <julien@danjou.info>
 
+       * sieve-manage.el: Update example in `Commentary'.
+
+       * sieve.el (sieve-open-server): Use sieve-manage-authenticate.
+
        * sieve-manage.el (sieve-manage-open): Use sieve-manage-default-port,
        not 2000.
+       (sieve-manage-authenticate): Re-add function.
 
 2010-10-06  Lars Magne Ingebrigtsen  <larsi@gnus.org>
 
index 574f319..c542632 100644 (file)
 ;;
 ;; and that's it.  Example of a managesieve session in *scratch*:
 ;;
+;; (with-current-buffer (sieve-manage-open "mail.example.com")
+;;   (sieve-manage-authenticate)
+;;   (sieve-manage-listscripts))
 ;;
-;; (sieve-manage-listscripts my-buf)
-;; ("vacation" "testscript" ("splitmail") "badscript")
+;; => ((active . "main") "vacation")
 ;;
 ;; References:
 ;;
@@ -444,6 +446,17 @@ to work in."
       (sieve-manage-erase)
       buffer)))
 
+(defun sieve-manage-authenticate (&optional buffer)
+  "Authenticate on server in BUFFER.
+Return `sieve-manage-state' value."
+  (with-current-buffer (or buffer (current-buffer))
+    (if (eq sieve-manage-state 'nonauth)
+        (when (funcall (nth 2 (assq sieve-manage-auth
+                                    sieve-manage-authenticator-alist))
+                       (current-buffer))
+          (setq sieve-manage-state 'auth))
+      sieve-manage-state)))
+
 (defun sieve-manage-opened (&optional buffer)
   "Return non-nil if connection to managesieve server in BUFFER is open.
 If BUFFER is nil then the current buffer is used."
index e988cb7..ca181c2 100644 (file)
@@ -320,17 +320,12 @@ Server  : " server ":" (or port "2000") "
       (insert "\n"))))
 
 (defun sieve-open-server (server &optional port)
+  "Open SERVER (on PORT) and authenticate."
   (with-current-buffer
       ;; open server
       (set (make-local-variable 'sieve-manage-buffer)
            (sieve-manage-open server))
-    ;; authenticate
-    (if (eq sieve-manage-state 'nonauth)
-      (if (funcall (nth 2 (assq sieve-manage-auth
-                                sieve-manage-authenticator-alist))
-                   (current-buffer))
-          (setq sieve-manage-state 'auth))
-      (eq sieve-manage-state 'auth))))
+    (sieve-manage-authenticate)))
 
 (defun sieve-refresh-scriptlist ()
   (interactive)
index c76b1c1..a30df85 100644 (file)
@@ -1,5 +1,7 @@
 2010-10-06  Julien Danjou  <julien@danjou.info>
 
+       * sieve.texi (Manage Sieve API): Document sieve-manage-authenticate.
+
        * message.texi (PGP Compatibility): Remove reference to gpg-2comp,
        broken link.
 
index 42ee51d..f8f9b62 100644 (file)
@@ -293,6 +293,10 @@ Check if a server is open or not.
 @findex sieve-manage-close
 Close a server connection.
 
+@item sieve-manage-authenticate
+@findex sieve-manage-authenticate
+Authenticate to the server.
+
 @item sieve-manage-capability
 @findex sieve-manage-capability
 Return a list of capabilities the server supports.