- sock_us = new sockaddr[2];
- client = new sockaddr[2];
- setup_sock = true;
- }
-
-#ifdef IPV6
- if (this->family == AF_INET6)
- {
- uslen = sizeof(sockaddr_in6);
- length = sizeof(sockaddr_in6);
- }
- else
-#endif
- {
- uslen = sizeof(sockaddr_in);
- length = sizeof(sockaddr_in);
- }
-
- incomingSockfd = ServerInstance->SE->Accept(this, (sockaddr*)client, &length);
-
- if ((incomingSockfd > -1) && (!ServerInstance->SE->GetSockName(this, sock_us, &uslen)))
- {
- char buf[MAXBUF];
- char target[MAXBUF];
-
- *target = *buf = '\0';
-
- sockaddr* raddr = new sockaddr[2];
-
-#ifdef IPV6
- if (this->family == AF_INET6)
- {
- in_port = ntohs(((sockaddr_in6*)sock_us)->sin6_port);
- inet_ntop(AF_INET6, &((const sockaddr_in6*)ip)->sin6_addr, buf, sizeof(buf));
- socklen_t raddrsz = sizeof(sockaddr_in6);
- if (getpeername(incomingSockfd, (sockaddr*) raddr, &raddrsz) == 0)
- inet_ntop(AF_INET6, &((const sockaddr_in6*)raddr)->sin6_addr, target, sizeof(target));
- else
- ServerInstance->Logs->Log("SOCKET", DEBUG, "Can't get peername: %s", strerror(errno));
- }
- else
-#endif
- {
- inet_ntop(AF_INET, &((const sockaddr_in*)client)->sin_addr, buf, sizeof(buf));
- in_port = ntohs(((sockaddr_in*)sock_us)->sin_port);
- socklen_t raddrsz = sizeof(sockaddr_in);
- if (getpeername(incomingSockfd, (sockaddr*) raddr, &raddrsz) == 0)
- inet_ntop(AF_INET, &((const sockaddr_in*)raddr)->sin_addr, target, sizeof(target));
- else
- ServerInstance->Logs->Log("SOCKET", DEBUG, "Can't get peername: %s", strerror(errno));
-
- }
-