#include <errno.h>
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#include <sys/types.h>
#include <fcntl.h>
#include <unistd.h>
#include <signal.h>

#include "lnxall_ubuslog.h"

int main(int argc, char *argv[])
{
	pid_t pid;

	fprintf(stdout, "Current loglevel: %d, PID: %ld\n",
		lnxall_loglevel_get(), (long) getpid());
	fflush(stdout);

	/* delay one second before resetting the handling of SIGINT */
	sleep(1);
	if (signal(SIGINT, SIG_DFL) == SIG_ERR) {
		fprintf(stderr, "Error, failed to restore default behavior for SIGINT: %s\n",
			strerror(errno));
		fflush(stderr);
		return 1;
	}

	dbg_syslog(LNXALL_LOGERR, "Hello World! WHAT THE HELL?");
	dbg_syslog_hex(LNXALL_LOGERR, (const void *) main, 128, "dumping main at line: %d", __LINE__);

	dbg_syslog(LNXALL_LOGERR, "Hello World! index: %d", 1);
	lnxall_loglevel_set(LNXALL_LOGCRIT, 0);
	lnxall_syslog(LNXALL_LOGERR, "Hello World! index: %d", 2);

	lnxall_loglevel_set(LNXALL_LOGERR, 0);

	pid = fork();
	if (pid == 0) {
		lnxall_syslog(LNXALL_LOGERR, "Hello There! index: %d", 3);
		lnxall_log_reinit(NULL, 1);
		lnxall_syslog(LNXALL_LOGERR, "Hello There! index: %d", 4);
		exit(1);
	}

	lnxall_syslog(LNXALL_LOGERR, "Hello Brave New World! index: %d", 5);
	sleep(2);
	lnxall_syslog(LNXALL_LOGERR, "Hello Brave New World! index: %d", 6);

	for (;;) {
		pause();
	}
	return 0;
}
