aboutsummaryrefslogtreecommitdiffstats
path: root/camel/providers
diff options
context:
space:
mode:
Diffstat (limited to 'camel/providers')
-rw-r--r--camel/providers/imap/camel-imap-store.c13
-rw-r--r--camel/providers/imap4/camel-imap4-store.c5
-rw-r--r--camel/providers/pop3/camel-pop3-store.c5
-rw-r--r--camel/providers/smtp/camel-smtp-transport.c5
4 files changed, 20 insertions, 8 deletions
diff --git a/camel/providers/imap/camel-imap-store.c b/camel/providers/imap/camel-imap-store.c
index afe9ed8c4b..b22743e72a 100644
--- a/camel/providers/imap/camel-imap-store.c
+++ b/camel/providers/imap/camel-imap-store.c
@@ -872,9 +872,9 @@ static struct {
} ssl_options[] = {
{ "", "imaps", IMAPS_PORT, MODE_SSL }, /* really old (1.x) */
{ "always", "imaps", IMAPS_PORT, MODE_SSL },
- { "when-possible", "imap", IMAP_PORT, MODE_TLS },
- { "never", "imap", IMAP_PORT, MODE_CLEAR },
- { NULL, "imap", IMAP_PORT, MODE_CLEAR },
+ { "when-possible", "imap", IMAP_PORT, MODE_TLS },
+ { "never", "imap", IMAP_PORT, MODE_CLEAR },
+ { NULL, "imap", IMAP_PORT, MODE_CLEAR },
};
static gboolean
@@ -918,8 +918,11 @@ connect_to_server_wrapper (CamelService *service, CamelException *ex)
}
if (ai == NULL)
return FALSE;
-
- ret = connect_to_server (service, ai, mode, ex);
+
+ if (!(ret = connect_to_server (service, ai, mode, ex)) && mode == MODE_SSL)
+ ret = connect_to_server (service, ai, MODE_TLS, ex);
+ else if (!ret && mode == MODE_TLS)
+ ret = connect_to_server (service, ai, MODE_CLEAR, ex);
camel_freeaddrinfo (ai);
diff --git a/camel/providers/imap4/camel-imap4-store.c b/camel/providers/imap4/camel-imap4-store.c
index 6d0bf79b64..e5dab71f68 100644
--- a/camel/providers/imap4/camel-imap4-store.c
+++ b/camel/providers/imap4/camel-imap4-store.c
@@ -351,7 +351,10 @@ connect_to_server_wrapper (CamelIMAP4Engine *engine, CamelException *ex)
if (ai == NULL)
return FALSE;
- ret = connect_to_server (engine, ai, mode, ex);
+ if (!(ret = connect_to_server (engine, ai, mode, ex)) && mode == MODE_SSL)
+ ret = connect_to_server (engine, ai, MODE_TLS, ex);
+ else if (!ret && mode == MODE_TLS)
+ ret = connect_to_server (engine, ai, MODE_CLEAR, ex);
camel_freeaddrinfo (ai);
diff --git a/camel/providers/pop3/camel-pop3-store.c b/camel/providers/pop3/camel-pop3-store.c
index 75868910fa..3fcfef3fb7 100644
--- a/camel/providers/pop3/camel-pop3-store.c
+++ b/camel/providers/pop3/camel-pop3-store.c
@@ -319,7 +319,10 @@ connect_to_server_wrapper (CamelService *service, CamelException *ex)
if (ai == NULL)
return FALSE;
- ret = connect_to_server (service, ai, mode, ex);
+ if (!(ret = connect_to_server (service, ai, mode, ex)) && mode == MODE_SSL)
+ ret = connect_to_server (service, ai, MODE_TLS, ex);
+ else if (!ret && mode == MODE_TLS)
+ ret = connect_to_server (service, ai, MODE_CLEAR, ex);
camel_freeaddrinfo (ai);
diff --git a/camel/providers/smtp/camel-smtp-transport.c b/camel/providers/smtp/camel-smtp-transport.c
index e3d6ad3f34..ba89c440fe 100644
--- a/camel/providers/smtp/camel-smtp-transport.c
+++ b/camel/providers/smtp/camel-smtp-transport.c
@@ -427,7 +427,10 @@ connect_to_server_wrapper (CamelService *service, CamelException *ex)
if (ai == NULL)
return FALSE;
- ret = connect_to_server (service, ai, mode, ex);
+ if (!(ret = connect_to_server (service, ai, mode, ex)) && mode == MODE_SSL)
+ ret = connect_to_server (service, ai, MODE_TLS, ex);
+ else if (!ret && mode == MODE_TLS)
+ ret = connect_to_server (service, ai, MODE_CLEAR, ex);
camel_freeaddrinfo (ai);