- case AF_INET6:
- {
- static char temp[41];
-
- inet_ntop(client_sa.in6.sin6_family, &client_sa.in6.sin6_addr, buf, sizeof(buf));
- /* IP addresses starting with a : on irc are a Bad Thing (tm) */
- if (*buf == ':')
- {
- strlcpy(&temp[1], buf, sizeof(temp) - 1);
- *temp = '0';
- this->cachedip = temp;
- return temp;
- }
-
- this->cachedip = buf;
- return buf;
- }
- break;
- case AF_INET:
- {
- inet_ntop(client_sa.in4.sin_family, &client_sa.in4.sin_addr, buf, sizeof(buf));
- this->cachedip = buf;
- return buf;
- }
- break;
- default:
- break;
+ irc::sockets::satoap(&client_sa, cachedip, port);
+ /* IP addresses starting with a : on irc are a Bad Thing (tm) */
+ if (cachedip.c_str()[0] == ':')
+ cachedip.insert(0,1,'0');