Beispiel #1
0
int main (int argc, char *argv[])
{
    prog_name = argv[0];
    settings = g_hash_table_new_full(g_str_hash, g_str_equal,
                                     g_free, g_free);

    if (!preload_settings())
        return 1;
    chain_set();

    RAND_bytes((unsigned char *)&instance_nonce, sizeof(instance_nonce));

    unsigned int arg;
    for (arg = 1; arg < argc; arg++) {
        const char *argstr = argv[arg];
        if (is_command(argstr)) {
            if (!do_command(argstr))
                return 1;
        } else {
            if (!do_setting(argstr))
                return 1;
        }
    }

    return 0;
}
Beispiel #2
0
static bool preload_settings(void)
{
    unsigned int i;

    /* preload static settings */
    for (i = 0; i < ARRAY_SIZE(const_settings); i++)
        if (!do_setting(const_settings[i]))
            return false;

    return true;
}
Beispiel #3
0
static bool preload_settings(void)
{
	LOG_BEGIN;
	unsigned int i;

	/* preload static settings */
	for (i = 0; i < ARRAY_SIZE(const_settings); i++)
		if (!do_setting(const_settings[i])){
			LOG_END_RC ( false );	
			//return false;
		}

	LOG_END_RC( true );
	//return true;
}
Beispiel #4
0
int main (int argc, char *argv[])
{
	LOG_INIT(LOG_ALL);
	LOG_GMT_ZONE;

	LOG_BEGIN;

	settings = bp_hashtab_new_ext(czstr_hash, czstr_equal,
				      free, free);

	if (!preload_settings()){
		LOG_END_RC(1);
		//return 1;
	}
	chain_set();
	LOG("chain-set");
	RAND_bytes((unsigned char *)&instance_nonce, sizeof(instance_nonce));

	unsigned int arg;
	for (arg = 1; arg < argc; arg++) {
		const char *argstr = argv[arg];
		if (!do_setting(argstr)){
			LOG_END_RC(1);
			//return 1;
		}
	}
	LOG("arguments processed");

	/*
	 * properly capture TERM and other signals
	 */
	signal(SIGHUP, SIG_IGN);
	signal(SIGPIPE, SIG_IGN);
	signal(SIGINT, term_signal);
	signal(SIGTERM, term_signal);

	LOG("signals set");

	init_daemon(&global_nci);
	run_daemon(&global_nci);

	fprintf(plog, "daemon exiting\n");

	shutdown_daemon(&global_nci);
	LOG_END_RC(0);
	//return 0;
}