From 6181cf3de53224e6ce099caf4deec546cfa299b8 Mon Sep 17 00:00:00 2001 From: Dan Winship Date: Fri, 25 Apr 2003 17:34:08 +0000 Subject: [PATCH] if an old connection suddenly gets an io error while reading or writing, * libsoup/soup-queue.c (soup_queue_error_cb): if an old connection suddenly gets an io error while reading or writing, assume it's a timeout or something, close the connection, and requeue the message. --- ChangeLog | 7 +++++++ libsoup/soup-queue.c | 7 ++++++- 2 files changed, 13 insertions(+), 1 deletion(-) diff --git a/ChangeLog b/ChangeLog index 6f7752c..55c2b21 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,10 @@ +2003-04-25 Dan Winship + + * libsoup/soup-queue.c (soup_queue_error_cb): if an old connection + suddenly gets an io error while reading or writing, assume it's a + timeout or something, close the connection, and requeue the + message. + 2003-04-23 Dan Winship * libsoup/soup-message.c (soup_message_cleanup): Don't set up the diff --git a/libsoup/soup-queue.c b/libsoup/soup-queue.c index e862bfa..679f8e1 100644 --- a/libsoup/soup-queue.c +++ b/libsoup/soup-queue.c @@ -90,11 +90,16 @@ soup_queue_error_cb (gboolean body_started, gpointer user_data) req->priv->retries++; soup_message_requeue (req); } - } else { + } else if (soup_connection_is_new (req->connection)) { soup_message_set_error ( req, SOUP_ERROR_CANT_CONNECT); soup_message_issue_callback (req); + } else { + /* Must have timed out. Try a new connection */ + soup_connection_release (req->connection); + req->connection = NULL; + soup_message_requeue (req); } } else { soup_message_set_error (req, SOUP_ERROR_IO); -- 2.7.4