Function: sieve-manage-open

sieve-manage-open is a byte-compiled function defined in sieve-manage.el.gz.

Signature

(sieve-manage-open SERVER &optional PORT STREAM AUTH BUFFER)

Documentation

Open a network connection to a managesieve SERVER (string).

Optional argument PORT is port number (integer) on remote server. Optional argument STREAM is any of sieve-manage-stream (a symbol). Optional argument AUTH indicates authenticator to use, see sieve-manage-authenticators for available authenticators. If nil, chooses the best stream the server is capable of. Optional argument BUFFER is buffer (buffer, or string naming buffer) to work in.

Source Code

;; Defined in /usr/src/emacs/lisp/net/sieve-manage.el.gz
;; Managesieve API

(defun sieve-manage-open (server &optional port stream auth buffer)
  "Open a network connection to a managesieve SERVER (string).
Optional argument PORT is port number (integer) on remote server.
Optional argument STREAM is any of `sieve-manage-stream' (a symbol).
Optional argument AUTH indicates authenticator to use, see
`sieve-manage-authenticators' for available authenticators.
If nil, chooses the best stream the server is capable of.
Optional argument BUFFER is buffer (buffer, or string naming buffer)
to work in."
  (setq sieve-manage-port (or port sieve-manage-default-port))
  (with-current-buffer (or buffer (sieve-manage-make-process-buffer))
    (setq sieve-manage-server (or server
                                  sieve-manage-server)
          sieve-manage-stream (or stream
                                  sieve-manage-stream
                                  sieve-manage-default-stream)
          sieve-manage-auth   (or auth
                                  sieve-manage-auth))
    (sieve-manage--message "Connecting to %s..." sieve-manage-server)
    (sieve-manage-open-server sieve-manage-server
                              sieve-manage-port
                              sieve-manage-stream
                              (current-buffer))
    (when (sieve-manage-opened (current-buffer))
      ;; Choose authenticator
      (when (and (null sieve-manage-auth)
                 (not (eq sieve-manage-state 'auth)))
        (cl-dolist (auth sieve-manage-authenticators)
          (when (funcall (nth 1 (assq auth sieve-manage-authenticator-alist))
                       buffer)
            (setq sieve-manage-auth auth)
            (cl-return)))
        (unless sieve-manage-auth
          (sieve-manage--error
           "Couldn't figure out authenticator for server")))
      (sieve-manage-erase)
      (current-buffer))))