/*
* ftelnetd - fake telnet daemon
*
* daemon_init.c
* Starts the server as daemon and put it in background.
*
* Tue Dec 12 22:47:31 CET 2006
*
* by Levent Kayan
* levent[at]corehack[dot]org
*
*/
#include "ftelnetd.h"
#include "sighandle.h"
#include "ferror.h"
#include <stdlib.h>
#include <sys/stat.h>
#include <unistd.h>
#define MAXFD 64
int daemon_init()
{
int i;
pid_t pid;
if ( (pid = fork()) < 0) {
return (-1);
}
else if (pid) {
/* parent terminates */
exit(0);
}
/* child 1 continues... */
/* become session leader */
if (setsid() < 0) {
return (-1);
}
signal(SIGHUP, SIG_IGN);
if ( (pid = fork()) < 0) {
return (-1);
}
else if (pid) {
/* child 1 terminates */
exit(0);
}
/* child 2 continues...
* close off file descriptors */
for (i = 0; i < MAXFD; i++) {
close(i);
}
return 0;
}
/* EOF */
syntax highlighted by Code2HTML, v. 0.9.1