From f8d1c20542111b9f359f4362638423ab23ed81c5 Mon Sep 17 00:00:00 2001 From: Jon Bergli Heier Date: Fri, 27 Aug 2010 22:52:34 +0200 Subject: Split find into findl and findr, for local and remote search, respectively. 'find' without any suffix implicates a findl+findr search. --- server_communication.c | 15 +++++++++++---- 1 file changed, 11 insertions(+), 4 deletions(-) (limited to 'server_communication.c') diff --git a/server_communication.c b/server_communication.c index 64de9dc..448ebbf 100644 --- a/server_communication.c +++ b/server_communication.c @@ -71,17 +71,16 @@ gboolean server_ping(struct server *server) { return result; } -gchar **server_find(struct server *server, const gchar *type, const gchar *str) { +static gchar **server_get_stringlist(struct server *server, const gchar *cmd) { GSocket *socket = server_connect(server); if(socket == NULL) { return NULL; } - gchar buffer[0x400]; - g_snprintf(buffer, 0x400, "findr %s %s\nexit\n", type, str); - g_socket_send(socket, buffer, strlen(buffer), NULL, NULL); + g_socket_send(socket, cmd, strlen(cmd), NULL, NULL); + gchar buffer[0x400]; gssize size; GString *string = g_string_new(NULL); while((size = g_socket_receive(socket, buffer, 0x400, NULL, NULL)) > 0) { @@ -95,3 +94,11 @@ gchar **server_find(struct server *server, const gchar *type, const gchar *str) return data; } + +gchar **server_find(struct server *server, const gchar *type, const gchar *str) { + gchar *cmd = g_strdup_printf("findl %s %s\nexit\n", type, str); + gchar **data = server_get_stringlist(server, cmd); + g_free(cmd); + + return data; +} -- cgit v1.2.3