Asynchronous accepts now work, the rest should go smoothly :-)
[cascardo/gnio.git] / test / test-server.c
index 7507a98..9a7c9d6 100644 (file)
@@ -8,10 +8,24 @@
 
 GMainLoop *loop;
 
-int main (int argc, char *argv[])
+void
+accept_callback (GSocket *socket, GAsyncResult *result, gpointer data)
 {
-       GSocket *socket, *new_socket;
+       GSocket *new_socket;
        GSocketAddress *address;
+       GError *error = NULL;
+
+       new_socket = g_socket_accept_finish (socket, result, &error);
+
+       address = g_socket_get_peer_address (new_socket, NULL);
+
+       g_printf ("got a new connection from %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)));
+
+}
+
+int main (int argc, char *argv[])
+{
+       GSocket *socket;
 
        g_thread_init (NULL);
 
@@ -27,13 +41,9 @@ int main (int argc, char *argv[])
 
        g_printf ("listening on port 31882...\n");
 
-       new_socket = g_socket_accept (socket, NULL, NULL);
-
-       address = g_socket_get_peer_address (new_socket, NULL);
-
-       g_printf ("got a new connection from %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_socket_accept_async (socket, NULL, (GAsyncReadyCallback) accept_callback, NULL);
 
-//     g_main_loop_run (loop);
+       g_main_loop_run (loop);
 
        return 0;
 }