}
/* XXX: Probably belongs in class InspIRCd */
-int InspIRCd::BindPorts(bool bail, int &ports_found)
+int InspIRCd::BindPorts(bool bail, int &ports_found, FailedPortList &failed_ports)
{
char configToken[MAXBUF], Addr[MAXBUF], Type[MAXBUF];
insp_sockaddr client, server;
if (fd == ERROR)
{
this->Log(DEBUG,"Bad fd %d binding port [%s:%d]",fd,Config->addrs[count],Config->ports[count]);
+ failed_ports.push_back(std::make_pair(Config->addrs[count],Config->ports[count]));
}
else
{
shutdown(Config->openSockfd[BoundPortCount]->GetFd(),2);
close(Config->openSockfd[BoundPortCount]->GetFd());
delete Config->openSockfd[BoundPortCount];
+ failed_ports.push_back(std::make_pair(Config->addrs[count],Config->ports[count]));
}
else
BoundPortCount++;
if (fd == ERROR)
{
this->Log(DEBUG,"Bad fd %d binding port [%s:%d]",fd,Config->addrs[count],Config->ports[count]);
+ failed_ports.push_back(std::make_pair(Config->addrs[count],Config->ports[count]));
}
else
{
{
BoundPortCount++;
}
+ else
+ failed_ports.push_back(std::make_pair(Config->addrs[count],Config->ports[count]));
}
}
return BoundPortCount;