diff options
author | Nanang Izzuddin <nanang@teluu.com> | 2016-10-24 07:20:36 +0000 |
---|---|---|
committer | Nanang Izzuddin <nanang@teluu.com> | 2016-10-24 07:20:36 +0000 |
commit | c8a93aba0c56500aa4324b36f39e6a3a5615f3a4 (patch) | |
tree | b3ebc048ec238d3793d1adb1294e3a3cf133c3ec | |
parent | 00aa5887abe1fcef80ed2528aaad9f265c599267 (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.c | 12 |
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)) { |