summaryrefslogtreecommitdiff
path: root/libsoup/soup-server.c
diff options
context:
space:
mode:
authorDan Winship <danw@src.gnome.org>2003-08-12 17:13:53 +0000
committerDan Winship <danw@src.gnome.org>2003-08-12 17:13:53 +0000
commit7013f30f5afe621bd3e5ce5a93b84b039824c57c (patch)
tree09162227ceb55667971640c825bfbdb8fc0ea634 /libsoup/soup-server.c
parentba90a2e60ef012598c5c2ce74cdbb7b3c1148bb5 (diff)
downloadlibsoup-7013f30f5afe621bd3e5ce5a93b84b039824c57c.tar.gz
add gobject-2.0 to the PKG_CHECK_MODULES call
* configure.in (GLIB): add gobject-2.0 to the PKG_CHECK_MODULES call * libsoup/soup-address.c: Make this a GObject. (soup_address_ref, soup_address_unref): Gone. (soup_address_copy): Gone. Wasn't being used anyway. * libsoup/soup-dns.c: Move all of the DNS code and caching stuff here from soup-address.c, so that soup-address doesn't need to worry about trying to cache zero-ref addresses. * libsoup/soup-socket.c: Make this a GObject. Use "guint" consistently for port numbers. (soup_socket_ref, soup_socket_unref): Gone. * libsoup/soup-private.h: Change the SoupSocket definition to be SoupSocketPrivate. (Still need to keep this here since soup-server pokes around in its internals.) (SOUP_MAKE_TYPE): Copied from gal's E_MAKE_TYPE. * libsoup/soup-server.c (read_done_cb, write_done_cb): Unref the reader/writer rather than leaking them. * libsoup/*: Use GObject methods for socket/address refcounting * tests/auth-test.c (main) * tests/timeserver.c (main): Call g_type_init. * tests/get.c (main): Call g_type_init. (get_url, got_url): Fix some bugs that could make -r mode get into infinite loops downloading the same files over and over. Plug some memory leaks to make this more useful for valgrinding libsoup. * tests/simple-httpd.c (main): Call g_type_init. Set up a signal handler for SIGINT so we can exit cleanly, since valgrind won't give a leak report if you don't. Plug a few memory leaks. * tests/simple-proxy.c (main): Likewise
Diffstat (limited to 'libsoup/soup-server.c')
-rw-r--r--libsoup/soup-server.c18
1 files changed, 10 insertions, 8 deletions
diff --git a/libsoup/soup-server.c b/libsoup/soup-server.c
index 1ce700cb..6289394f 100644
--- a/libsoup/soup-server.c
+++ b/libsoup/soup-server.c
@@ -159,7 +159,7 @@ soup_server_unref (SoupServer *serv)
g_source_remove (serv->accept_tag);
if (serv->listen_sock)
- soup_socket_unref (serv->listen_sock);
+ g_object_unref (serv->listen_sock);
if (serv->cgi_read_chan)
g_io_channel_unref (serv->cgi_read_chan);
@@ -262,7 +262,7 @@ destroy_message (SoupMessage *msg)
*/
if (check_close_connection (msg)) {
g_io_channel_close (chan);
- soup_socket_unref (server_sock);
+ g_object_unref (server_sock);
}
else {
/*
@@ -315,6 +315,7 @@ write_done_cb (gpointer user_data)
{
SoupMessage *msg = user_data;
+ soup_transfer_write_unref (msg->priv->write_tag);
msg->priv->write_tag = 0;
destroy_message (msg);
}
@@ -632,7 +633,7 @@ read_headers_cb (const GString *headers,
SoupSocket *server_sock = msg->priv->server_sock;
gchar *host;
- host = get_server_sockname (server_sock->sockfd);
+ host = get_server_sockname (server_sock->priv->sockfd);
url =
g_strdup_printf (
"%s%s:%d%s",
@@ -862,6 +863,7 @@ read_done_cb (const SoupDataBuffer *data,
SoupSocket *server_sock = req->priv->server_sock;
GIOChannel *channel;
+ soup_transfer_read_unref (req->priv->read_tag);
req->priv->read_tag = 0;
call_handler (req, data, soup_context_get_uri (req->context)->path);
@@ -941,12 +943,12 @@ start_another_request (GIOChannel *serv_chan,
if (!(condition & G_IO_IN) ||
ioctl (fd, FIONREAD, &cnt) < 0 ||
cnt <= 0)
- soup_socket_unref (data->server_sock);
+ g_object_unref (data->server_sock);
else {
msg = message_new (data->server);
if (!msg) {
g_warning ("Unable to create new incoming message\n");
- soup_socket_unref (data->server_sock);
+ g_object_unref (data->server_sock);
} else {
msg->priv->server_sock = data->server_sock;
msg->priv->read_tag =
@@ -986,11 +988,11 @@ conn_accept (GIOChannel *serv_chan,
chan = soup_socket_get_iochannel (sock);
if (server->proto == SOUP_PROTOCOL_HTTPS)
- sock->iochannel = soup_ssl_get_server_iochannel (chan);
+ sock->priv->iochannel = soup_ssl_get_server_iochannel (chan);
msg->priv->server_sock = sock;
msg->priv->read_tag =
- soup_transfer_read (sock->iochannel,
+ soup_transfer_read (sock->priv->iochannel,
FALSE,
read_headers_cb,
NULL,
@@ -1234,7 +1236,7 @@ soup_server_context_get_client_host (SoupServerContext *context)
address = soup_server_context_get_client_address (context);
host = g_strdup (soup_address_get_canonical_name (address));
- soup_address_unref (address);
+ g_object_unref (address);
return host;
}