|
|
|
@ -245,24 +245,26 @@ int make_ioa_addr(const u08bits* saddr0, int port, ioa_addr *addr) { |
|
|
|
|
|
|
|
|
|
beg_af: |
|
|
|
|
|
|
|
|
|
while(!found && addr_result) { |
|
|
|
|
while(addr_result) { |
|
|
|
|
|
|
|
|
|
if(addr_result->ai_family == family) { |
|
|
|
|
ns_bcopy(addr_result->ai_addr, addr, addr_result->ai_addrlen); |
|
|
|
|
if (addr_result->ai_family == AF_INET) { |
|
|
|
|
ns_bcopy(addr_result->ai_addr, addr, addr_result->ai_addrlen); |
|
|
|
|
addr->s4.sin_port = nswap16(port); |
|
|
|
|
#if defined(TURN_HAS_SIN_LEN) /* tested when configured */ |
|
|
|
|
addr->s4.sin_len = sizeof(struct sockaddr_in); |
|
|
|
|
#endif |
|
|
|
|
found = 1; |
|
|
|
|
break; |
|
|
|
|
} else if (addr_result->ai_family == AF_INET6) { |
|
|
|
|
ns_bcopy(addr_result->ai_addr, addr, addr_result->ai_addrlen); |
|
|
|
|
addr->s6.sin6_port = nswap16(port); |
|
|
|
|
#if defined(SIN6_LEN) /* this define is required by IPv6 if used */ |
|
|
|
|
addr->s6.sin6_len = sizeof(struct sockaddr_in6); |
|
|
|
|
#endif |
|
|
|
|
} else { |
|
|
|
|
continue; |
|
|
|
|
found = 1; |
|
|
|
|
break; |
|
|
|
|
} |
|
|
|
|
found = 1; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
addr_result = addr_result->ai_next; |
|
|
|
|