Browse code

core: xavp - new helper function xavp_add_value_after()

Daniel-Constantin Mierla authored on 12/06/2018 08:14:26
Showing 2 changed files
... ...
@@ -195,6 +195,26 @@ sr_xavp_t *xavp_add_value(str *name, sr_xval_t *val, sr_xavp_t **list)
195 195
 	return avp;
196 196
 }
197 197
 
198
+sr_xavp_t *xavp_add_value_after(str *name, sr_xval_t *val, sr_xavp_t *pxavp)
199
+{
200
+	sr_xavp_t *avp=0;
201
+
202
+	avp = xavp_new_value(name, val);
203
+	if (avp==NULL)
204
+		return NULL;
205
+
206
+	/* link new xavp */
207
+	if(pxavp) {
208
+		avp->next = pxavp->next;
209
+		pxavp->next = avp;
210
+	} else {
211
+		avp->next = *_xavp_list_crt;
212
+		*_xavp_list_crt = avp;
213
+	}
214
+
215
+	return avp;
216
+}
217
+
198 218
 sr_xavp_t *xavp_add_xavp_value(str *rname, str *name, sr_xval_t *val, sr_xavp_t **list)
199 219
 {
200 220
 	sr_xavp_t *ravp=0;
... ...
@@ -78,6 +78,7 @@ int xavp_add(sr_xavp_t *xavp, sr_xavp_t **list);
78 78
 int xavp_add_last(sr_xavp_t *xavp, sr_xavp_t **list);
79 79
 int xavp_add_after(sr_xavp_t *nxavp, sr_xavp_t *pxavp);
80 80
 sr_xavp_t *xavp_add_value(str *name, sr_xval_t *val, sr_xavp_t **list);
81
+sr_xavp_t *xavp_add_value_after(str *name, sr_xval_t *val, sr_xavp_t *pxavp);
81 82
 sr_xavp_t *xavp_add_xavp_value(str *rname, str *name, sr_xval_t *val, sr_xavp_t **list);
82 83
 sr_xavp_t *xavp_set_value(str *name, int idx, sr_xval_t *val, sr_xavp_t **list);
83 84
 sr_xavp_t *xavp_get(str *name, sr_xavp_t *start);