- ipaddr_from = insp_ntoa(((sockaddr_in6*)&from)->sin6_addr);
- port_from = ntohs(((sockaddr_in6*)&from)->sin6_port);
+ char nbuf[MAXBUF];
+ if (this->socketfamily == AF_INET6)
+ {
+ ipaddr_from = inet_ntop(AF_INET6, &((sockaddr_in6*)from)->sin6_addr, nbuf, sizeof(nbuf));
+ port_from = ntohs(((sockaddr_in6*)from)->sin6_port);
+ }
+ else
+ {
+ ipaddr_from = inet_ntoa(((sockaddr_in*)from)->sin_addr);
+ port_from = ntohs(((sockaddr_in*)from)->sin_port);
+ }