diff options
-rw-r--r-- | main/db.c | 30 | ||||
-rw-r--r-- | res/res_agi.c | 16 |
2 files changed, 27 insertions, 19 deletions
@@ -589,7 +589,7 @@ static char *handle_cli_database_del(struct ast_cli_entry *e, int cmd, struct as static char *handle_cli_database_deltree(struct ast_cli_entry *e, int cmd, struct ast_cli_args *a) { - int res; + int num_deleted; switch (cmd) { case CLI_INIT: @@ -608,14 +608,16 @@ static char *handle_cli_database_deltree(struct ast_cli_entry *e, int cmd, struc if ((a->argc < 3) || (a->argc > 4)) return CLI_SHOWUSAGE; if (a->argc == 4) { - res = ast_db_deltree(a->argv[2], a->argv[3]); + num_deleted = ast_db_deltree(a->argv[2], a->argv[3]); } else { - res = ast_db_deltree(a->argv[2], NULL); + num_deleted = ast_db_deltree(a->argv[2], NULL); } - if (res < 0) { + if (num_deleted < 0) { + ast_cli(a->fd, "Database unavailable.\n"); + } else if (num_deleted == 0) { ast_cli(a->fd, "Database entries do not exist.\n"); } else { - ast_cli(a->fd, "%d database entries removed.\n",res); + ast_cli(a->fd, "%d database entries removed.\n",num_deleted); } return CLI_SUCCESS; } @@ -873,22 +875,26 @@ static int manager_dbdeltree(struct mansession *s, const struct message *m) { const char *family = astman_get_header(m, "Family"); const char *key = astman_get_header(m, "Key"); - int res; + int num_deleted; if (ast_strlen_zero(family)) { astman_send_error(s, m, "No family specified."); return 0; } - if (!ast_strlen_zero(key)) - res = ast_db_deltree(family, key); - else - res = ast_db_deltree(family, NULL); + if (!ast_strlen_zero(key)) { + num_deleted = ast_db_deltree(family, key); + } else { + num_deleted = ast_db_deltree(family, NULL); + } - if (res <= 0) + if (num_deleted < 0) { + astman_send_error(s, m, "Database unavailable"); + } else if (num_deleted == 0) { astman_send_error(s, m, "Database entry not found"); - else + } else { astman_send_ack(s, m, "Key tree deleted successfully"); + } return 0; } diff --git a/res/res_agi.c b/res/res_agi.c index a7ed8b53e..b92ccdbdc 100644 --- a/res/res_agi.c +++ b/res/res_agi.c @@ -2785,16 +2785,18 @@ static int handle_dbdel(struct ast_channel *chan, AGI *agi, int argc, const char static int handle_dbdeltree(struct ast_channel *chan, AGI *agi, int argc, const char * const argv[]) { - int res; + int num_deleted; - if ((argc < 3) || (argc > 4)) + if ((argc < 3) || (argc > 4)) { return RESULT_SHOWUSAGE; - if (argc == 4) - res = ast_db_deltree(argv[2], argv[3]); - else - res = ast_db_deltree(argv[2], NULL); + } + if (argc == 4) { + num_deleted = ast_db_deltree(argv[2], argv[3]); + } else { + num_deleted = ast_db_deltree(argv[2], NULL); + } - ast_agi_send(agi->fd, chan, "200 result=%c\n", res ? '0' : '1'); + ast_agi_send(agi->fd, chan, "200 result=%c\n", num_deleted > 0 ? '0' : '1'); return RESULT_SUCCESS; } |