int main(int argc, char *argv[]) { #ifdef _WIN32 WSADATA wsaData; int result = WSAStartup(MAKEWORD(1, 1), &wsaData); if (result != 0) { fprintf(stderr, "Your computer was not connected " "to the Internet at the time that " "this program was launched, or you " "do not have a 32-bit " "connection to the Internet."); exit(1); } #else openlog("rinetd", LOG_PID, LOG_DAEMON); #endif readArgs(argc, argv, &options); #if HAVE_DAEMON && !DEBUG if (!options.foreground && daemon(0, 0) != 0) { exit(0); } #elif HAVE_FORK && !DEBUG if (!options.foreground && fork() != 0) { exit(0); } #endif #if HAVE_SIGACTION struct sigaction act; act.sa_handler = SIG_IGN; sigemptyset(&act.sa_mask); act.sa_flags = SA_RESTART; sigaction(SIGPIPE, &act, NULL); act.sa_handler = &hup; sigaction(SIGHUP, &act, NULL); #elif !_WIN32 signal(SIGPIPE, plumber); signal(SIGHUP, hup); #endif signal(SIGINT, quit); signal(SIGTERM, quit); readConfiguration(); registerPID(); syslog(LOG_INFO, "Starting redirections..."); while (1) { selectPass(); } return 0; }
void selectLoop(void) { while (1) { selectPass(); } }