+2003-06-19 Dan Winship <danw@ximian.com>
+
+ * libsoup/soup-queue.c (soup_queue_read_done_cb): unref the
+ old read_tag before changing/clearing it.
+ (soup_queue_write_done_cb): Likewise with the write_tag.
+
+ * libsoup/soup-transfer.c (issue_final_callback): ref the reader
+ around the stop+callback.
+ (soup_transfer_write_cb): Likewise.
+
2003-06-12 Dan Winship <danw@ximian.com>
* libsoup/soup-transfer.c (SoupReader, SoupWriter): add a
req->response.length = data->length;
req->response.body = data->body;
+ soup_transfer_read_unref (req->priv->read_tag);
+
if (req->errorclass == SOUP_ERROR_CLASS_INFORMATIONAL) {
GIOChannel *channel;
gboolean overwrt;
}
else {
req->status = SOUP_STATUS_FINISHED;
- req->priv->read_tag = 0;
+ req->priv->read_tag = NULL;
}
soup_message_run_handlers (req, SOUP_HANDLER_POST_BODY);
{
SoupMessage *req = user_data;
- req->priv->write_tag = 0;
+ soup_transfer_write_unref (req->priv->write_tag);
+ req->priv->write_tag = NULL;
req->status = SOUP_STATUS_READING_RESPONSE;
}
r->callback_issued = TRUE;
+ soup_transfer_read_ref (r);
soup_transfer_read_stop (r);
(*r->read_done_cb) (&buf, r->user_data);
+ soup_transfer_read_unref (r);
}
static gboolean
goto WRITE_AGAIN;
}
+ soup_transfer_write_ref (w);
soup_transfer_write_stop (w);
(*w->write_done_cb) (w->user_data);
+ soup_transfer_write_unref (w);
return FALSE;
}