diff options
-rw-r--r-- | server_communication.c | 16 |
1 files changed, 13 insertions, 3 deletions
diff --git a/server_communication.c b/server_communication.c index 227eb8f..f2f5946 100644 --- a/server_communication.c +++ b/server_communication.c @@ -2,7 +2,7 @@ #include <gio/gio.h> -gboolean server_sync(struct server *server) { +static GSocket *server_connect(struct server *server) { GError *error = NULL, *conn_error = NULL; GSocketConnectable *addr; GSocketAddressEnumerator *enumerator; @@ -30,19 +30,29 @@ gboolean server_sync(struct server *server) { g_warning("server_sync: no connectable addresses found for host %s", server->host); } - return FALSE; + return NULL; } if(conn == NULL) { g_warning(conn_error->message); g_error_free(conn_error); - return FALSE; + return NULL; } GSocket *socket = g_socket_connection_get_socket(conn); g_debug("connected"); + return socket; +} + +gboolean server_sync(struct server *server) { + GSocket *socket = server_connect(server); + + if(socket == NULL) { + return FALSE; + } + g_socket_send(socket, "ping\n", 5, NULL, NULL); gchar buffer[0x400]; g_socket_receive(socket, buffer, 0x400, NULL, NULL); |