Module: kamailio Branch: master Commit: a7ade4f3c6c2439ebc286c0c595c92b88550dbc3 URL: https://github.com/kamailio/kamailio/commit/a7ade4f3c6c2439ebc286c0c595c92b8...
Author: Daniel-Constantin Mierla miconda@gmail.com Committer: Daniel-Constantin Mierla miconda@gmail.com Date: 2022-04-08T13:25:31+02:00
dispatcher: rpc command to add a record updated to get priority
---
Modified: src/modules/dispatcher/dispatch.c Modified: src/modules/dispatcher/dispatch.h Modified: src/modules/dispatcher/dispatcher.c
---
Diff: https://github.com/kamailio/kamailio/commit/a7ade4f3c6c2439ebc286c0c595c92b8... Patch: https://github.com/kamailio/kamailio/commit/a7ade4f3c6c2439ebc286c0c595c92b8...
---
diff --git a/src/modules/dispatcher/dispatch.c b/src/modules/dispatcher/dispatch.c index b82bc89b90..0f6a6b178f 100644 --- a/src/modules/dispatcher/dispatch.c +++ b/src/modules/dispatcher/dispatch.c @@ -2611,12 +2611,11 @@ void ds_add_dest_cb(ds_set_t *node, int i, void *arg) }
/* add dispatcher entry to in-memory dispatcher list */ -int ds_add_dst(int group, str *address, int flags, str *attrs) +int ds_add_dst(int group, str *address, int flags, int priority, str *attrs) { - int setn, priority; + int setn;
setn = _ds_list_nr; - priority = 0;
*ds_next_idx = (*ds_crt_idx + 1) % 2; ds_avl_destroy(&ds_lists[*ds_next_idx]); diff --git a/src/modules/dispatcher/dispatch.h b/src/modules/dispatcher/dispatch.h index fec204bfff..3eaa9894dd 100644 --- a/src/modules/dispatcher/dispatch.h +++ b/src/modules/dispatcher/dispatch.h @@ -145,7 +145,7 @@ int ds_select_dst_limit(sip_msg_t *msg, int set, int alg, uint32_t limit, int mode); int ds_select_dst(struct sip_msg *msg, int set, int alg, int mode); int ds_update_dst(struct sip_msg *msg, int upos, int mode); -int ds_add_dst(int group, str *address, int flags, str *attrs); +int ds_add_dst(int group, str *address, int flags, int priority, str *attrs); int ds_remove_dst(int group, str *address); int ds_update_state(sip_msg_t *msg, int group, str *address, int state, ds_rctx_t *rctx); diff --git a/src/modules/dispatcher/dispatcher.c b/src/modules/dispatcher/dispatcher.c index e877e3bf6c..ccf579fba8 100644 --- a/src/modules/dispatcher/dispatcher.c +++ b/src/modules/dispatcher/dispatcher.c @@ -1907,7 +1907,7 @@ static const char *dispatcher_rpc_add_doc[2] = { */ static void dispatcher_rpc_add(rpc_t *rpc, void *ctx) { - int group, flags, nparams; + int group, flags, priority, nparams; str dest; str attrs = STR_NULL;
@@ -1924,17 +1924,18 @@ static void dispatcher_rpc_add(rpc_t *rpc, void *ctx) *ds_rpc_reload_time = time(NULL);
flags = 0; + priority = 0;
- nparams = rpc->scan(ctx, "dS*dS", &group, &dest, &flags, &attrs); + nparams = rpc->scan(ctx, "dS*ddS", &group, &dest, &flags, &priority, &attrs); if(nparams < 2) { rpc->fault(ctx, 500, "Invalid Parameters"); return; - } else if (nparams <= 3) { + } else if (nparams <= 4) { attrs.s = 0; attrs.len = 0; }
- if(ds_add_dst(group, &dest, flags, &attrs) != 0) { + if(ds_add_dst(group, &dest, flags, priority, &attrs) != 0) { rpc->fault(ctx, 500, "Adding dispatcher dst failed"); return; }