summaryrefslogtreecommitdiff
path: root/server_communication.c
diff options
context:
space:
mode:
Diffstat (limited to 'server_communication.c')
-rw-r--r--server_communication.c15
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;
+}