diff options
| author | 2007-02-05 22:29:02 +0000 | |
|---|---|---|
| committer | 2007-02-05 22:29:02 +0000 | |
| commit | 1b128373c2acb747c3827cdfd9c1863fb8492d62 (patch) | |
| tree | 5dd11888e165f6fa81986dfcaaafcb0c234bddc2 /src/users.cpp | |
| parent | Smart tricks to allow for ipv4 and ipv6 bindings on client ports. WARNING, NO... (diff) | |
Not safe for use yet
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@6502 e03df62e-2008-0410-955e-edbf42e46eb7
Diffstat (limited to 'src/users.cpp')
| -rw-r--r-- | src/users.cpp | 12 |
1 files changed, 10 insertions, 2 deletions
diff --git a/src/users.cpp b/src/users.cpp index b42eb5e00..f47c33011 100644 --- a/src/users.cpp +++ b/src/users.cpp @@ -802,11 +802,19 @@ void userrec::AddToWhoWas() } /* add a client connection to the sockets list */ -void userrec::AddClient(InspIRCd* Instance, int socket, int port, bool iscached, insp_inaddr ip) +void userrec::AddClient(InspIRCd* Instance, int socket, int port, bool iscached, int socketfamily, sockaddr* ip) { std::string tempnick = ConvToStr(socket) + "-unknown"; user_hash::iterator iter = Instance->clientlist->find(tempnick); - const char *ipaddr = insp_ntoa(ip); + char ipaddr[MAXBUF]; +#ifdef IPV6 + if (socketfamily = AF_INET6) + inet_ntop(AF_INET6, &((const sockaddr_in6*)ip)->sin6_addr, ipaddr, sizeof(ipaddr)); + else + inet_ntop(AF_INET, &((const sockaddr_in*)ip)->sin_addr, ipaddr, sizeof(ipaddr)); +#else + inet_ntop(AF_INET, &((const sockaddr_in*)ip)->sin_addr, ipaddr, sizeof(ipaddr)); +#endif userrec* New; int j = 0; |
