summaryrefslogtreecommitdiff
path: root/pjlib/src/pj
diff options
context:
space:
mode:
Diffstat (limited to 'pjlib/src/pj')
-rw-r--r--pjlib/src/pj/ip_helper_win32.c11
1 files changed, 8 insertions, 3 deletions
diff --git a/pjlib/src/pj/ip_helper_win32.c b/pjlib/src/pj/ip_helper_win32.c
index 8603a588..5ff55a2d 100644
--- a/pjlib/src/pj/ip_helper_win32.c
+++ b/pjlib/src/pj/ip_helper_win32.c
@@ -275,11 +275,16 @@ static pj_status_t enum_ipv4_ipv6_interface(int af,
if (rc != ERROR_SUCCESS)
return PJ_RETURN_OS_ERROR(rc);
- for (i=0; i<*p_cnt && adapter; ++i, adapter = adapter->Next) {
+ for (i=0; i<*p_cnt && adapter; adapter = adapter->Next) {
if (adapter->FirstUnicastAddress) {
SOCKET_ADDRESS *pAddr = &adapter->FirstUnicastAddress->Address;
- ifs[i].addr.sa_family = pAddr->lpSockaddr->sa_family;
- pj_memcpy(&ifs[i], pAddr->lpSockaddr, pAddr->iSockaddrLength);
+ if (pAddr->lpSockaddr->sa_family == PJ_AF_INET ||
+ pAddr->lpSockaddr->sa_family == PJ_AF_INET6)
+ {
+ ifs[i].addr.sa_family = pAddr->lpSockaddr->sa_family;
+ pj_memcpy(&ifs[i], pAddr->lpSockaddr, pAddr->iSockaddrLength);
+ ++i;
+ }
}
}