diff options
author | Jon Bergli Heier <snakebite@jvnv.net> | 2010-08-27 22:52:34 +0200 |
---|---|---|
committer | Jon Bergli Heier <snakebite@jvnv.net> | 2010-08-27 22:52:34 +0200 |
commit | f8d1c20542111b9f359f4362638423ab23ed81c5 (patch) | |
tree | 9292b69c85ce54080cd71c4ebc48f1ec9873cb89 /server_communication.c | |
parent | 6bb47a8f11ee8f6dff980f60758c4df48eeb9455 (diff) |
Split find into findl and findr, for local and remote search, respectively.
'find' without any suffix implicates a findl+findr search.
Diffstat (limited to 'server_communication.c')
-rw-r--r-- | server_communication.c | 15 |
1 files changed, 11 insertions, 4 deletions
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; +} |