diff --git a/engine/NamedList.cpp b/engine/NamedList.cpp index b4263cd6..3571184f 100644 --- a/engine/NamedList.cpp +++ b/engine/NamedList.cpp @@ -126,10 +126,21 @@ NamedList& NamedList::copyParam(const NamedList& original, const String& name, c return *this; } +NamedList& NamedList::copyParams(const NamedList& original) +{ + XDebug(DebugInfo,"NamedList::copyParams(%p) [%p]",&original,this); + for (unsigned int i = 0; i < original.length(); i++) { + const NamedString* p = original.getParam(i); + if (p) + setParam(p->name(),*p); + } + return *this; +} + NamedList& NamedList::copyParams(const NamedList& original, ObjList* list, char childSep) { - XDebug(DebugInfo,"NamedList::copyParams(%p,%p,'%1s')", - &original,list,&childSep); + XDebug(DebugInfo,"NamedList::copyParams(%p,%p,'%1s') [%p]", + &original,list,&childSep,this); for (; list; list = list->next()) { GenObject* obj = list->get(); if (!obj) @@ -144,8 +155,8 @@ NamedList& NamedList::copyParams(const NamedList& original, ObjList* list, char NamedList& NamedList::copyParams(const NamedList& original, const String& list, char childSep) { - XDebug(DebugInfo,"NamedList::copyParams(%p,\"%s\",'%1s')", - &original,list.c_str(),&childSep); + XDebug(DebugInfo,"NamedList::copyParams(%p,\"%s\",'%1s') [%p]", + &original,list.c_str(),&childSep,this); ObjList* l = list.split(',',false); if (l) { copyParams(original,l,childSep); diff --git a/yateclass.h b/yateclass.h index 597d8109..f7fe4779 100644 --- a/yateclass.h +++ b/yateclass.h @@ -3073,6 +3073,12 @@ public: */ NamedList& copyParam(const NamedList& original, const String& name, char childSep = 0); + /** + * Copy all parameters from another NamedList, does not clear list first + * @param original NamedList to copy the parameters from + */ + NamedList& copyParams(const NamedList& original); + /** * Copy multiple parameters from another NamedList, clears them if not present there * @param original NamedList to copy the parameters from