/* applies the extras for which type to what avpl */ static void apply_extras(AVPL* from, AVPL* to, AVPL* extras) { AVPL* our_extras = new_avpl_loose_match("",from, extras, FALSE) ; if (our_extras) { merge_avpl(to,our_extras,TRUE); delete_avpl(our_extras,FALSE); } }
extern AVPL* new_avpl_from_match(avpl_match_mode mode, const gchar* name,AVPL* src, AVPL* op, gboolean copy_avps) { AVPL* avpl = NULL; switch (mode) { case AVPL_STRICT: avpl = new_avpl_exact_match(name,src,op,copy_avps); break; case AVPL_LOOSE: avpl = new_avpl_loose_match(name,src,op,copy_avps); break; case AVPL_EVERY: avpl = new_avpl_every_match(name,src,op,copy_avps); break; case AVPL_NO_MATCH: avpl = new_avpl_from_avpl(name,src,copy_avps); merge_avpl(avpl, op, copy_avps); break; } return avpl; }