Only set socket as non blocking after sending connection notice.
[cascardo/rnetproxy.git] / 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;
 }