1
0
mirror of https://github.com/coturn/coturn.git synced 2025-10-28 13:31:16 +01:00

issue 6 fixed

This commit is contained in:
mom040267 2014-09-08 20:55:28 +00:00
parent 49a8f18cf3
commit ada99b9898
2 changed files with 35 additions and 1 deletions

View File

@ -7,6 +7,7 @@ Version 4.1.2.2 'Vitari':
- Move debian package from SVN to GIT.
- Move secondary download area to coturn.net.
- TLS renegotiation DoS attack prevention implemented;
- FQDN as relay-ip and listener-ip parameters (issue 6);
- oAuth security implementation. (TODO)
08/14/2014 Oleg Moskalenko <mom040267@gmail.com>

View File

@ -29,6 +29,8 @@
*/
#include "ns_turn_ioaddr.h"
#include <netdb.h>
#include <string.h>
//////////////////////////////////////////////////////////////
@ -202,7 +204,38 @@ int make_ioa_addr(const u08bits* saddr, int port, ioa_addr *addr) {
#endif
addr->s6.sin6_port = nswap16(port);
} else {
return -1;
struct addrinfo addr_hints;
struct addrinfo *addr_result = NULL;
int err;
memset(&addr_hints, 0, sizeof(struct addrinfo));
addr_hints.ai_family = AF_UNSPEC; /* Allow IPv4 or IPv6 */
addr_hints.ai_socktype = SOCK_DGRAM; /* Datagram socket */
addr_hints.ai_flags = AI_PASSIVE; /* For wildcard IP address */
addr_hints.ai_protocol = 0; /* Any protocol */
addr_hints.ai_canonname = NULL;
addr_hints.ai_addr = NULL;
addr_hints.ai_next = NULL;
err = getaddrinfo((const char*)saddr, NULL, &addr_hints, &addr_result);
if (err != 0) {
fprintf(stderr,"error resolving '%s' hostname: %s\n",saddr,gai_strerror(err));
return -1;
}
// getaddrinfo() returns a list of address structures. We just take the
// first one.
ns_bcopy(addr_result->ai_addr, addr, addr_result->ai_addrlen);
if (addr_result->ai_family == AF_INET) {
addr->s4.sin_port = nswap16(port);
} else if (addr_result->ai_family == AF_INET6) {
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
}
freeaddrinfo(addr_result);
}
return 0;