Hello,
This patch adds support to a new tag called NTATAG_TLS_RPORT.
You can use it the same way you use NTATAG_TCP_RPORT to activate
client side rport use in the Via header.
Fabio Ferrari
Index: libsofia-sip-ua/nta/sofia-sip/nta_tag.h
===================================================================
--- libsofia-sip-ua/nta/sofia-sip/nta_tag.h (revisão 1)
+++ libsofia-sip-ua/nta/sofia-sip/nta_tag.h (cópia de trabalho)
@@ -369,6 +369,12 @@
NTA_DLL extern tag_typedef_t ntatag_tcp_rport_ref;
#define NTATAG_TCP_RPORT_REF(x) ntatag_tcp_rport_ref, tag_bool_vr(&(x))
+NTA_DLL extern tag_typedef_t ntatag_tls_rport;
+#define NTATAG_TLS_RPORT(x) ntatag_tls_rport, tag_bool_v((x))
+
+NTA_DLL extern tag_typedef_t ntatag_tls_rport_ref;
+#define NTATAG_TLS_RPORT_REF(x) ntatag_tls_rport_ref, tag_bool_vr(&(x))
+
NTA_DLL extern tag_typedef_t ntatag_preload;
#define NTATAG_PRELOAD(x) ntatag_preload, tag_uint_v((x))
Index: libsofia-sip-ua/nta/nta_tag_ref.c
===================================================================
--- libsofia-sip-ua/nta/nta_tag_ref.c (revisão 1)
+++ libsofia-sip-ua/nta/nta_tag_ref.c (cópia de trabalho)
@@ -176,6 +176,9 @@
extern tag_typedef_t ntatag_tcp_rport;
EXPORT tag_typedef_t ntatag_tcp_rport_ref =
REFTAG_TYPEDEF(ntatag_tcp_rport);
+extern tag_typedef_t ntatag_tls_rport;
+EXPORT tag_typedef_t ntatag_tls_rport_ref =
+ REFTAG_TYPEDEF(ntatag_tls_rport);
extern tag_typedef_t ntatag_preload;
EXPORT tag_typedef_t ntatag_preload_ref =
REFTAG_TYPEDEF(ntatag_preload);
@@ -313,6 +316,7 @@
ntatag_s_trless_to_tr,
ntatag_s_server_tr,
ntatag_s_bad_message,
+ ntatag_tls_rport,
ntatag_sigcomp_algorithm,
ntatag_s_tout_request,
ntatag_sip_t1,
Index: libsofia-sip-ua/nta/nta_tag.c
===================================================================
--- libsofia-sip-ua/nta/nta_tag.c (revisão 1)
+++ libsofia-sip-ua/nta/nta_tag.c (cópia de trabalho)
@@ -1298,7 +1298,7 @@
*
* @note The NTATAG_RPORT() is a synonym for this.
*
- * @sa @RFC3581, NTATAG_SERVER_RPORT(), NTATAG_TCP_RPORT(), @Via
+ * @sa @RFC3581, NTATAG_SERVER_RPORT(), NTATAG_TCP_RPORT(), NTATAG_TLS_RPORT(), @Via
*/
tag_typedef_t ntatag_client_rport = BOOLTAG_TYPEDEF(client_rport);
@@ -1332,7 +1332,7 @@
* - true - use "rport" parameter (default)
* - false - do not use "rport" parameterx
*
- * @sa @RFC3581, NTATAG_CLIENT_RPORT(), NTATAG_TCP_RPORT(), @Via
+ * @sa @RFC3581, NTATAG_CLIENT_RPORT(), NTATAG_TCP_RPORT(), NTATAG_TLS_RPORT(), @Via
*/
tag_typedef_t ntatag_server_rport = UINTTAG_TYPEDEF(server_rport);
@@ -1357,6 +1357,26 @@
*/
tag_typedef_t ntatag_tcp_rport = BOOLTAG_TYPEDEF(tcp_rport);
+/[EMAIL PROTECTED] NTATAG_TLS_RPORT(x)
+ *
+ * Use rport with TLS, too.
+ *
+ * @par Used with
+ * nua_create(), nua_set_params(),
+ * nta_agent_create(), nta_agent_set_params()
+ *
+ * @par Parameter type
+ * boolean: true (non-zero or non-NULL pointer)
+ * or false (zero or NULL pointer)
+ *
+ * @par Values
+ * - true - include rport parameter in the TLS via line on client side
+ * - false - do not include rport parameter in the TLS via line on client side
+ *
+ * @sa @RFC3581, NTATAG_CLIENT_RPORT(), NTATAG_SERVER_RPORT(), @Via
+ */
+tag_typedef_t ntatag_tls_rport = BOOLTAG_TYPEDEF(tls_rport);
+
/[EMAIL PROTECTED] NTATAG_PRELOAD(x)
*
* Preload by N bytes.
Index: libsofia-sip-ua/nta/nta.c
===================================================================
--- libsofia-sip-ua/nta/nta.c (revisão 1)
+++ libsofia-sip-ua/nta/nta.c (cópia de trabalho)
@@ -351,6 +351,7 @@
* NTATAG_SIP_T1X64(), NTATAG_SIP_T1(), NTATAG_SIP_T2(), NTATAG_SIP_T4(),
* NTATAG_STATELESS(),
* NTATAG_TAG_3261(), NTATAG_TCP_RPORT(), NTATAG_TIMEOUT_408(),
+ * NTATAG_TLS_RPORT(),
* NTATAG_TIMER_C(), NTATAG_MAX_PROCEEDING(),
* NTATAG_UA(), NTATAG_UDP_MTU(), NTATAG_USER_VIA(),
* NTATAG_USE_NAPTR(), NTATAG_USE_SRV() and NTATAG_USE_TIMESTAMP().
@@ -925,6 +926,7 @@
* NTATAG_SIP_T1X64(), NTATAG_SIP_T1(), NTATAG_SIP_T2(), NTATAG_SIP_T4(),
* NTATAG_STATELESS(),
* NTATAG_TAG_3261(), NTATAG_TCP_RPORT(), NTATAG_TIMEOUT_408(),
+ * NTATAG_TLS_RPORT(),
* NTATAG_TIMER_C(), NTATAG_MAX_PROCEEDING(),
* NTATAG_UA(), NTATAG_UDP_MTU(), NTATAG_USER_VIA(),
* NTATAG_USE_NAPTR(), NTATAG_USE_SRV() and NTATAG_USE_TIMESTAMP().
@@ -989,6 +991,7 @@
int rport = agent->sa_rport;
unsigned server_rport = agent->sa_server_rport;
int tcp_rport = agent->sa_tcp_rport;
+ int tls_rport = agent->sa_tls_rport;
unsigned preload = agent->sa_preload;
unsigned threadpool = agent->sa_tport_threadpool;
char const *sigcomp = agent->sa_sigcomp_options;
@@ -1035,6 +1038,7 @@
#endif
NTATAG_STATELESS_REF(stateless),
NTATAG_TCP_RPORT_REF(tcp_rport),
+ NTATAG_TLS_RPORT_REF(tls_rport),
NTATAG_TIMEOUT_408_REF(timeout_408),
NTATAG_UA_REF(ua),
NTATAG_UDP_MTU_REF(udp_mtu),
@@ -1202,6 +1206,7 @@
agent->sa_flags = flags & MSG_FLG_USERMASK;
agent->sa_rport = rport != 0;
agent->sa_tcp_rport = tcp_rport != 0;
+ agent->sa_tls_rport = tls_rport != 0;
agent->sa_preload = preload;
agent->sa_tport_threadpool = threadpool;
@@ -2052,7 +2057,8 @@
if (!v->v_rport &&
((self->sa_rport && v->v_protocol == sip_transport_udp) ||
- (self->sa_tcp_rport && v->v_protocol == sip_transport_tcp)))
+ (self->sa_tcp_rport && v->v_protocol == sip_transport_tcp) ||
+ (self->sa_tls_rport && v->v_protocol == sip_transport_tls)))
msg_header_add_param(msg_home(msg), v->v_common, "rport");
if (!orq->orq_tpn->tpn_comp)
Index: libsofia-sip-ua/nta/nta_internal.h
===================================================================
--- libsofia-sip-ua/nta/nta_internal.h (revisão 1)
+++ libsofia-sip-ua/nta/nta_internal.h (cópia de trabalho)
@@ -229,6 +229,8 @@
unsigned sa_server_rport:2;
/** If true, use rport with tcp, too */
unsigned sa_tcp_rport:1;
+ /** If true, use rport with tls, too */
+ unsigned sa_tls_rport:1;
/** If true, automatically create compartments */
unsigned sa_auto_comp:1;
-------------------------------------------------------------------------
This SF.Net email is sponsored by the Moblin Your Move Developer's challenge
Build the coolest Linux based applications with Moblin SDK & win great prizes
Grand prize is a trip for two to an Open Source event anywhere in the world
http://moblin-contest.org/redirect.php?banner_id=100&url=/
_______________________________________________
Sofia-sip-devel mailing list
Sofia-sip-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/sofia-sip-devel