diff options
author | Jon Bergli Heier <snakebite@jvnv.net> | 2010-08-20 16:15:15 +0200 |
---|---|---|
committer | Jon Bergli Heier <snakebite@jvnv.net> | 2010-08-20 16:15:15 +0200 |
commit | c08386db6b190f32a138c667a4bbc637e8ffa620 (patch) | |
tree | 98d7fef67108682940dbc7011def1638859aafe3 /server.c | |
parent | 5241f71a41f4125281f9215dd30b8fc4dfc546b1 (diff) |
Moved server.[ch] to command_service.[ch].
Diffstat (limited to 'server.c')
-rw-r--r-- | server.c | 57 |
1 files changed, 0 insertions, 57 deletions
diff --git a/server.c b/server.c deleted file mode 100644 index 1015572..0000000 --- a/server.c +++ /dev/null @@ -1,57 +0,0 @@ -#include "server_commands.h" - -#include <gio/gio.h> - -static GSocketService *ss = NULL; - -static gboolean service_incoming(GSocketService *service, - GSocketConnection *connection, GObject *source_object, - gpointer user_data) { - GError *error = NULL; - GSocket *socket = g_socket_connection_get_socket(connection); - gchar buffer[0x400]; - - while(g_socket_is_connected(socket) == TRUE) { - gssize size = g_socket_receive(socket, buffer, 0x400, NULL, &error); - - if(size < 0) { - g_warning(error->message); - return FALSE; - } else if(size == 0) { - break; - } - - g_debug("size == %d", size); - g_debug(buffer); - - gchar *pos = g_strstr_len(buffer, size, "\r"); - if(pos == NULL) { - pos = g_strstr_len(buffer, size, "\n"); - } - if(pos == NULL) { - g_warning("EOL not found"); - return FALSE; - } - *pos = '\0'; - - server_commands_handle(connection, buffer); - } - - return FALSE; -} - -gboolean server_start() { - ss = g_threaded_socket_service_new(10); - - g_socket_listener_add_inet_port((GSocketListener*)ss, 7681, NULL, NULL); - - g_signal_connect(ss, "incoming", (GCallback)service_incoming, NULL); - g_socket_service_start(ss); - - return TRUE; -} - -void server_stop() { - g_socket_service_stop(ss); - g_object_unref(ss); -} |