* pldap.el (ldap-default-host): Fixed docstring.
[elisp/wanderlust.git] / elmo / elmo-net.el
index 6f2d6c3..009dcae 100644 (file)
@@ -235,6 +235,12 @@ Returns a process object.  if making session failed, returns nil."
            (elmo-network-authenticate-session session)
            (elmo-network-setup-session session)))
       (error
+       (when (eq (car error) 'elmo-open-error)
+        (elmo-set-plugged nil server port
+                          (elmo-network-stream-type-symbol stream-type)
+                          (current-time))
+        (message "Auto plugged off at %s:%d :%s" server port (cadr error))
+        (sit-for 1))
        (when (eq (car error) 'elmo-authenticate-error)
         (elmo-remove-passwd (elmo-network-session-password-key session)))
        (elmo-network-close-session session)
@@ -329,10 +335,21 @@ Returned value is searched from `elmo-network-stream-type-alist'."
         (append (elmo-net-port-info folder)
                 (list nil nil (quote (elmo-net-port-label folder)) add))))
 
+(luna-define-method elmo-folder-create ((folder elmo-net-folder))
+  (if (elmo-folder-plugged-p folder)
+      (elmo-folder-send folder 'elmo-folder-create-plugged)
+    (elmo-folder-send folder 'elmo-folder-create-unplugged)))
+
+(luna-define-method elmo-folder-create-unplugged ((folder elmo-net-folder))
+  (if elmo-enable-disconnected-operation
+      (elmo-folder-create-dop folder)
+    (error "Unplugged")))
+
 (luna-define-method elmo-folder-exists-p ((folder elmo-net-folder))
   (if (elmo-folder-plugged-p folder)
       (elmo-folder-send folder 'elmo-folder-exists-p-plugged)
-    t)) ; If unplugged, assume the folder exists.
+    ;; If unplugged, guess by msgdb.
+    (file-directory-p (elmo-folder-msgdb-path folder))))
 
 (luna-define-method elmo-folder-status ((folder elmo-net-folder))
   (if (elmo-folder-plugged-p folder)
@@ -356,7 +373,7 @@ Returned value is searched from `elmo-network-stream-type-alist'."
 
 (luna-define-method elmo-folder-list-messages-plugged
   ((folder elmo-net-folder))
-  t)
+  nil)
 
 ;; Should consider offline append and removal.
 (luna-define-method elmo-folder-list-messages-unplugged ((folder
@@ -374,7 +391,7 @@ Returned value is searched from `elmo-network-stream-type-alist'."
         ;; append appending messages
         (mapcar (lambda (x) (* -1 x))
                 (elmo-dop-spool-folder-list-messages folder))))
-    (error "Unplugged")))
+    t))
 
 (luna-define-method elmo-folder-list-unreads-internal
   ((folder elmo-net-folder) unread-marks &optional mark-alist)