ソースを参照

pv: new variable $Rn - return receiving socket name

Daniel-Constantin Mierla 4 年 前
コミット
efe36cf0ba
3 ファイル変更19 行追加0 行削除
  1. 3 0
      src/modules/pv/pv.c
  2. 13 0
      src/modules/pv/pv_core.c
  3. 3 0
      src/modules/pv/pv_core.h

+ 3 - 0
src/modules/pv/pv.c

@@ -410,6 +410,9 @@ static pv_export_t mod_pvs[] = {
 	{{"Rut", (sizeof("Rut")-1)}, /* */
 		PVT_OTHER, pv_get_rcvaddr_uri_full, 0,
 		0, 0, 0, 0},
+	{{"Rn", (sizeof("Rn")-1)}, /* */
+		PVT_OTHER, pv_get_rcvsname, 0,
+		0, 0, 0, 0},
 	{{"RAi", (sizeof("RAi")-1)}, /* */
 		PVT_OTHER, pv_get_rcv_advertised_ip, 0,
 		0, 0, 0, 0},

+ 13 - 0
src/modules/pv/pv_core.c

@@ -858,6 +858,19 @@ int pv_get_rcvport(struct sip_msg *msg, pv_param_t *param,
 			&msg->rcv.bind_address->port_no_str);
 }
 
+int pv_get_rcvsname(struct sip_msg *msg, pv_param_t *param,
+		pv_value_t *res)
+{
+	if(msg==NULL)
+		return -1;
+
+	if(msg->rcv.bind_address==NULL
+			|| msg->rcv.bind_address->sockname.s==NULL)
+		return pv_get_null(msg, param, res);
+
+	return pv_get_strval(msg, param, res, &msg->rcv.bind_address->sockname);
+}
+
 int pv_get_rcvaddr_uri_helper(struct sip_msg *msg, pv_param_t *param,
 		int tmode, pv_value_t *res)
 {

+ 3 - 0
src/modules/pv/pv_core.h

@@ -163,6 +163,9 @@ int pv_get_rcvaddr_uri(struct sip_msg *msg, pv_param_t *param,
 int pv_get_rcvaddr_uri_full(struct sip_msg *msg, pv_param_t *param,
 		pv_value_t *res);
 
+int pv_get_rcvsname(struct sip_msg *msg, pv_param_t *param,
+		pv_value_t *res);
+
 int pv_get_rcv_advertised_ip(struct sip_msg *msg, pv_param_t *param,
 		pv_value_t *res);