Module: kamailio Branch: master Commit: d9a4b2929ec999127c46256a6f497520df017488 URL: https://github.com/kamailio/kamailio/commit/d9a4b2929ec999127c46256a6f497520df017488
Author: Daniel-Constantin Mierla <mico...@gmail.com> Committer: Daniel-Constantin Mierla <mico...@gmail.com> Date: 2019-04-18T09:37:36+02:00 core: xavp - helper function to remove child value --- Modified: src/core/xavp.c Modified: src/core/xavp.h --- Diff: https://github.com/kamailio/kamailio/commit/d9a4b2929ec999127c46256a6f497520df017488.diff Patch: https://github.com/kamailio/kamailio/commit/d9a4b2929ec999127c46256a6f497520df017488.patch --- diff --git a/src/core/xavp.c b/src/core/xavp.c index 1e25862650..be3bba423f 100644 --- a/src/core/xavp.c +++ b/src/core/xavp.c @@ -447,6 +447,20 @@ int xavp_rm_by_index(str *name, int idx, sr_xavp_t **head) return xavp_rm_internal(name, head, idx); } +int xavp_rm_child_by_index(str *rname, str *cname, int idx) +{ + sr_xavp_t *avp=NULL; + + if (idx<0) { + return 0; + } + avp = xavp_get(rname, NULL); + + if(avp == NULL || avp->val.type!=SR_XTYPE_XAVP) { + return 0; + } + return xavp_rm_internal(cname, &avp->val.v.xavp, idx); +} int xavp_count(str *name, sr_xavp_t **start) { diff --git a/src/core/xavp.h b/src/core/xavp.h index c97123e190..4cd333eaaf 100644 --- a/src/core/xavp.h +++ b/src/core/xavp.h @@ -88,6 +88,7 @@ sr_xavp_t *xavp_get_last(str *xname, sr_xavp_t **list); int xavp_rm_by_name(str *name, int all, sr_xavp_t **head); int xavp_rm_by_index(str *name, int idx, sr_xavp_t **head); int xavp_rm(sr_xavp_t *xa, sr_xavp_t **head); +int xavp_rm_child_by_index(str *rname, str *cname, int idx); int xavp_count(str *name, sr_xavp_t **start); void xavp_destroy_list_unsafe(sr_xavp_t **head); void xavp_destroy_list(sr_xavp_t **head); _______________________________________________ Kamailio (SER) - Development Mailing List sr-dev@lists.kamailio.org https://lists.kamailio.org/cgi-bin/mailman/listinfo/sr-dev