From ff5aadf6193e651cf9029bc91954a4caf3b3f4d0 Mon Sep 17 00:00:00 2001 From: Samuel Cormier-Iijima Date: Thu, 28 Feb 2008 15:59:15 -0500 Subject: [PATCH] Add g_socket_close --- gnio/gsocket.c | 12 ++++++++++++ gnio/gsocket.h | 2 ++ test/test-client.c | 6 +++++- test/test-server.c | 6 ++++++ 4 files changed, 25 insertions(+), 1 deletion(-) 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; } -- 2.20.1