Browse Source

pv: completed $snd() pv with buf and len

- missing parts of available info about message to be sent
Daniel-Constantin Mierla 15 years ago
parent
commit
aedb1ee1f3
1 changed files with 15 additions and 0 deletions
  1. 15 0
      modules_k/pv/pv_branch.c

+ 15 - 0
modules_k/pv/pv_branch.c

@@ -146,6 +146,7 @@ int pv_get_snd(struct sip_msg *msg, pv_param_t *param,
 		pv_value_t *res)
 		pv_value_t *res)
 {
 {
 	struct onsend_info* snd_inf;
 	struct onsend_info* snd_inf;
+	str s;
 
 
 	snd_inf=get_onsend_info();
 	snd_inf=get_onsend_info();
 	if (! likely(snd_inf && snd_inf->send_sock))
 	if (! likely(snd_inf && snd_inf->send_sock))
@@ -162,6 +163,13 @@ int pv_get_snd(struct sip_msg *msg, pv_param_t *param,
 		case 3: /* proto */
 		case 3: /* proto */
 			return pv_get_uintval(msg, param, res,
 			return pv_get_uintval(msg, param, res,
 					(int)snd_inf->send_sock->proto);
 					(int)snd_inf->send_sock->proto);
+		case 4: /* buf */
+			s.s   = snd_inf->buf;
+			s.len = snd_inf->len;
+			return pv_get_strval(msg, param, res, &s);
+		case 5: /* len */
+			return pv_get_uintval(msg, param, res,
+					(int)snd_inf->len);
 		default:
 		default:
 			/* 0 - ip */
 			/* 0 - ip */
 			return pv_get_strval(msg, param, res,
 			return pv_get_strval(msg, param, res,
@@ -185,6 +193,13 @@ int pv_parse_snd_name(pv_spec_p sp, str *in)
 				sp->pvp.pvn.u.isname.name.n = 1;
 				sp->pvp.pvn.u.isname.name.n = 1;
 			else goto error;
 			else goto error;
 		break;
 		break;
+		case 3:
+			if(strncmp(in->s, "buf", 3)==0)
+				sp->pvp.pvn.u.isname.name.n = 4;
+			else if(strncmp(in->s, "len", 3)==0)
+				sp->pvp.pvn.u.isname.name.n = 5;
+			else goto error;
+		break;
 		case 4:
 		case 4:
 			if(strncmp(in->s, "port", 4)==0)
 			if(strncmp(in->s, "port", 4)==0)
 				sp->pvp.pvn.u.isname.name.n = 2;
 				sp->pvp.pvn.u.isname.name.n = 2;