From: Sergio Villar Senin Date: Mon, 26 Sep 2011 17:09:31 +0000 (+0200) Subject: SoupSession: set the connection to IDLE on unqueuing SoupMessages X-Git-Tag: LIBSOUP_2_37_1~16 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=d8108886c151bd0f190e949cf3e64d2a137a13a0;p=platform%2Fupstream%2Flibsoup.git SoupSession: set the connection to IDLE on unqueuing SoupMessages Connection should be set to IDLE state only after being 100% sure that is not going to be reused by the current owner. Also, fix a bug in SoupSessionSync revealed by this change. https://bugzilla.gnome.org/show_bug.cgi?id=651146 --- diff --git a/libsoup/soup-message-io.c b/libsoup/soup-message-io.c index 59b75d8..a489788 100644 --- a/libsoup/soup-message-io.c +++ b/libsoup/soup-message-io.c @@ -144,8 +144,6 @@ soup_message_io_stop (SoupMessage *msg) if (io->read_state < SOUP_MESSAGE_IO_STATE_FINISHING) soup_socket_disconnect (io->sock); - else if (io->item && io->item->conn) - soup_connection_set_state (io->item->conn, SOUP_CONNECTION_IDLE); } #define SOUP_MESSAGE_IO_EOL "\r\n" diff --git a/libsoup/soup-session-sync.c b/libsoup/soup-session-sync.c index aecbf6f..7bd76ea 100644 --- a/libsoup/soup-session-sync.c +++ b/libsoup/soup-session-sync.c @@ -155,7 +155,7 @@ tunnel_connect (SoupSession *session, SoupMessageQueueItem *related) soup_session_send_queue_item (session, item, NULL); status = item->msg->status_code; if (item->state == SOUP_MESSAGE_RESTARTING && - soup_connection_get_state (conn) != SOUP_CONNECTION_DISCONNECTED) { + soup_message_io_in_progress (item->msg)) { item->state = SOUP_MESSAGE_STARTING; soup_message_restarted (item->msg); } else { diff --git a/libsoup/soup-session.c b/libsoup/soup-session.c index aa57d12..cd4bbdd 100644 --- a/libsoup/soup-session.c +++ b/libsoup/soup-session.c @@ -1499,6 +1499,7 @@ soup_session_unqueue_item (SoupSession *session, SoupSessionHost *host; if (item->conn) { + soup_connection_set_state (item->conn, SOUP_CONNECTION_IDLE); g_object_unref (item->conn); item->conn = NULL; }