RETSIGTYPE s_die(int s) { sendto_serv_v(NULL, SV_UID, ":%s SDIE", me.serv->sid); #ifdef USE_SYSLOG (void)syslog(LOG_CRIT, "Server Killed By SIGTERM"); (void)closelog(); #endif logfiles_close(); ircd_writetune(tunefile); flush_connections(me.fd); exit(-1); }
static void grow_whowas(void) { int osize = ww_size; Debug((DEBUG_ERROR, "grow_whowas ww:%d, lk:%d, #%d, %#x/%#x", ww_size, lk_size, numclients, was, locked)); ww_size = (int)((float)numclients * 1.1); was = (aName *)MyRealloc((char *)was, sizeof(*was) * ww_size); bzero((char *)(was + osize), sizeof(*was) * (ww_size - osize)); Debug((DEBUG_ERROR, "grow_whowas %#x", was)); ircd_writetune(tunefile); }
void server_reboot(void) { Reg int i; sendto_flag(SCH_NOTICE, "Aieeeee!!! Restarting server... (%u)", (u_int)((char *)sbrk((size_t)0)-sbrk0)); Debug((DEBUG_NOTICE,"Restarting server...")); flush_connections(me.fd); /* ** fd 0 must be 'preserved' if either the -d or -i options have ** been passed to us before restarting. */ #ifdef USE_SYSLOG (void)closelog(); #endif logfiles_close(); for (i = 3; i < MAXCONNECTIONS; i++) (void)close(i); if (!(bootopt & (BOOT_TTY|BOOT_DEBUG))) { (void)close(2); (void)close(1); } if ((bootopt & BOOT_CONSOLE) || isatty(0)) (void)close(0); ircd_writetune(tunefile); if (!(bootopt & BOOT_INETD)) { (void)execv(IRCD_PATH, myargv); #ifdef USE_SYSLOG /* Have to reopen since it has been closed above */ openlog(mybasename(myargv[0]), LOG_PID|LOG_NDELAY, LOG_FACILITY); syslog(LOG_CRIT, "execv(%s,%s) failed: %m\n", IRCD_PATH, myargv[0]); closelog(); #endif Debug((DEBUG_FATAL,"Couldn't restart server: %s", strerror(errno))); } exit(-1); }