Skip to content
Snippets Groups Projects
Commit 7e42bf1e authored by Guillaume Roguez's avatar Guillaume Roguez Committed by gerrit2
Browse files

contrib: fix IPv6 support in PJSIP ioqueue sendto.


PJSIP pj_ioqueue_sendto() fails in exception if addr argument
is an IPv6 address and if there is a pending write.
This is due to an PJ_ASSERT_RETURN() check not ported for IPv6.

This patch adds this support to the check and change
the internal write_operation structure to support generic IP addresses.

Change-Id: I966ef74c807995149d1db367188610374650dac0
Reviewed-by: default avatarStepan Salenikovich <stepan.salenikovich@savoirfairelinux.com>
parent 821d3391
No related branches found
No related tags found
No related merge requests found
--- a/pjlib/src/pj/ioqueue_common_abs.c 2015-11-05 23:18:46.000000000 -0500
+++ b/pjlib/src/pj/ioqueue_common_abs.c 2016-10-21 13:49:09.183662433 -0400
@@ -1048,5 +1048,6 @@
* Check that address storage can hold the address parameter.
*/
- PJ_ASSERT_RETURN(addrlen <= (int)sizeof(pj_sockaddr_in), PJ_EBUG);
+ PJ_ASSERT_RETURN((((pj_sockaddr*)addr)->addr.sa_family == pj_AF_INET() && addrlen <= (int)sizeof(pj_sockaddr_in)) ||
+ (((pj_sockaddr*)addr)->addr.sa_family == pj_AF_INET6() && addrlen <= (int)sizeof(pj_sockaddr_in6)), PJ_EBUG);
/*
--- a/pjlib/src/pj/ioqueue_common_abs.h 2013-02-21 06:18:36.000000000 -0500
+++ b/pjlib/src/pj/ioqueue_common_abs.h 2016-10-21 14:04:04.148928591 -0400
@@ -64,5 +64,5 @@
pj_ssize_t written;
unsigned flags;
- pj_sockaddr_in rmt_addr;
+ pj_sockaddr rmt_addr;
int rmt_addrlen;
};
......@@ -76,6 +76,7 @@ endif
$(APPLY) $(SRC)/pjproject/multiple_listeners.patch
$(APPLY) $(SRC)/pjproject/pj_ice_sess.patch
$(APPLY) $(SRC)/pjproject/fix_turn_fallback.patch
$(APPLY) $(SRC)/pjproject/fix_ioqueue_ipv6_sendto.patch
$(UPDATE_AUTOCONFIG)
$(MOVE)
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment