aboutsummaryrefslogtreecommitdiffstats
path: root/camel/providers/imap
diff options
context:
space:
mode:
authorPeter Williams <peterw@src.gnome.org>2000-08-23 04:09:11 +0800
committerPeter Williams <peterw@src.gnome.org>2000-08-23 04:09:11 +0800
commit130bb0e5710983ce14d1151f2611beaff6891379 (patch)
treeb54b0a4141379ea553cdad8b7ac6d80a5fba2acb /camel/providers/imap
parentdcc47cc15f6ff1e1cb866495625006e5481f85a6 (diff)
downloadgsoc2013-evolution-130bb0e5710983ce14d1151f2611beaff6891379.tar
gsoc2013-evolution-130bb0e5710983ce14d1151f2611beaff6891379.tar.gz
gsoc2013-evolution-130bb0e5710983ce14d1151f2611beaff6891379.tar.bz2
gsoc2013-evolution-130bb0e5710983ce14d1151f2611beaff6891379.tar.lz
gsoc2013-evolution-130bb0e5710983ce14d1151f2611beaff6891379.tar.xz
gsoc2013-evolution-130bb0e5710983ce14d1151f2611beaff6891379.tar.zst
gsoc2013-evolution-130bb0e5710983ce14d1151f2611beaff6891379.zip
Automatically connect services when given a valid URL (should hopefully disconnect, too); remove the old movemail folder correctly.
svn path=/trunk/; revision=4965
Diffstat (limited to 'camel/providers/imap')
-rw-r--r--camel/providers/imap/camel-imap-store.c44
1 files changed, 31 insertions, 13 deletions
diff --git a/camel/providers/imap/camel-imap-store.c b/camel/providers/imap/camel-imap-store.c
index 0a2be4f326..f7662ade84 100644
--- a/camel/providers/imap/camel-imap-store.c
+++ b/camel/providers/imap/camel-imap-store.c
@@ -60,7 +60,8 @@ static void finalize (CamelObject *object);
static gboolean imap_create (CamelFolder *folder, CamelException *ex);
static gboolean imap_connect (CamelService *service, CamelException *ex);
static gboolean imap_disconnect (CamelService *service, CamelException *ex);
-static GList *query_auth_types (CamelService *service, CamelException *ex);
+static GList *query_auth_types_generic (CamelService *service, CamelException *ex);
+static GList *query_auth_types_connected (CamelService *service, CamelException *ex);
static void free_auth_types (CamelService *service, GList *authtypes);
static char *get_name (CamelService *service, gboolean brief);
static CamelFolder *get_folder (CamelStore *store, const char *folder_name, gboolean create,
@@ -84,7 +85,8 @@ camel_imap_store_class_init (CamelImapStoreClass *camel_imap_store_class)
/* virtual method overload */
camel_service_class->connect = imap_connect;
camel_service_class->disconnect = imap_disconnect;
- camel_service_class->query_auth_types = query_auth_types;
+ camel_service_class->query_auth_types_generic = query_auth_types_generic;
+ camel_service_class->query_auth_types_connected = query_auth_types_connected;
camel_service_class->free_auth_types = free_auth_types;
camel_service_class->get_name = get_name;
@@ -129,11 +131,14 @@ camel_imap_store_get_type (void)
static void
finalize (CamelObject *object)
{
- CamelException ex;
-
- camel_exception_init (&ex);
- imap_disconnect (CAMEL_SERVICE (object), &ex);
- camel_exception_clear (&ex);
+ /* Done for us now */
+ /*
+ *CamelException ex;
+ *
+ *camel_exception_init (&ex);
+ *imap_disconnect (CAMEL_SERVICE (object), &ex);
+ *camel_exception_clear (&ex);
+ */
}
static CamelServiceAuthType password_authtype = {
@@ -178,17 +183,18 @@ try_connect (CamelService *service, CamelException *ex)
#endif
static GList *
-query_auth_types (CamelService *service, CamelException *ex)
+query_auth_types_connected (CamelService *service, CamelException *ex)
{
+#if 0
GList *ret = NULL;
gboolean passwd = TRUE;
-#if 0
+
if (service->url) {
passwd = try_connect (service, ex);
if (camel_exception_get_id (ex) != CAMEL_EXCEPTION_NONE)
return NULL;
}
-#endif
+
if (passwd)
ret = g_list_append (ret, &password_authtype);
@@ -200,6 +206,16 @@ query_auth_types (CamelService *service, CamelException *ex)
}
return ret;
+#else
+ g_warning ("imap::query_auth_types_connected: not implemented. Defaulting.");
+ return query_auth_types_generic (service, ex);
+#endif
+}
+
+static GList *
+query_auth_types_generic (CamelService *service, CamelException *ex)
+{
+ return g_list_append (NULL, &password_authtype);
}
static void
@@ -408,9 +424,11 @@ imap_disconnect (CamelService *service, CamelException *ex)
char *result;
int status;
- if (!service->connected)
- return TRUE;
-
+
+ /*if (!service->connected)
+ * return TRUE;
+ */
+
/* send the logout command */
status = camel_imap_command_extended (CAMEL_IMAP_STORE (service), NULL, &result, "LOGOUT");
if (status != CAMEL_IMAP_OK) {