[gnio] Add error checking to g_tcp_listener_socket_factory
- From: Alexander Larsson <alexl src gnome org>
- To: svn-commits-list gnome org
- Subject: [gnio] Add error checking to g_tcp_listener_socket_factory
- Date: Wed, 6 May 2009 05:44:22 -0400 (EDT)
commit 9f82834fe8bee15a6dc5f2c098357c3bb2950613
Author: Alexander Larsson <alexl redhat com>
Date: Wed May 6 11:37:33 2009 +0200
Add error checking to g_tcp_listener_socket_factory
---
gio/gtcplistener.c | 21 +++++++++++++++++----
1 files changed, 17 insertions(+), 4 deletions(-)
diff --git a/gio/gtcplistener.c b/gio/gtcplistener.c
index 334b3f7..b53c596 100644
--- a/gio/gtcplistener.c
+++ b/gio/gtcplistener.c
@@ -69,7 +69,7 @@ g_tcp_listener_socket_factory (GSocketListener *listener,
G_SOCKET_TYPE_STREAM,
NULL);
- if (socket)
+ if (!g_socket_has_error (socket, NULL))
/* we can do ipv6, so bind to :: */
address = g_inet_address_new_any (G_SOCKET_FAMILY_IPV6);
@@ -83,14 +83,27 @@ g_tcp_listener_socket_factory (GSocketListener *listener,
}
}
+ if (g_socket_has_error (socket, error))
+ return NULL;
+
g_socket_set_reuse_address (socket, TRUE);
sockaddr = g_inet_socket_address_new (address, tcp_listener->priv->port);
- /* XXX fix */
- g_socket_bind (socket, sockaddr, NULL);
- g_socket_listen (socket, NULL);
+ if (!g_socket_bind (socket, sockaddr, error))
+ {
+ g_object_unref (socket);
+ socket = NULL;
+ goto err;
+ }
+
+ if (!g_socket_listen (socket, error))
+ {
+ g_object_unref (socket);
+ socket = NULL;
+ }
+ err:
g_object_unref (sockaddr);
g_object_unref (address);
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]