diff options
author | danieldg <danieldg@e03df62e-2008-0410-955e-edbf42e46eb7> | 2009-07-01 22:55:46 +0000 |
---|---|---|
committer | danieldg <danieldg@e03df62e-2008-0410-955e-edbf42e46eb7> | 2009-07-01 22:55:46 +0000 |
commit | c384697c88aa54b5a532cd2edce3c063c70d7868 (patch) | |
tree | 3fc454072b3956f241b091265f606bb9c6ca7f67 /src/socket.cpp | |
parent | 50eebfeac8ebe501b021ebf62b0b01464fd79a21 (diff) |
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
Diffstat (limited to 'src/socket.cpp')
-rw-r--r-- | src/socket.cpp | 11 |
1 files changed, 5 insertions, 6 deletions
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<ListenSocketBase *>::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++; } } } |