summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNanang Izzuddin <nanang@teluu.com>2016-10-24 07:20:36 +0000
committerNanang Izzuddin <nanang@teluu.com>2016-10-24 07:20:36 +0000
commitc8a93aba0c56500aa4324b36f39e6a3a5615f3a4 (patch)
treeb3ebc048ec238d3793d1adb1294e3a3cf133c3ec
parent00aa5887abe1fcef80ed2528aaad9f265c599267 (diff)
Re #1971: Updated TURN session to add REQUEST-ADDRESS-FAMILY/REQ-ADDR-TYPE attribute in Allocate of IPv6 relay request.
git-svn-id: http://svn.pjsip.org/repos/pjproject/trunk@5469 74dad513-b988-da41-8d7b-12977e46ad98
-rw-r--r--pjnath/src/pjnath/turn_session.c12
1 files changed, 9 insertions, 3 deletions
diff --git a/pjnath/src/pjnath/turn_session.c b/pjnath/src/pjnath/turn_session.c
index 8a530021..521bf978 100644
--- a/pjnath/src/pjnath/turn_session.c
+++ b/pjnath/src/pjnath/turn_session.c
@@ -770,6 +770,13 @@ PJ_DEF(pj_status_t) pj_turn_session_alloc(pj_turn_session *sess,
sess->alloc_param.lifetime);
}
+ /* Include ADDRESS-FAMILY for IPv6 request */
+ if (sess->af == pj_AF_INET6()) {
+ enum { IPV6_AF_TYPE = 0x02 << 24 };
+ pj_stun_msg_add_uint_attr(tdata->pool, tdata->msg,
+ PJ_STUN_ATTR_REQ_ADDR_TYPE, IPV6_AF_TYPE);
+ }
+
/* Server address must be set */
pj_assert(sess->srv_addr != NULL);
@@ -1353,9 +1360,8 @@ static void on_allocate_success(pj_turn_session *sess,
}
if (raddr_attr && raddr_attr->sockaddr.addr.sa_family != sess->af) {
on_session_fail(sess, method, PJNATH_EINSTUNMSG,
- pj_cstr(&s, "Error: RELAY-ADDRESS with non IPv4"
- " address family is not supported "
- "for now"));
+ pj_cstr(&s, "Error: Mismatched RELAY-ADDRESS "
+ "address family"));
return;
}
if (raddr_attr && !pj_sockaddr_has_addr(&raddr_attr->sockaddr)) {