From 12077e596832cd5908a1c97caa017bb5198fc024 Mon Sep 17 00:00:00 2001 From: Jon Bergli Heier Date: Thu, 26 Aug 2010 21:37:18 +0200 Subject: Search in added servers when searching from the control service using 'find'. --- server_communication.c | 17 ++++++++--------- 1 file changed, 8 insertions(+), 9 deletions(-) (limited to 'server_communication.c') diff --git a/server_communication.c b/server_communication.c index 007b599..f331a35 100644 --- a/server_communication.c +++ b/server_communication.c @@ -1,4 +1,5 @@ #include "server_communication.h" +#include "music.h" #include #include @@ -70,7 +71,7 @@ gboolean server_ping(struct server *server) { return result; } -GSList *server_find(struct server *server, const gchar *type, const gchar *str) { +gchar **server_find(struct server *server, const gchar *type, const gchar *str) { GSocket *socket = server_connect(server); if(socket == NULL) { @@ -81,18 +82,16 @@ GSList *server_find(struct server *server, const gchar *type, const gchar *str) g_snprintf(buffer, 0x400, "find %s %s\nexit\n", type, str); g_socket_send(socket, buffer, strlen(buffer), NULL, NULL); - GSList *list = NULL; gssize size; + GString *string = g_string_new(NULL); while((size = g_socket_receive(socket, buffer, 0x400, NULL, NULL)) > 0) { - if(buffer[size - 1] == '\n') { - buffer[size - 1] = '\0'; - } - g_debug("got %s", buffer); + g_string_append_len(string, buffer, size); } - g_debug("closed: %d", size); - g_socket_close(socket, NULL); - return NULL; + gchar **data = g_strsplit(string->str, "\n", 0); + g_string_free(string, TRUE); + + return data; } -- cgit v1.2.3