浏览代码

core: fixed xavp level cloning function

- new function introduced recently for usrloc usage
Daniel-Constantin Mierla 12 年之前
父节点
当前提交
88dd1f3048
共有 1 个文件被更改,包括 6 次插入1 次删除
  1. 6 1
      xavp.c

+ 6 - 1
xavp.c

@@ -549,7 +549,9 @@ sr_xavp_t *xavp_clone_level_nodata(sr_xavp_t *xold)
 	sr_xavp_t *pavp = NULL;
 	sr_xavp_t *pavp = NULL;
 
 
 	if(xold == NULL)
 	if(xold == NULL)
+	{
 		return NULL;
 		return NULL;
+	}
 	if(xold->val.type==SR_XTYPE_DATA)
 	if(xold->val.type==SR_XTYPE_DATA)
 	{
 	{
 		LM_INFO("xavp value type is 'data' - ignoring in clone\n");
 		LM_INFO("xavp value type is 'data' - ignoring in clone\n");
@@ -563,18 +565,21 @@ sr_xavp_t *xavp_clone_level_nodata(sr_xavp_t *xold)
 	}
 	}
 
 
 	if(xold->val.type!=SR_XTYPE_XAVP)
 	if(xold->val.type!=SR_XTYPE_XAVP)
+	{
 		return xnew;
 		return xnew;
+	}
 
 
 	xnew->val.v.xavp = NULL;
 	xnew->val.v.xavp = NULL;
 	oavp = xold->val.v.xavp;
 	oavp = xold->val.v.xavp;
 
 
 	while(oavp)
 	while(oavp)
 	{
 	{
-		if(xold->val.type!=SR_XTYPE_DATA && xold->val.type!=SR_XTYPE_XAVP)
+		if(oavp->val.type!=SR_XTYPE_DATA && oavp->val.type!=SR_XTYPE_XAVP)
 		{
 		{
 			navp =  xavp_new_value(&oavp->name, &oavp->val);
 			navp =  xavp_new_value(&oavp->name, &oavp->val);
 			if(navp==NULL)
 			if(navp==NULL)
 			{
 			{
+				LM_ERR("cannot create cloned embedded xavp\n");
 				if(xnew->val.v.xavp == NULL)
 				if(xnew->val.v.xavp == NULL)
 				{
 				{
 					shm_free(xnew);
 					shm_free(xnew);