+2003-07-29 Dan Winship <danw@ximian.com>
+
+ * configure.in: 1.99.25 ("Potato and Leek Soup")
+
+ * libsoup/soup-message.c (requeue_read_finished,
+ release_connection): Free the passed-in body data. Otherwise the
+ response body ends up getting leaked on most 3xx and 4xx
+ responses.
+ (soup_message_cleanup): Remove a piece of code that didn't
+ actually do anything and its associated confused comment.
+
+ * libsoup/soup-auth.c (ntlm_free): plug an occasional NTLM auth leak
+
+ * libsoup/soup-context.c (connection_free): plug a non-occasional
+ NTLM auth leak.
+
2003-06-26 Joe Shaw <joe@ximian.com>
* configure.in: Version 1.99.24
AC_INIT(libsoup/soup.h)
-AM_INIT_AUTOMAKE(libsoup, 1.99.24)
+AM_INIT_AUTOMAKE(libsoup, 1.99.25)
AM_CONFIG_HEADER(config.h)
AM_MAINTAINER_MODE
AC_PROG_MAKE_SET
SoupAuthNTLM *auth = (SoupAuthNTLM *) sa;
g_free (auth->response);
+ g_free (auth->header);
g_free (auth);
}
conn->server->connections =
g_slist_remove (conn->server->connections, conn);
+ if (conn->auth) {
+ soup_auth_invalidate (conn->auth, conn->context);
+ soup_auth_free (conn->auth);
+ }
+
g_io_channel_unref (conn->channel);
soup_context_unref (conn->context);
soup_socket_unref (conn->socket);
{
SoupConnection *conn = user_data;
soup_connection_release (conn);
+
+ if (data->owner == SOUP_BUFFER_SYSTEM_OWNED)
+ g_free (data->body);
}
static void
soup_transfer_read_unref (req->priv->read_tag);
req->priv->read_tag = NULL;
req->connection = NULL;
- /*
- * The buffer doesn't belong to us until the message is
- * finished.
- */
- req->response.owner = SOUP_BUFFER_STATIC;
}
if (req->priv->read_tag) {
SoupMessage *msg = user_data;
SoupConnection *conn = msg->connection;
+ if (buf->owner == SOUP_BUFFER_SYSTEM_OWNED)
+ g_free (buf->body);
+
soup_connection_set_used (msg->connection);
if (!soup_connection_is_keep_alive (msg->connection))
requeue_read_error (FALSE, msg);