From 3fe50a83f8e5aefed3ca2355b2070435b6ca7387 Mon Sep 17 00:00:00 2001 From: Dan Winship Date: Sat, 19 Dec 2009 15:14:00 +0100 Subject: [PATCH] SoupSession: Handle CONNECT failure without hanging https://bugzilla.gnome.org/show_bug.cgi?id=587528 --- libsoup/soup-session.c | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/libsoup/soup-session.c b/libsoup/soup-session.c index c6d8765..2b13228 100644 --- a/libsoup/soup-session.c +++ b/libsoup/soup-session.c @@ -1230,10 +1230,14 @@ soup_session_connection_failed (SoupSession *session, g_mutex_lock (priv->host_lock); host = g_hash_table_lookup (priv->conns, conn); g_mutex_unlock (priv->host_lock); - if (!host) - return; - connection_disconnected (conn, session); + if (host) + connection_disconnected (conn, session); + else { + host = g_object_get_data (G_OBJECT (conn), "SoupSessionHost"); + if (!host) + return; + } /* Cancel any other messages waiting for a connection to it, * since they're out of luck. @@ -1408,6 +1412,7 @@ soup_session_get_connection (SoupSession *session, SOUP_CONNECTION_TIMEOUT, priv->io_timeout, SOUP_CONNECTION_IDLE_TIMEOUT, priv->idle_timeout, NULL); + g_object_set_data (G_OBJECT (conn), "SoupSessionHost", host); g_signal_connect (conn, "disconnected", G_CALLBACK (connection_disconnected), session); -- 2.7.4