mirror of
https://gitlab.xiph.org/xiph/icecast-common.git
synced 2024-12-04 14:46:31 -05:00
Fix formatting of ip addresses so that v6 sockets are logged correctly.
svn path=/trunk/net/; revision=4345
This commit is contained in:
parent
66757da884
commit
de873ff693
12
net/sock.c
12
net/sock.c
@ -668,15 +668,19 @@ int sock_accept(sock_t serversock, char *ip, int len)
|
||||
ret = accept(serversock, (struct sockaddr *)&sa, &slen);
|
||||
|
||||
if (ret >= 0 && ip != NULL) {
|
||||
/* inet_ntoa is not reentrant, we should protect this */
|
||||
#ifdef HAVE_IPV6
|
||||
if(inet_ntop(AF_INET, &((struct sockaddr_in *)&sa)->sin_addr,
|
||||
ip, len) <= 0)
|
||||
{
|
||||
if(((struct sockaddr_in *)&sa)->sin_family == AF_INET)
|
||||
inet_ntop(AF_INET, &((struct sockaddr_in *)&sa)->sin_addr,
|
||||
ip, len);
|
||||
else if(((struct sockaddr_in6 *)&sa)->sin6_family == AF_INET6)
|
||||
inet_ntop(AF_INET6, &((struct sockaddr_in6 *)&sa)->sin6_addr,
|
||||
ip, len);
|
||||
else {
|
||||
strncpy(ip, "ERROR", len-1);
|
||||
ip[len-1] = 0;
|
||||
}
|
||||
#else
|
||||
/* inet_ntoa is not reentrant, we should protect this */
|
||||
strncpy(ip, inet_ntoa(sa.sin_addr), len);
|
||||
#endif
|
||||
sock_set_nolinger(ret);
|
||||
|
Loading…
Reference in New Issue
Block a user