/*
** SellaNMS
** $Id: daemon.cxx,v 1.6 2005/11/27 00:18:03 sella Exp $
** Copyright (c) 2001-2005 Digital Genesis Software, LLC. All Rights Reserved.
** Released under the GPL Version 2 License.
** http://www.digitalgenesis.com
*/

static const char rcsid[] = "$Id: daemon.cxx,v 1.6 2005/11/27 00:18:03 sella Exp $";

#include "daemon.h"
#include "bgp.h"
#include <signal.h>

void sighandler(int sig) {
	switch (sig) {
		case SIGUSR1:
			LMSG("Caught SIGUSR1 - daemon");
			break;

		case SIGUSR2:
			LMSG("Caught SIGUSR2 - daemon");
			break;

		default:
			LMSG("Caught unknown signal - daemon");
	}
}

bool start() {
	BGP *bgp = NULL;

	/* Install Signal Handlers */
	if (signal(SIGUSR1, &sighandler) == SIG_ERR) {
		LMSG("Failed to install signal handler for SIGUSR1.");
	}
	if (signal(SIGUSR2, &sighandler) == SIG_ERR) {
		LMSG("Failed to install signal handler for SIGUSR2.");
	}

	if ((bgp = new BGP()) != NULL) {
		TRACE(TRACE_INTERNAL, "read config.");
		if (bgp->readConfig() == SUCCESS) {
			TRACE(TRACE_INTERNAL, "execute...!!!!!!!!!!!!!!!!!!!!!");
			bgp->execute();
		} else {
			TRACE(TRACE_INTERNAL, "ticketk...");
		}

		SAFE_DELETE(bgp);
	} else {
		LMSG("Failed to allocate memory for bgp().");

		return false;
	}

	return true;
}

const char* getName() {
	return "mon.bgpd";
}

const char* getDefaultConfigPath() {
	return "monitor bgp";
}

const char* getProcTitle() {
	return getName();
}

const char* getDefaultConfigFile() {
	return DEFAULT_CONFIG_FILE;
}

const char* getDefaultPidFile() {
	return DEFAULT_PID_FILE;
}

const char* getDefaultStatFile() {
	return DEFAULT_STAT_FILE;
}

int getDefaultNiceness() {
	return DEFAULT_NICENESS;
}

/*
** Local Variables:
** c-basic-offset: 3
** tab-width: 3
** End:
** vim600: fdm=marker
** vim: noet ts=3 sw=3
*/
