diff options
| author | Dan Winship <danw@gnome.org> | 2011-08-07 13:02:51 -0400 |
|---|---|---|
| committer | Dan Winship <danw@gnome.org> | 2011-08-07 13:07:09 -0400 |
| commit | 5ddafe9abc8b594016f401c0b53a481e706e74c6 (patch) | |
| tree | 68d1e61ad23c7f61db14d78596369191547b7d46 /libsoup/soup-session-sync.c | |
| parent | ca6f8d53ab3dbbfee1cfb56d080f44afc4b0e5b4 (diff) | |
| download | libsoup-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.c | 6 |
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) |
