From f520fcecded9af8e7b25a50b383dc6be5ec43118 Mon Sep 17 00:00:00 2001 From: Tom Early Date: Mon, 8 Apr 2019 08:56:35 -0700 Subject: [PATCH] okay, this really is the fix for reporting the correct ip addresses --- TCPReaderWriterClient.cpp | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/TCPReaderWriterClient.cpp b/TCPReaderWriterClient.cpp index f507ca9..d80aa34 100644 --- a/TCPReaderWriterClient.cpp +++ b/TCPReaderWriterClient.cpp @@ -97,7 +97,15 @@ bool CTCPReaderWriterClient::Open() continue; } else { char buf[INET6_ADDRSTRLEN]; - if (inet_ntop(rp->ai_family, &(rp->ai_addr), buf, INET6_ADDRSTRLEN)) + void *addr; + if (AF_INET == rp->ai_family){ + struct sockaddr_in *addr4 = (struct sockaddr_in *)rp->addr; + addr = &(add4->sin_addr); + } else { + struct sockaddr_in6 *addr6 = (struct sockaddr_in6 *)rp->addr; + addr = &(add6->sin6_addr); + } + if (inet_ntop(rp->ai_family, addr, buf, INET6_ADDRSTRLEN)) fprintf(stderr, "Successfully connected to %s at %s on port %s\n", m_address.c_str(), buf, m_port.c_str()); break; }