summaryrefslogtreecommitdiff
path: root/commands.c
diff options
context:
space:
mode:
authorJon Bergli Heier <snakebite@jvnv.net>2010-09-04 15:07:02 +0200
committerJon Bergli Heier <snakebite@jvnv.net>2010-09-04 15:07:02 +0200
commitff98a0702c71e1b729ed227b202ec40edb7b2d9c (patch)
treee69b337b702fa3f3691674963f053346873e97ad /commands.c
parent0e7966127623f98c3bd591bc5497fad7a13bcba9 (diff)
Added proper error handling to server communication.
Diffstat (limited to 'commands.c')
-rw-r--r--commands.c12
1 files changed, 7 insertions, 5 deletions
diff --git a/commands.c b/commands.c
index d182996..81650ee 100644
--- a/commands.c
+++ b/commands.c
@@ -46,9 +46,8 @@ static void list_remote(GString *string, gchar *remotename, gchar *dirname, GErr
return;
}
- gchar **data = server_list(server, dirname);
+ gchar **data = server_list(server, dirname, error);
if(data == NULL) {
- *error = g_error_new(commands_quark(), 0, "couldn't retrieve list");
return;
}
@@ -148,8 +147,11 @@ static void commands_find(GSocketConnection *connection, const gchar *cmd, GErro
for(GSList *node = servers; node; node = g_slist_next(node)) {
struct server *server = node->data;
g_debug("fetching data from server %s", server->host);
- gchar **temp = server_find(server, data[1], data[2]);
+ gchar **temp = server_find(server, data[1], data[2], error);
if(temp == NULL) {
+ g_warning((*error)->message);
+ g_error_free(*error);
+ *error = NULL;
continue;
}
for(gint i = 0; i < g_strv_length(temp); i++) {
@@ -186,7 +188,7 @@ static void commands_get(GSocketConnection *connection, const gchar *cmd, GError
if(g_strv_length(data) != 5) {
g_strfreev(data);
- *error = g_error_new(commands_quark(), 0, "syntax: get TYPE LOCALFILE REMOTEHOST REMOTEFILE");
+ *error = g_error_new(commands_quark(), 0, "syntax: get TYPE LOCALFILE REMOTENAME REMOTEFILE");
return;
}
@@ -203,7 +205,7 @@ static void commands_get(GSocketConnection *connection, const gchar *cmd, GError
gchar *localfile = g_uri_unescape_string(data[2], NULL);
gchar *remotefile = g_uri_unescape_string(data[4], NULL);
- server_get(server, data[1], localfile, remotefile);
+ server_get(server, data[1], localfile, remotefile, error);
g_free(localfile);
g_free(remotefile);