if (log_file)
fclose(log_file);
send_error("Server shutdown.");
-
- // close down all listening sockets
- for (int count = 0; count < boundPortCount; count++)
- {
- shutdown(openSockfd[count], 2);
- }
-
exit (status);
}
if (log_file)
fclose(log_file);
send_error("Server terminated.");
- // close down all listening sockets
- for (int count = 0; count < boundPortCount; count++)
- {
- shutdown(openSockfd[count], 2);
- }
exit(status);
}
exit (0);
setsid ();
umask (007);
+ printf("InspIRCd PID: %d\n",getpid());
/* close stdin, stdout, stderr */
freopen("/dev/null","w",stdout);
freopen("/dev/null","w",stderr);
int OpenTCPSocket (void)
{
int sockfd;
- int on = 0;
+ int on = 1;
struct linger linger = { 0 };
if ((sockfd = socket (AF_INET, SOCK_STREAM, 0)) < 0)
setsockopt(sockfd, SOL_SOCKET, SO_REUSEADDR, (const char*)&on, sizeof(on));
/* This is BSD compatible, setting l_onoff to 0 is *NOT* http://web.irc.org/mla/ircd-dev/msg02259.html */
linger.l_onoff = 1;
- linger.l_linger = 0;
+ linger.l_linger = 1;
setsockopt(sockfd, SOL_SOCKET, SO_LINGER, (const char*)&linger,sizeof(linger));
return (sockfd);
}