X-Git-Url: https://git.netwichtig.de/gitweb/?a=blobdiff_plain;f=src%2Fsocket.cpp;h=09885eca16d3fd209f1e68f0eaebbbccb8701c1b;hb=3593e33ce374caee9aec0575b49ec9b0001a8ec6;hp=c33eee5a6aee2a352cd4414c5dfcdb4f5075b84d;hpb=4bbca0643b56f26f73a05462d226b2dd8871626b;p=user%2Fhenk%2Fcode%2Finspircd.git diff --git a/src/socket.cpp b/src/socket.cpp index c33eee5a6..09885eca1 100644 --- a/src/socket.cpp +++ b/src/socket.cpp @@ -11,6 +11,8 @@ * --------------------------------------------------- */ +/* $Core: libIRCDsocket */ + #include "inspircd.h" #include "socket.h" #include "socketengine.h" @@ -63,7 +65,7 @@ ListenSocket::~ListenSocket() } } -void ListenSocket::HandleEvent(EventType et, int errornum) +void ListenSocket::HandleEvent(EventType, int) { sockaddr* sock_us = new sockaddr[2]; // our port number sockaddr* client = new sockaddr[2]; @@ -115,12 +117,12 @@ void ListenSocket::HandleEvent(EventType et, int errornum) } } ServerInstance->stats->statsAccept++; - userrec::AddClient(ServerInstance, incomingSockfd, in_port, false, this->family, client); + User::AddClient(ServerInstance, incomingSockfd, in_port, false, this->family, client); } else { ServerInstance->SE->Shutdown(incomingSockfd, 2); - close(incomingSockfd); + ServerInstance->SE->Close(incomingSockfd); ServerInstance->stats->statsRefused++; } delete[] client; @@ -424,7 +426,8 @@ int irc::sockets::OpenTCPSocket(char* addr, int socktype) { int sockfd; int on = 1; - struct linger linger = { 0 }; + addr = addr; + struct linger linger = { 0, 0 }; #ifdef IPV6 if (strchr(addr,':') || (!*addr)) sockfd = socket (PF_INET6, socktype, 0); @@ -448,7 +451,7 @@ int irc::sockets::OpenTCPSocket(char* addr, int socktype) } } -int InspIRCd::BindPorts(bool bail, int &ports_found, FailedPortList &failed_ports) +int InspIRCd::BindPorts(bool, int &ports_found, FailedPortList &failed_ports) { char configToken[MAXBUF], Addr[MAXBUF], Type[MAXBUF]; int bound = 0; @@ -464,7 +467,10 @@ int InspIRCd::BindPorts(bool bail, int &ports_found, FailedPortList &failed_port Config->ConfValue(Config->config_data, "bind", "port", count, configToken, MAXBUF); Config->ConfValue(Config->config_data, "bind", "address", count, Addr, MAXBUF); Config->ConfValue(Config->config_data, "bind", "type", count, Type, MAXBUF); - + + if (strncmp(Addr, "::ffff:", 7) == 0) + this->Log(DEFAULT, "Using 4in6 (::ffff:) isn't recommended. You should bind IPv4 addresses directly instead."); + if ((!*Type) || (!strcmp(Type,"clients"))) { irc::portparser portrange(configToken, false);