From: Samuel Cormier-Iijima Date: Thu, 28 Feb 2008 20:59:15 +0000 (-0500) Subject: Add g_socket_close X-Git-Url: http://git.cascardo.eti.br/?p=cascardo%2Fgnio.git;a=commitdiff_plain;h=ff5aadf6193e651cf9029bc91954a4caf3b3f4d0 Add g_socket_close --- diff --git a/gnio/gsocket.c b/gnio/gsocket.c index 9f9a5ac..0887202 100644 --- a/gnio/gsocket.c +++ b/gnio/gsocket.c @@ -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 +} diff --git a/gnio/gsocket.h b/gnio/gsocket.h index 0f0a5e0..625e24a 100644 --- a/gnio/gsocket.h +++ b/gnio/gsocket.h @@ -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 */ diff --git a/test/test-client.c b/test/test-client.c index 62572b3..8706e92 100644 --- a/test/test-client.c +++ b/test/test-client.c @@ -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; } diff --git a/test/test-server.c b/test/test-server.c index 71c7bb1..601fe68 100644 --- a/test/test-server.c +++ b/test/test-server.c @@ -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; }