Kaynağa Gözat

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 yıl önce
ebeveyn
işleme
c90ecffaea
1 değiştirilmiş dosya ile 10 ekleme ve 2 silme
  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;