Add g_socket_close
authorSamuel Cormier-Iijima <sciyoshi@gmail.com>
Thu, 28 Feb 2008 20:59:15 +0000 (15:59 -0500)
committerSamuel Cormier-Iijima <sciyoshi@gmail.com>
Thu, 28 Feb 2008 20:59:15 +0000 (15:59 -0500)
gnio/gsocket.c
gnio/gsocket.h
test/test-client.c
test/test-server.c

index 9f9a5ac..0887202 100644 (file)
@@ -454,3 +454,15 @@ g_socket_send (GSocket       *socket,
 
   return ret;
 }
+
+void
+g_socket_close (GSocket *socket)
+{
+  g_return_if_fail (G_IS_SOCKET (socket));
+
+#ifdef G_OS_WIN32
+  closesocket (socket->priv->fd);
+#else
+  close (socket->priv->fd);
+#endif
+}
index 0f0a5e0..625e24a 100644 (file)
@@ -108,6 +108,8 @@ gssize           g_socket_send               (GSocket       *socket,
                                               gsize          size,
                                               GError       **error);
 
+void             g_socket_close              (GSocket *socket);
+
 G_END_DECLS
 
 #endif /* G_SOCKET_H */
index 62572b3..8706e92 100644 (file)
@@ -44,7 +44,11 @@ int main (int argc, char *argv[])
 
        g_printf ("connected, local socket is %s:%d\n", g_inet_address_to_string (g_inet_socket_address_get_address (G_INET_SOCKET_ADDRESS (address))), g_inet_socket_address_get_port (G_INET_SOCKET_ADDRESS (address)));
 
-       g_main_loop_run (loop);
+       g_socket_close (socket);
+
+       g_object_unref (G_OBJECT (socket));
+
+//     g_main_loop_run (loop);
 
        return 0;
 }
index 71c7bb1..601fe68 100644 (file)
@@ -112,5 +112,11 @@ int main (int argc, char *argv[])
 
        g_print ("connection closed\n");
 
+       g_object_unref (G_OBJECT (new_socket));
+
+       g_socket_close (socket);
+
+       g_object_unref (G_OBJECT (socket));
+
        return 0;
 }