ClassVector Classes;
struct linger linger = { 0 };
-char bannerBuffer[MAXBUF];
+char MyExecutable[1024];
int boundPortCount = 0;
int portCount = 0, UDPportCount = 0, ports[MAXSOCKS];
int defaultRoute = 0;
{
if (strchr(i->second->modes,'w'))
{
- WriteTo(source,i->second,"WALLOPS %s",textbuffer);
+ WriteTo(source,i->second,"WALLOPS :%s",textbuffer);
}
}
}
}
-int main(int argc, char *argv[])
+int main(int argc, char **argv)
{
Start();
srand(time(NULL));
Exit(ERROR);
}
if (argc > 1) {
- if (!strcmp(argv[1],"-nofork")) {
- nofork = true;
+ for (int i = 1; i < argc; i++)
+ {
+ if (!strcmp(argv[i],"-nofork")) {
+ nofork = true;
+ }
+ if (!strcmp(argv[i],"-wait")) {
+ sleep(6);
+ }
}
}
+ strcpy(MyExecutable,argv[0]);
+
if (InspIRCd() == ERROR)
{
log(DEBUG,"main: daemon function bailed");
int InspIRCd(void)
{
- struct sockaddr_in client, server;
+ struct sockaddr_in client,server;
char addrs[MAXBUF][255];
int openSockfd[MAXSOCKS], incomingSockfd, result = TRUE;
socklen_t length;
- int count = 0, scanDetectTrigger = TRUE, showBanner = FALSE;
+ int count = 0;
int selectResult = 0, selectResult2 = 0;
char *temp, configToken[MAXBUF], stuff[MAXBUF], Addr[MAXBUF], Type[MAXBUF];
char resolvedHost[MAXBUF];
log(DEBUG,"InspIRCd: startup: binding '%s:%s' is default server route",Addr,configToken);
}
me[count3] = new serverrec(ServerName,100L,false);
- me[count3]->CreateListener(Addr,atoi(configToken));
- count3++;
+ if (!me[count3]->CreateListener(Addr,atoi(configToken)))
+ {
+ log(DEFAULT,"Error! Failed to bind port %d",atoi(configToken));
+ }
+ else
+ {
+ count3++;
+ }
}
else
{
for (int x = 0; x != UDPportCount; x++)
{
- FD_SET(me[x]->fd, &serverfds);
+ if (me[x])
+ FD_SET(me[x]->fd, &serverfds);
}
tvs.tv_usec = 0;
{
for (int x = 0; x != UDPportCount; x++)
{
- if (FD_ISSET (me[x]->fd, &serverfds))
+ if ((me[x]) && (FD_ISSET (me[x]->fd, &serverfds)))
{
char remotehost[MAXBUF],resolved[MAXBUF];
length = sizeof (client);
{
std::deque<std::string> msgs;
msgs.clear();
- if (me[x]->RecvPacket(msgs, tcp_host))
+ if ((me[x]) && (me[x]->RecvPacket(msgs, tcp_host)))
{
for (int ctr = 0; ctr < msgs.size(); ctr++)
{