2
0
Эх сурвалжийг харах

core: function to remove an xavu child value

Daniel-Constantin Mierla 5 жил өмнө
parent
commit
02b168d347
2 өөрчлөгдсөн 16 нэмэгдсэн , 0 устгасан
  1. 15 0
      src/core/xavp.c
  2. 1 0
      src/core/xavp.h

+ 15 - 0
src/core/xavp.c

@@ -1258,6 +1258,21 @@ int xavu_rm_by_name(str *name, sr_xavp_t **head)
 	return 0;
 }
 
+/**
+ *
+ */
+int xavu_rm_child_by_name(str *rname, str *cname)
+{
+	sr_xavp_t *avu=NULL;
+
+	avu = xavu_lookup(rname, NULL);
+
+	if(avu == NULL || avu->val.type!=SR_XTYPE_XAVP) {
+		return 0;
+	}
+	return xavu_rm_by_name(cname, &avu->val.v.xavp);
+}
+
 /**
  *
  */

+ 1 - 0
src/core/xavp.h

@@ -124,6 +124,7 @@ sr_xavp_t *xavu_get(str *name, sr_xavp_t *start);
 sr_xavp_t *xavu_lookup(str *name, sr_xavp_t **start);
 int xavu_rm(sr_xavp_t *xa, sr_xavp_t **head);
 int xavu_rm_by_name(str *name, sr_xavp_t **head);
+int xavu_rm_child_by_name(str *rname, str *cname);
 sr_xavp_t *xavu_set_xval(str *name, sr_xval_t *val, sr_xavp_t **list);
 sr_xavp_t *xavu_set_ival(str *rname, int ival);
 sr_xavp_t *xavu_set_sval(str *rname, str *sval);