예제 #1
0
파일: cm_test.c 프로젝트: qmm161/sysrepo
static int
cm_setup(void **state)
{
    createDataTreeExampleModule();
    cm_ctx_t *ctx = NULL;
    int rc = 0;

    sr_logger_init("cm_test");
    sr_log_stderr(SR_LL_ERR); /* log only errors to stderr */

    rc = cm_init(CM_MODE_LOCAL, CM_AF_SOCKET_PATH, &ctx);
    assert_int_equal(rc, SR_ERR_OK);
    assert_non_null(ctx);
    *state = ctx;

    rc = cm_start(ctx);
    assert_int_equal(rc, SR_ERR_OK);

    return 0;
}
예제 #2
0
파일: main.c 프로젝트: breezechen/zevent
int main()
{
    //daemonize();
    //process signal
    struct sigaction sa;
    sigemptyset(&sa.sa_mask);
    sa.sa_flags = 0;
    sa.sa_handler = handler;
    sigaction(SIGINT, &sa, NULL);

    json_object *jfile = json_object_from_file("config.json");
    if(!jobject_ptr_isvalid(jfile))
    {
        printf("open config.json failed!\n");
        return -1;
    }
    json_object *jlog = json_util_get(jfile,"CONFIG.log");
    if(!jlog)   return -1;
    const char *strlog = json_object_get_string(jlog);

    log_open(&log_,strlog);

    json_object *jlog_level = json_util_get(jfile,"CONFIG.log_level");
    if(jlog_level)
    {
        int log_level = json_object_get_int(jlog_level);
        log_level_set(log_,log_level);
    }

    loga(log_,"starting server!");

    json_object_put(jfile);

    int rv;
    rv = segword_init();
    if(rv < 0)
    {
        loga(log_,"segword_init failed!");
        return -1;
    }

    redis_init();

    rv = cm_start();
    if(rv < 0)
	return -1;

    struct timeval delay;
    while(!stop_daemon)
    {
        delay.tv_sec = 0;
        delay.tv_usec = 100000;

        int rv = select(0,NULL,NULL,NULL,&delay); 
        if(rv == 0)
        {
            continue;
        }
    }
    cm_stop();
    cm_destroy();
    redis_fini();
    segword_fini();

    printf("Normal exit!\n");
    return 0;
}