diff --git a/src/commands.c b/src/commands.c index c5ac47f5ae64cefdd1c4e88e278edbb4efbc250c..3ec257a0af4c8b3c7f0f36ee7a3fbdb2b58babc5 100644 --- a/src/commands.c +++ b/src/commands.c @@ -503,10 +503,10 @@ command_noidle(struct lkt_state *srv, size_t c) /* Functions for the searchadd and the search mpd commands */ static bool -lkt_callback_print_row_v1(void *args, int id, int id_len, const char *sql_row) +lkt_callback_print_row_v1(struct lkt_state *srv, size_t c, int id, int id_len, const char *sql_row) { - printf(" . from client %ld:\t%*d:%s\n", ((struct lkt_callback *) args)->c, - id_len, id, sql_row); + (void) srv; + printf(" . from client %ld:\t%*d:%s\n", c, id_len, id, sql_row); return true; } @@ -514,18 +514,30 @@ static bool lkt_callback_send_row_v1(void *_args, int id, int id_len, const char *sql_row) { struct lkt_callback *args = (struct lkt_callback *) _args; - struct lkt_message *out = lkt_message_new(); + struct lkt_message *out; + + out = lkt_message_new(); out->data_len = snprintf(out->data, LKT_MESSAGE_MAX, "%*d %s\n", id_len, id, sql_row); lkt_state_send(args->srv, args->c, out); return true; } static bool -lkt_callback_insert_v1(void *_args, int id, int id_len, const char *sql_row) +lkt_callback_send_row_v2(struct lkt_state *srv, size_t c, int id, int id_len, const char *sql_row) { + struct lkt_message *out = lkt_message_new(); + out->data_len = snprintf(out->data, LKT_MESSAGE_MAX, "%*d %s\n", id_len, id, sql_row); + lkt_state_send(srv, c, out); + return true; +} + +static bool +lkt_callback_insert_v1(struct lkt_state *srv, size_t c, int id, int id_len, const char *sql_row) +{ + (void) c; (void) sql_row; (void) id_len; - return database_queue_add_id(((struct lkt_callback *) _args)->srv->db, id, 5); + return database_queue_add_id(srv->db, id, 5); } bool @@ -546,7 +558,7 @@ command_find(struct lkt_state *srv, size_t c, char *cmd_args[LKT_MESSAGE_ARGS_MA // Select callback // switch (action) { case LKT_FND_ACT_RESPOND: - search.call = (void(*)(void)) lkt_callback_send_row_v1; + search.call = (void(*)(void)) lkt_callback_send_row_v2; break; case LKT_FND_ACT_PRINT: search.call = (void(*)(void)) lkt_callback_print_row_v1;