/* I/O */
void soup_message_io_stop (SoupMessage *msg);
+void soup_message_io_finished (SoupMessage *msg);
void soup_message_io_pause (SoupMessage *msg);
void soup_message_io_unpause (SoupMessage *msg);
gboolean soup_message_io_in_progress (SoupMessage *msg);
static void queue_message (SoupSession *session, SoupMessage *req,
SoupSessionCallback callback, gpointer user_data);
static guint send_message (SoupSession *session, SoupMessage *req);
-static void cancel_message (SoupSession *session, SoupMessage *msg,
- guint status_code);
static void auth_required (SoupSession *session, SoupMessage *msg,
SoupAuth *auth, gboolean retrying);
/* virtual method override */
session_class->queue_message = queue_message;
session_class->send_message = send_message;
- session_class->cancel_message = cancel_message;
session_class->auth_required = auth_required;
object_class->finalize = finalize;
}
static void
-cancel_message (SoupSession *session, SoupMessage *msg, guint status_code)
-{
- SOUP_SESSION_CLASS (soup_session_async_parent_class)->cancel_message (session, msg, status_code);
- do_idle_run_queue (session);
-}
-
-static void
got_passwords (SoupPasswordManager *password_manager, SoupMessage *msg,
SoupAuth *auth, gboolean retrying, gpointer session)
{
if (item->cancellable)
g_cancellable_cancel (item->cancellable);
- soup_message_io_stop (msg);
soup_message_set_status (msg, status_code);
- item->state = SOUP_MESSAGE_FINISHING;
+ if (soup_message_io_in_progress (msg))
+ soup_message_io_finished (msg);
+ else
+ item->state = SOUP_MESSAGE_FINISHING;
soup_message_queue_item_unref (item);
}