From: Urban Wallasch Date: Thu, 24 Oct 2019 02:06:17 +0000 (+0200) Subject: * net: use struct sockaddr_storage to store addresses X-Git-Url: https://git.packet-gain.de/?a=commitdiff_plain;h=4929416eb3efa8ef4dcaad166beeaec05f510c5e;p=oddbits.git * net: use struct sockaddr_storage to store addresses --- diff --git a/net/net.c b/net/net.c index af9b43c..957e82d 100644 --- a/net/net.c +++ b/net/net.c @@ -255,15 +255,15 @@ int tcp_accept(int sock, int timeout) { r = poll(&pfd, 1, timeout); if (r == 1 && pfd.revents & (POLLIN | POLLERR | POLLHUP)) { /* In case of POLLERR or POLLHUP we let accept() catch the error! */ - unsigned char a_[128]; - struct sockaddr *addr = (void *)a_; - socklen_t addrlen = sizeof a_; - r = accept(sock, addr, &addrlen); + struct sockaddr_storage addr; + struct sockaddr *paddr = (struct sockaddr *)&addr; + socklen_t addrlen = sizeof addr; + r = accept(sock, paddr, &addrlen); if (r < 0) { r = EAI_SYSTEM; } else { - ADDR2STR(addr, addrlen, stra, 100); + ADDR2STR(paddr, addrlen, stra, 100); NETLOG_DBG("accept(%d) -> (%d, %s): Ok", sock, r, stra); } } diff --git a/net/net_test.c b/net/net_test.c index 14b3ad9..3d764a2 100644 --- a/net/net_test.c +++ b/net/net_test.c @@ -183,7 +183,7 @@ int main(int argc, char *argv[]) { exit(EXIT_FAILURE); } while (1) { - struct sockaddr_in6 addr; + struct sockaddr_storage addr; struct sockaddr *paddr = (struct sockaddr *)&addr; socklen_t addrlen = sizeof addr; for (n = 1; n > 0; ) {