فهرست منبع

tsilo: removed check of use_domain for uri parameter in ts_store()

- ts_append() is using full sip uri and will not match if ts_store()
  with use_domain=0 will store only username
Daniel-Constantin Mierla 10 سال پیش
والد
کامیت
cffe67566f
2فایلهای تغییر یافته به همراه23 افزوده شده و 13 حذف شده
  1. 7 12
      modules/tsilo/ts_store.c
  2. 16 1
      modules/tsilo/tsilo.c

+ 7 - 12
modules/tsilo/ts_store.c

@@ -60,19 +60,14 @@ int ts_store(struct sip_msg* msg, str *puri) {
 		}
 	}
 
-	if (use_domain) {
-		aor = suri;
-	}
-	else {
-		if (parse_uri(suri.s, suri.len, &ruri)!=0)
-		{
-			LM_ERR("bad uri [%.*s]\n",
-					suri.len,
-					suri.s);
-			return -1;
-		}
-		aor = ruri.user;
+	if (parse_uri(suri.s, suri.len, &ruri)!=0)
+	{
+		LM_ERR("bad uri [%.*s]\n",
+				suri.len,
+				suri.s);
+		return -1;
 	}
+	aor = suri;
 
 	t = _tmb.t_gett();
 	if (!t || t==T_UNDEFINED) {

+ 16 - 1
modules/tsilo/tsilo.c

@@ -212,10 +212,21 @@ static void destroy(void)
 	return;
 }
 
+static int ts_check_uri(str *uri)
+{
+	struct sip_uri ruri;
+	if (parse_uri(uri->s, uri->len, &ruri)!=0)
+	{
+		LM_ERR("bad uri [%.*s]\n",
+				uri->len,
+				uri->s);
+		return -1;
+	}
+	return 0;
+}
 /**
  *
  */
-
 static int fixup_ts_append_to(void** param, int param_no)
 {
 	if (param_no==1 || param_no==2) {
@@ -263,6 +274,8 @@ static int w_ts_append(struct sip_msg* _msg, char *_table, char *_ruri)
 		LM_ERR("invalid ruri parameter\n");
 		return -1;
 	}
+	if(ts_check_uri(&ruri)<0)
+		return -1;
 	return ts_append(_msg, &ruri, _table);
 }
 /**
@@ -309,6 +322,8 @@ static int w_ts_append_to2(struct sip_msg* msg, char *idx, char *lbl, char *tabl
 		LM_ERR("failed to conert r-uri parameter\n");
 		return -1;
 	}
+	if(ts_check_uri(&suri)<0)
+		return -1;
 
 	return ts_append_to(msg, tindex, tlabel, table, &suri);
 }