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
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"
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 {
SoupSessionHost *host;
if (item->conn) {
+ soup_connection_set_state (item->conn, SOUP_CONNECTION_IDLE);
g_object_unref (item->conn);
item->conn = NULL;
}