[Telepathy-commits] [telepathy-gabble/master] Handle errors when listening on the SOCKS5 socket
Marco Barisione
marco at barisione.org
Tue Jan 6 08:41:29 PST 2009
---
src/bytestream-socks5.c | 11 +++++++++--
1 files changed, 9 insertions(+), 2 deletions(-)
diff --git a/src/bytestream-socks5.c b/src/bytestream-socks5.c
index d083eb9..9af1d7d 100644
--- a/src/bytestream-socks5.c
+++ b/src/bytestream-socks5.c
@@ -1145,6 +1145,13 @@ socks5_listen_cb (GIOChannel *source,
guint addr_len = sizeof (addr);
int flags;
+ if (condition & G_IO_ERR || condition & G_IO_HUP)
+ {
+ socks5_error (self);
+
+ return FALSE;
+ }
+
fd = accept (g_io_channel_unix_get_fd (source), (struct sockaddr *) &addr,
&addr_len);
@@ -1354,8 +1361,8 @@ gabble_bytestream_socks5_initiate (GabbleBytestreamIface *iface)
g_io_channel_set_close_on_unref (channel, TRUE);
- /* FIXME handle errors */
- priv->read_watch = g_io_add_watch (channel, G_IO_IN, socks5_listen_cb, self);
+ priv->read_watch = g_io_add_watch (channel, G_IO_IN | G_IO_HUP | G_IO_ERR,
+ socks5_listen_cb, self);
addr_len = sizeof (addr);
getsockname (fd, (struct sockaddr *)&addr, &addr_len);
--
1.5.6.5
More information about the Telepathy-commits
mailing list