diff options
author | Jon Bergli Heier <snakebite@jvnv.net> | 2010-08-27 21:32:47 +0200 |
---|---|---|
committer | Jon Bergli Heier <snakebite@jvnv.net> | 2010-08-27 21:32:47 +0200 |
commit | 6bb47a8f11ee8f6dff980f60758c4df48eeb9455 (patch) | |
tree | 656a67082ed76e6f063a72c4537557383417b160 | |
parent | 297d480ba91b45f4145932024bfde48c37ebf539 (diff) |
Do proper error reporting in commands.
-rw-r--r-- | commands.c | 19 |
1 files changed, 9 insertions, 10 deletions
@@ -5,6 +5,10 @@ #include <string.h> +GQuark commands_quark() { + return g_quark_from_static_string("commands"); +} + static void commands_list(GSocketConnection *connection, const gchar *cmd, GError **error) { gchar **data = g_strsplit(cmd, " ", 2); for(gint i = 0; data[i]; i++) { @@ -23,11 +27,7 @@ static void commands_list(GSocketConnection *connection, const gchar *cmd, GErro struct directory *directory = music_find_dir(dirname); if(directory == NULL) { - g_warning("couldn't find directory %s", dirname); - gchar *buf = g_strdup_printf("error: couldn't find directory %s\n", dirname); - GSocket *socket = g_socket_connection_get_socket(connection); - g_socket_send(socket, buf, strlen(buf), NULL, NULL); - g_free(buf); + *error = g_error_new(commands_quark(), 0, "error: couldn't find directory %s\n", dirname); return; } @@ -58,9 +58,7 @@ static void commands_find(GSocketConnection *connection, const gchar *cmd, GErro gchar **data = g_strsplit(cmd, " ", 3); if(g_strv_length(data) != 3) { - const gchar *buf = "syntax: find (artist) search\n"; - GSocket *socket = g_socket_connection_get_socket(connection); - g_socket_send(socket, buf, strlen(buf), NULL, NULL); + *error = g_error_new(commands_quark(), 0, "syntax: find artist|title|album search"); return; } @@ -74,7 +72,8 @@ static void commands_find(GSocketConnection *connection, const gchar *cmd, GErro } else if(g_ascii_strcasecmp(data[1], "album") == 0) { list = music_find_album(data[2]); } else { - g_debug("unknown search"); + *error = g_error_new(commands_quark(), 0, "unknown search method %s", data[1]); + return; } GString *string = g_string_new(NULL); @@ -136,6 +135,6 @@ void commands_handle(GSocketConnection *connection, const gchar *cmd, GError **e commands_exit(connection, cmd, error); } else { g_debug("unknown command"); - *error = g_error_new(0, 0, "unknown command %s", cmd); + *error = g_error_new(commands_quark(), 0, "unknown command %s", cmd); } } |