GCancellable *cancellable,
GError **error)
{
- CamelIMAPXStore *imapx_store;
CamelServiceAuthType *authtype;
- GList *sasl_types, *t, *next;
+ GList *sasl_types = NULL;
+ GList *t, *next;
CamelIMAPXServer *server;
- CamelIMAPXStream *stream;
- gboolean connected;
-
- imapx_store = CAMEL_IMAPX_STORE (service);
if (!camel_offline_store_get_online (CAMEL_OFFLINE_STORE (service))) {
g_set_error (
return NULL;
}
- server = camel_imapx_server_new (imapx_store);
-
- stream = camel_imapx_server_ref_stream (server);
- if (stream != NULL) {
- connected = TRUE;
- g_object_unref (stream);
- } else {
- connected = imapx_connect_to_server (
- server, cancellable, error);
- }
+ server = camel_imapx_server_new (CAMEL_IMAPX_STORE (service));
- if (!connected)
- return NULL;
+ if (!imapx_connect_to_server (server, cancellable, error))
+ goto exit;
sasl_types = camel_sasl_authtype_list (FALSE);
for (t = sasl_types; t; t = next) {
}
}
+ sasl_types = g_list_prepend (
+ sasl_types, &camel_imapx_password_authtype);
+
+exit:
g_object_unref (server);
- return g_list_prepend (sasl_types, &camel_imapx_password_authtype);
+ return sasl_types;
}
static CamelFolder *