TT#13003 pv: stop spamming with ERROR on uri transformations

* print config line on transformation errors

Change-Id: I5abce44869c5fc47ac9ba9fffa470aef909b692b
changes/45/12145/4
Victor Seva 8 years ago
parent 064a6f0186
commit cf5d9b74b0

@ -16,6 +16,7 @@ upstream/0018-usrloc-fix-ucontact-shared-leak.patch
upstream/0019-presence-remove-transaction-creation-from-publ_notif.patch
# upsream fixes from master
upstream/pv-new-function-pv_evalx-dst-fmt.patch
upstream/pv_trans_cfg_line.patch
#
##
no_lib64_on_64_bits.patch
@ -49,3 +50,4 @@ sipwise/sca-fix-sca_call_info_update-params.patch
sipwise/sca-use-onhold_bflag-value-only-when-set.patch
##
sipwise/tm-deep-cloning-of-the-request-for-fake-environment.patch
sipwise/pv_trans_eval_uri.patch

@ -0,0 +1,24 @@
From: Victor Seva <vseva@sipwise.com>
Date: Tue, 21 Mar 2017 17:28:04 +0100
Subject: pv: tr_eval_uri() set error message to debug
Change-Id: I26b29ae116a2aace78750c2559de8eb7121c6812
---
modules/pv/pv_trans.c | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/modules/pv/pv_trans.c b/modules/pv/pv_trans.c
index a10f698..c55c3be 100644
--- a/modules/pv/pv_trans.c
+++ b/modules/pv/pv_trans.c
@@ -1147,8 +1147,8 @@ int tr_eval_uri(struct sip_msg *msg, tr_param_t *tp, int subtype,
/* parse uri -- params only when requested */
if(parse_uri(_tr_uri.s, _tr_uri.len, &_tr_parsed_uri)!=0)
{
- LM_ERR("invalid uri [%.*s]\n", val->rs.len,
- val->rs.s);
+ LM_DBG("invalid uri [%.*s] (%s:%d)\n", val->rs.len,
+ val->rs.s, ZSW(get_cfg_crt_name()), get_cfg_crt_line());
if(_tr_uri_params != NULL)
{
free_params(_tr_uri_params);

@ -0,0 +1,274 @@
From: Daniel-Constantin Mierla <miconda@gmail.com>
Date: Mon, 13 Mar 2017 17:47:25 +0100
Subject: pv: attempt to print cfg line for string transformation errors
- 0 is printed when not a transformation in config
- requested by GH #1019
based on 8ce23dda673441541de836e71af9101d8b7894ea
Change-Id: Ib15aef0290f4c8043ff325e7f24841e75150427d
---
modules/pv/pv_trans.c | 76 +++++++++++++++++++++++++++++++++------------------
1 file changed, 50 insertions(+), 26 deletions(-)
diff --git a/modules/pv/pv_trans.c b/modules/pv/pv_trans.c
index 942803d..a10f698 100644
--- a/modules/pv/pv_trans.c
+++ b/modules/pv/pv_trans.c
@@ -38,6 +38,7 @@
#include "../../pvapi.h"
#include "../../dset.h"
#include "../../basex.h"
+#include "../../action.h"
#include "../../parser/parse_param.h"
#include "../../parser/parse_uri.h"
@@ -96,7 +97,7 @@ char *tr_set_crt_buffer(void)
#define tr_string_clone_result do { \
if(val->rs.len>TR_BUFFER_SIZE-1) { \
- LM_ERR("result is too big\n"); \
+ LM_ERR("result is too big (cfg line: %d)\n", get_cfg_crt_line()); \
return -1; \
} \
strncpy(_tr_buffer, val->rs.s, val->rs.len); \
@@ -517,7 +518,8 @@ int tr_eval_string(struct sip_msg *msg, tr_param_t *tp, int subtype,
case TR_S_SUBSTR:
if(tp==NULL || tp->next==NULL)
{
- LM_ERR("substr invalid parameters\n");
+ LM_ERR("substr invalid parameters (cfg line: %d)\n",
+ get_cfg_crt_line());
return -1;
}
if(!(val->flags&PV_VAL_STR))
@@ -529,7 +531,8 @@ int tr_eval_string(struct sip_msg *msg, tr_param_t *tp, int subtype,
if(pv_get_spec_value(msg, (pv_spec_p)tp->v.data, &v)!=0
|| (!(v.flags&PV_VAL_INT)))
{
- LM_ERR("substr cannot get p1\n");
+ LM_ERR("substr cannot get p1 (cfg line: %d)\n",
+ get_cfg_crt_line());
return -1;
}
i = v.ri;
@@ -541,7 +544,8 @@ int tr_eval_string(struct sip_msg *msg, tr_param_t *tp, int subtype,
if(pv_get_spec_value(msg, (pv_spec_p)tp->next->v.data, &v)!=0
|| (!(v.flags&PV_VAL_INT)))
{
- LM_ERR("substr cannot get p2\n");
+ LM_ERR("substr cannot get p2 (cfg line: %d)\n",
+ get_cfg_crt_line());
return -1;
}
j = v.ri;
@@ -549,7 +553,8 @@ int tr_eval_string(struct sip_msg *msg, tr_param_t *tp, int subtype,
LM_DBG("i=%d j=%d\n", i, j);
if(j<0)
{
- LM_ERR("substr negative offset\n");
+ LM_ERR("substr negative offset (cfg line: %d)\n",
+ get_cfg_crt_line());
return -1;
}
val->flags = PV_VAL_STR;
@@ -558,7 +563,8 @@ int tr_eval_string(struct sip_msg *msg, tr_param_t *tp, int subtype,
{
if(i>=val->rs.len)
{
- LM_ERR("substr out of range\n");
+ LM_ERR("substr out of range (cfg line: %d)\n",
+ get_cfg_crt_line());
return -1;
}
if(i+j>=val->rs.len) j=0;
@@ -576,7 +582,8 @@ int tr_eval_string(struct sip_msg *msg, tr_param_t *tp, int subtype,
i = -i;
if(i>val->rs.len)
{
- LM_ERR("substr out of range\n");
+ LM_ERR("substr out of range (cfg line: %d)\n",
+ get_cfg_crt_line());
return -1;
}
if(i<j) j=0;
@@ -595,7 +602,8 @@ int tr_eval_string(struct sip_msg *msg, tr_param_t *tp, int subtype,
case TR_S_SELECT:
if(tp==NULL || tp->next==NULL)
{
- LM_ERR("select invalid parameters\n");
+ LM_ERR("select invalid parameters (cfg line: %d)\n",
+ get_cfg_crt_line());
return -1;
}
if(!(val->flags&PV_VAL_STR))
@@ -607,7 +615,8 @@ int tr_eval_string(struct sip_msg *msg, tr_param_t *tp, int subtype,
if(pv_get_spec_value(msg, (pv_spec_p)tp->v.data, &v)!=0
|| (!(v.flags&PV_VAL_INT)))
{
- LM_ERR("select cannot get p1\n");
+ LM_ERR("select cannot get p1 (cfg line: %d)\n",
+ get_cfg_crt_line());
return -1;
}
i = v.ri;
@@ -705,7 +714,8 @@ int tr_eval_string(struct sip_msg *msg, tr_param_t *tp, int subtype,
case TR_S_STRIPTAIL:
if(tp==NULL)
{
- LM_ERR("strip invalid parameters\n");
+ LM_ERR("strip invalid parameters (cfg line: %d)\n",
+ get_cfg_crt_line());
return -1;
}
if(!(val->flags&PV_VAL_STR))
@@ -717,7 +727,8 @@ int tr_eval_string(struct sip_msg *msg, tr_param_t *tp, int subtype,
if(pv_get_spec_value(msg, (pv_spec_p)tp->v.data, &v)!=0
|| (!(v.flags&PV_VAL_INT)))
{
- LM_ERR("select cannot get p1\n");
+ LM_ERR("select cannot get p1 (cfg line: %d)\n",
+ get_cfg_crt_line());
return -1;
}
i = v.ri;
@@ -743,7 +754,8 @@ int tr_eval_string(struct sip_msg *msg, tr_param_t *tp, int subtype,
case TR_S_STRIPTO:
if(tp==NULL)
{
- LM_ERR("stripto invalid parameters\n");
+ LM_ERR("stripto invalid parameters (cfg line: %d)\n",
+ get_cfg_crt_line());
return -1;
}
if(!(val->flags&PV_VAL_STR))
@@ -756,7 +768,8 @@ int tr_eval_string(struct sip_msg *msg, tr_param_t *tp, int subtype,
if(pv_get_spec_value(msg, (pv_spec_p)tp->v.data, &v)!=0
|| (!(v.flags&PV_VAL_STR)) || v.rs.len<=0)
{
- LM_ERR("stripto cannot get p1\n");
+ LM_ERR("stripto cannot get p1 (cfg line: %d)\n",
+ get_cfg_crt_line());
return -1;
}
st = v.rs;
@@ -796,7 +809,8 @@ int tr_eval_string(struct sip_msg *msg, tr_param_t *tp, int subtype,
if(pv_get_spec_value(msg, (pv_spec_p)tp->v.data, &v)!=0
|| (!(v.flags&PV_VAL_INT)))
{
- LM_ERR("prefixes cannot get max\n");
+ LM_ERR("prefixes cannot get max (cfg line: %d)\n",
+ get_cfg_crt_line());
return -1;
}
if (v.ri > 0 && v.ri < max)
@@ -805,7 +819,8 @@ int tr_eval_string(struct sip_msg *msg, tr_param_t *tp, int subtype,
}
if(max * (max/2 + (subtype==TR_S_PREFIXES_QUOT ? 1 : 3)) > TR_BUFFER_SIZE-1) {
- LM_ERR("prefixes buffer too short\n");
+ LM_ERR("prefixes buffer too short (cfg line: %d)\n",
+ get_cfg_crt_line());
return -1;
}
@@ -829,7 +844,8 @@ int tr_eval_string(struct sip_msg *msg, tr_param_t *tp, int subtype,
case TR_S_REPLACE:
if(tp==NULL || tp->next==NULL)
{
- LM_ERR("select invalid parameters\n");
+ LM_ERR("select invalid parameters (cfg line: %d)\n",
+ get_cfg_crt_line());
return -1;
}
if(!(val->flags&PV_VAL_STR))
@@ -842,7 +858,8 @@ int tr_eval_string(struct sip_msg *msg, tr_param_t *tp, int subtype,
if(pv_get_spec_value(msg, (pv_spec_p)tp->v.data, &v)!=0
|| (!(v.flags&PV_VAL_STR)) || v.rs.len<=0)
{
- LM_ERR("replace cannot get p1\n");
+ LM_ERR("replace cannot get p1 (cfg line: %d)\n",
+ get_cfg_crt_line());
return -1;
}
st = v.rs;
@@ -855,7 +872,8 @@ int tr_eval_string(struct sip_msg *msg, tr_param_t *tp, int subtype,
if(pv_get_spec_value(msg, (pv_spec_p)tp->next->v.data, &w)!=0
|| (!(w.flags&PV_VAL_STR)) || w.rs.len<=0)
{
- LM_ERR("replace cannot get p2\n");
+ LM_ERR("replace cannot get p2 (cfg line: %d)\n",
+ get_cfg_crt_line());
return -1;
}
st2 = w.rs;
@@ -884,13 +902,15 @@ int tr_eval_string(struct sip_msg *msg, tr_param_t *tp, int subtype,
case TR_S_TIMEFORMAT:
if(tp==NULL)
{
- LM_ERR("timeformat invalid parameters\n");
+ LM_ERR("timeformat invalid parameters (cfg line: %d)\n",
+ get_cfg_crt_line());
return -1;
}
if(!(val->flags&PV_VAL_INT) && (str2int(&val->rs,
(unsigned int*) &val->ri)!=0))
{
- LM_ERR("value is not numeric\n");
+ LM_ERR("value is not numeric (cfg line: %d)\n",
+ get_cfg_crt_line());
return -1;
}
if(tp->type==TR_PARAM_STRING)
@@ -900,7 +920,8 @@ int tr_eval_string(struct sip_msg *msg, tr_param_t *tp, int subtype,
if(pv_get_spec_value(msg, (pv_spec_p)tp->v.data, &v)!=0
|| (!(v.flags&PV_VAL_STR)) || v.rs.len<=0)
{
- LM_ERR("timeformat cannot get p1\n");
+ LM_ERR("timeformat cannot get p1 (cfg line: %d)\n",
+ get_cfg_crt_line());
return -1;
}
st = v.rs;
@@ -908,7 +929,8 @@ int tr_eval_string(struct sip_msg *msg, tr_param_t *tp, int subtype,
s = pkg_malloc(st.len + 1);
if (s==NULL)
{
- LM_ERR("no more pkg memory\n");
+ LM_ERR("no more pkg memory (cfg line: %d)\n",
+ get_cfg_crt_line());
return -1;
}
memcpy(s, st.s, st.len);
@@ -960,7 +982,8 @@ int tr_eval_string(struct sip_msg *msg, tr_param_t *tp, int subtype,
case TR_S_RM:
if(tp==NULL)
{
- LM_ERR("invalid parameters\n");
+ LM_ERR("invalid parameters (cfg line: %d)\n",
+ get_cfg_crt_line());
return -1;
}
if(!(val->flags&PV_VAL_STR))
@@ -1008,7 +1031,8 @@ int tr_eval_string(struct sip_msg *msg, tr_param_t *tp, int subtype,
if(pv_get_spec_value(msg, (pv_spec_p)tp->v.data, &v)!=0
|| (!(v.flags&PV_VAL_STR)) || v.rs.len<=0)
{
- LM_ERR("cannot get parameter value\n");
+ LM_ERR("cannot get parameter value (cfg line: %d)\n",
+ get_cfg_crt_line());
return -1;
}
st = v.rs;
@@ -1063,8 +1087,8 @@ int tr_eval_string(struct sip_msg *msg, tr_param_t *tp, int subtype,
break;
default:
- LM_ERR("unknown subtype %d\n",
- subtype);
+ LM_ERR("unknown subtype %d (cfg line: %d)\n",
+ subtype, get_cfg_crt_line());
return -1;
}
return 0;
Loading…
Cancel
Save