summaryrefslogtreecommitdiff
path: root/src/socket.cpp
diff options
context:
space:
mode:
authordanieldg <danieldg@e03df62e-2008-0410-955e-edbf42e46eb7>2009-07-01 22:55:46 +0000
committerdanieldg <danieldg@e03df62e-2008-0410-955e-edbf42e46eb7>2009-07-01 22:55:46 +0000
commitc384697c88aa54b5a532cd2edce3c063c70d7868 (patch)
tree3fc454072b3956f241b091265f606bb9c6ca7f67 /src/socket.cpp
parent50eebfeac8ebe501b021ebf62b0b01464fd79a21 (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.cpp11
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++;
}
}
}