Only set socket as non blocking after sending connection notice.
authorThadeu Lima de Souza Cascardo <cascardo@holoscopio.com>
Thu, 2 Jul 2009 18:36:24 +0000 (15:36 -0300)
committerThadeu Lima de Souza Cascardo <cascardo@holoscopio.com>
Thu, 2 Jul 2009 18:36:24 +0000 (15:36 -0300)
iochannel.c

index a7c4742..e4d5514 100644 (file)
@@ -108,7 +108,6 @@ HCConn *
 hc_conn_new (int fd, HCClientFunc func, gpointer data)
 {
   HCConn *conn;
-  fcntl (fd, F_SETFL, fcntl (fd, F_GETFL, 0) | O_NONBLOCK);
   conn = g_slice_new (HCConn);
   conn->channel = g_io_channel_unix_new (fd);
   conn->func = func;
@@ -120,6 +119,7 @@ hc_conn_new (int fd, HCClientFunc func, gpointer data)
   conn->watch = g_io_add_watch (conn->channel, G_IO_IN, hc_conn_watch, conn);
   if (conn->func)
     conn->func (conn, HC_EVENT_CONNECT, conn->data);
+  fcntl (fd, F_SETFL, fcntl (fd, F_GETFL, 0) | O_NONBLOCK);
   return conn;
 }