Browse Source

pv: Fixed assigning $null to $vn(name) pvs

Pass NULL as value to set_var_value when assigning a NULL or
PV_VAL_NULL value to a pv with the VAR_TYPE_NULL flag set.
Jon Bergli Heier 10 years ago
parent
commit
d29930e2af
1 changed files with 7 additions and 2 deletions
  1. 7 2
      modules/pv/pv_core.c

+ 7 - 2
modules/pv/pv_core.c

@@ -1968,8 +1968,13 @@ int pv_set_scriptvar(struct sip_msg* msg, pv_param_t *param,
 	}
 	if((val==NULL) || (val->flags&PV_VAL_NULL))
 	{
-		avp_val.n = 0;
-		set_var_value((script_var_t*)param->pvn.u.dname, &avp_val, 0);
+		if(((script_var_t*)param->pvn.u.dname)->v.flags&VAR_TYPE_NULL)
+		{
+			set_var_value((script_var_t*)param->pvn.u.dname, NULL, 0);
+		} else {
+			avp_val.n = 0;
+			set_var_value((script_var_t*)param->pvn.u.dname, &avp_val, 0);
+		}
 		return 0;
 	}
 	flags = 0;