summaryrefslogtreecommitdiff
path: root/libsoup/soup-session-sync.c
diff options
context:
space:
mode:
authorDan Winship <danw@gnome.org>2011-08-07 13:02:51 -0400
committerDan Winship <danw@gnome.org>2011-08-07 13:07:09 -0400
commit5ddafe9abc8b594016f401c0b53a481e706e74c6 (patch)
tree68d1e61ad23c7f61db14d78596369191547b7d46 /libsoup/soup-session-sync.c
parentca6f8d53ab3dbbfee1cfb56d080f44afc4b0e5b4 (diff)
downloadlibsoup-5ddafe9abc8b594016f401c0b53a481e706e74c6.tar.gz
Default to TLS for https connections, and fall back to SSLv3 on failure
Rather than always using SSLv3, try proper TLS+extensions first, and fall back to SSLv3-without-extensions if that gives an error that looks like it might mean "broken SSLv3-only server". Use SoupSessionHost to record the fallback status for a host. https://bugzilla.gnome.org/show_bug.cgi?id=581342
Diffstat (limited to 'libsoup/soup-session-sync.c')
-rw-r--r--libsoup/soup-session-sync.c6
1 files changed, 6 insertions, 0 deletions
diff --git a/libsoup/soup-session-sync.c b/libsoup/soup-session-sync.c
index a9498d6e..373b1bde 100644
--- a/libsoup/soup-session-sync.c
+++ b/libsoup/soup-session-sync.c
@@ -204,6 +204,12 @@ try_again:
}
status = soup_connection_connect_sync (item->conn, item->cancellable);
+ if (status == SOUP_STATUS_TRY_AGAIN) {
+ soup_connection_disconnect (item->conn);
+ g_object_unref (item->conn);
+ item->conn = NULL;
+ goto try_again;
+ }
if (!SOUP_STATUS_IS_SUCCESSFUL (status)) {
if (!msg->status_code)