Преглед изворни кода

modules/carrierroute In case of incorrect avp value (unknown carrier id), print the name of the avp accordinly to its type
(cherry picked from commit 5604e51eb8fd6502495a37c26f9c549bcd63ca8a)

Marius Zbihlei пре 15 година
родитељ
комит
c90ecffaea
1 измењених фајлова са 10 додато и 2 уклоњено
  1. 10 2
      modules/carrierroute/cr_func.c

+ 10 - 2
modules/carrierroute/cr_func.c

@@ -89,8 +89,12 @@ static inline int cr_gp2id(struct sip_msg *_msg, gparam_t *gp, struct name_map_t
 			avp = search_first_avp(gp->v.pve->spec.pvp.pvn.u.isname.type,
 						gp->v.pve->spec.pvp.pvn.u.isname.name, &avp_val, 0);
 			if (!avp) {
-				LM_ERR("cannot find AVP '%.*s'\n", gp->v.pve->spec.pvp.pvn.u.isname.name.s.len,
+				if(gp->v.pve->spec.pvp.pvn.u.isname.type & AVP_NAME_STR)
+					LM_ERR("cannot find AVP '%.*s'\n", gp->v.pve->spec.pvp.pvn.u.isname.name.s.len,
 						gp->v.pve->spec.pvp.pvn.u.isname.name.s.s);
+				else if(gp->v.pve->spec.pvp.pvn.u.isname.type & AVP_NAME_RE)
+					LM_ERR("cannot find AVP regex\n");
+				else 	LM_ERR("cannot find AVP '%d'\n", gp->v.pve->spec.pvp.pvn.u.isname.name.n);
 				return -1;
 			}
 			if ((avp->flags&AVP_VAL_STR)==0) {
@@ -98,9 +102,13 @@ static inline int cr_gp2id(struct sip_msg *_msg, gparam_t *gp, struct name_map_t
 			} else {
 				id = map_name2id(map, size, &avp_val.s);
 				if (id < 0) {
-					LM_ERR("could not find id '%.*s' from AVP\n",
+					if(gp->v.pve->spec.pvp.pvn.u.isname.type & AVP_NAME_STR)
+						LM_ERR("could not find id '%.*s' from AVP\n",
 							gp->v.pve->spec.pvp.pvn.u.isname.name.s.len,
 							gp->v.pve->spec.pvp.pvn.u.isname.name.s.s);
+					else if(gp->v.pve->spec.pvp.pvn.u.isname.type & AVP_NAME_RE)
+						LM_ERR("could not find id regex\n");
+					else 	LM_ERR("could not find id '%d'\n", gp->v.pve->spec.pvp.pvn.u.isname.name.n);
 					return -1;
 				}
 				return id;