From c384697c88aa54b5a532cd2edce3c063c70d7868 Mon Sep 17 00:00:00 2001 From: danieldg Date: Wed, 1 Jul 2009 22:55:46 +0000 Subject: Make rehash generate a new ServerInstance->Config object This makes it possible to cancel a pending rehash, and fixes possible threading issues with rehash and other events. git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@11424 e03df62e-2008-0410-955e-edbf42e46eb7 --- src/socket.cpp | 11 +++++------ 1 file changed, 5 insertions(+), 6 deletions(-) (limited to 'src/socket.cpp') diff --git a/src/socket.cpp b/src/socket.cpp index 35feda01f..d18a8f5bc 100644 --- a/src/socket.cpp +++ b/src/socket.cpp @@ -179,7 +179,7 @@ int irc::sockets::OpenTCPSocket(const char* addr, int socktype) } // XXX: it would be VERY nice to genericize this so all listen stuff (server/client) could use the one function. -- w00t -int InspIRCd::BindPorts(bool, int &ports_found, FailedPortList &failed_ports) +int InspIRCd::BindPorts(FailedPortList &failed_ports) { char configToken[MAXBUF], Addr[MAXBUF], Type[MAXBUF]; int bound = 0; @@ -190,11 +190,11 @@ int InspIRCd::BindPorts(bool, int &ports_found, FailedPortList &failed_ports) for (std::vector::iterator o = ports.begin(); o != ports.end(); ++o) old_ports.push_back(make_pair((*o)->GetIP(), (*o)->GetPort())); - for (int count = 0; count < Config->ConfValueEnum(Config->config_data, "bind"); count++) + for (int count = 0; count < Config->ConfValueEnum("bind"); count++) { - 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); + Config->ConfValue("bind", "port", count, configToken, MAXBUF); + Config->ConfValue("bind", "address", count, Addr, MAXBUF); + Config->ConfValue("bind", "type", count, Type, MAXBUF); if (strncmp(Addr, "::ffff:", 7) == 0) this->Logs->Log("SOCKET",DEFAULT, "Using 4in6 (::ffff:) isn't recommended. You should bind IPv4 addresses directly instead."); @@ -237,7 +237,6 @@ int InspIRCd::BindPorts(bool, int &ports_found, FailedPortList &failed_ports) { failed_ports.push_back(std::make_pair((*Addr ? Addr : "*") + std::string(":") + ConvToStr(portno), strerror(errno))); } - ports_found++; } } } -- cgit v1.2.3