dl_poll_init(nr_dls, poll_array + POLLS_PER_DL);
dl_config_load();
int main(int argc, char **argv){	int ch, longindex;	int nr_dls, is_daemon = 1, is_debug = 1;	pid_t pid;	struct pollfd *poll_array;	nr_dls = dl_init();	if (nr_dls < 0)		nr_dls = 0;	while ((ch = getopt_long(argc, argv, "fd:vh", long_options, &longindex)) >= 0) {		switch (ch) {		case 'f':			is_daemon = 0;			break;		case 'd':			is_debug = atoi(optarg);			break;		case 'v':			exit(0);			break;		case 'h':			usage(0);			break;		default:			usage(1);			break;		}	}	init(is_daemon, is_debug);	if (is_daemon) {		pid = fork();		if (pid < 0)			exit(-1);		else if (pid)			exit(0);		chdir("/");		close(0);		open("/dev/null", O_RDWR);		dup2(0, 1);		dup2(0, 2);		setsid();	}	poll_array = calloc((nr_dls + 1) * POLLS_PER_DL, sizeof(struct pollfd));	if (!poll_array)		exit(-ENOMEM);	nl_fd = nl_open();	if (nl_fd < 0)		exit(nl_fd);	ipc_fd = ipc_open();	if (ipc_fd < 0)		exit(ipc_fd);	poll_array[POLL_NL].fd = nl_fd;	poll_array[POLL_NL].events = POLLIN;	poll_array[POLL_IPC].fd = ipc_fd;	poll_array[POLL_IPC].events = POLLIN;	dl_poll_init(nr_dls, poll_array + POLLS_PER_DL);	dl_config_load(nr_dls);	event_loop(nr_dls, poll_array);	return 0;}