Module: kamailio Branch: master Commit: e7a89633c809345aabdcf68f120f01e7d52d116d URL: https://github.com/kamailio/kamailio/commit/e7a89633c809345aabdcf68f120f01e7d52d116d
Author: Daniel-Constantin Mierla <[email protected]> Committer: Daniel-Constantin Mierla <[email protected]> Date: 2017-07-21T10:11:07+02:00 cfg_rpc: hanlde return code inside cfg.reset rpc command --- Modified: src/modules/cfg_rpc/cfg_rpc.c --- Diff: https://github.com/kamailio/kamailio/commit/e7a89633c809345aabdcf68f120f01e7d52d116d.diff Patch: https://github.com/kamailio/kamailio/commit/e7a89633c809345aabdcf68f120f01e7d52d116d.patch --- diff --git a/src/modules/cfg_rpc/cfg_rpc.c b/src/modules/cfg_rpc/cfg_rpc.c index 18c16c8733..a9c42dc1e3 100644 --- a/src/modules/cfg_rpc/cfg_rpc.c +++ b/src/modules/cfg_rpc/cfg_rpc.c @@ -355,12 +355,12 @@ static void rpc_get(rpc_t* rpc, void* c) } } -static const char* rpc_reset_doc[2] = { +static const char* rpc_cfg_var_reset_doc[2] = { "Reset all the values of a configuration group and commit the change immediately", 0 }; -static void rpc_reset(rpc_t* rpc, void* c) +static void rpc_cfg_var_reset(rpc_t* rpc, void* c) { void *h; str gname, var; @@ -378,7 +378,7 @@ static void rpc_reset(rpc_t* rpc, void* c) if (get_group_id(&group, &group_id)) { rpc->fault(c, 400, "Wrong group syntax. Use either \"group\", or \"group[id]\""); - return; + return; } cfg_get_group_init(&h); @@ -402,10 +402,21 @@ static void rpc_reset(rpc_t* rpc, void* c) return; } - if (input_type == CFG_INPUT_INT) - cfg_set_now_int(ctx, &gname, group_id, &var, (int)(long)val); - else if (input_type == CFG_INPUT_STRING) - cfg_set_now_string(ctx, &gname, group_id, &var, val); + if (input_type == CFG_INPUT_INT) { + ret = cfg_set_now_int(ctx, &gname, group_id, &var, + (int)(long)val); + } else if (input_type == CFG_INPUT_STRING) { + ret = cfg_set_now_string(ctx, &gname, group_id, &var, val); + } else { + rpc->fault(c, 500, "Unsupported input type"); + return; + } + if(ret<0) { + rpc->fault(c, 500, "Reset failed"); + return; + } else if(ret==1) { + LM_WARN("unexpected situation - variable not found\n"); + } } } } @@ -601,7 +612,7 @@ static rpc_export_t rpc_calls[] = { {"cfg.commit", rpc_commit, rpc_commit_doc, 0}, {"cfg.rollback", rpc_rollback, rpc_rollback_doc, 0}, {"cfg.get", rpc_get, rpc_get_doc, 0}, - {"cfg.reset", rpc_reset, rpc_reset_doc, 0}, + {"cfg.reset", rpc_cfg_var_reset, rpc_cfg_var_reset_doc, 0}, {"cfg.help", rpc_help, rpc_help_doc, 0}, {"cfg.list", rpc_list, rpc_list_doc, 0}, {"cfg.diff", rpc_diff, rpc_diff_doc, 0}, _______________________________________________ Kamailio (SER) - Development Mailing List [email protected] https://lists.kamailio.org/cgi-bin/mailman/listinfo/sr-dev
