Example #1
0
File: hb.c Project: kingiol/cmoon
int main(int argc, char *argv[])
{
    int ret;

    if (argc != 5) {
        printf("Usage: %s HOST PORT EVENT_NAME CONFIG_FILE\n", argv[0]);
        return 1;
    }

    settings.smsalarm = 0;
    //settings.logfname = "-";
    log_init();
    if (config_parse_file(argv[4], &g_cfg) != 1) {
        printf("parse config file %s failure", argv[3]);
            return 1;
    }
    
    mevent_t *evt = mevent_init(argv[3]);
    if (evt == NULL) {
        printf("init error\n");
        SMS_ALARM("mevent_init error");
        return 1;
    }

    struct timeval tv;
    tv.tv_sec = 0;
    tv.tv_usec = 800000;
    
    mevent_add_udp_server(evt, argv[1], atoi(argv[2]), NULL, &tv);
    ret = mevent_trigger(evt, NULL, REQ_CMD_STATS, FLAGS_SYNC);
    if (PROCESS_OK(ret)) {
        hdf_dump(evt->hdfrcv, NULL);
    } else {
        int try = 0;
        
    redo:
        sleep(10);
        ret = mevent_trigger(evt, NULL, REQ_CMD_STATS, FLAGS_SYNC);
        if (PROCESS_NOK(ret) && try < 3) {
            try++;
            goto redo;
        }

        if (PROCESS_NOK(ret) && try >= 3) {
            printf("process failure %d\n", ret);
            SMS_ALARM("process failure %d, restarted", ret);
            system("killall -9 mevent; sleep 2; /usr/local/revive/xport/daemon/mevent -c /usr/local/revive/xport/conf/server.hdf");
        } else {
            printf("process temproray error %d, %d", ret, try);
        }
    }

    mevent_free(evt);
    return 0;
}
Example #2
0
void levt_destroy(HASH *evth)
{
    char *key = NULL;

    mevent_t *evt = (mevent_t*)hash_next(evth, (void**)&key);

    while (evt != NULL) {
        mevent_free(evt);
        evt = hash_next(evth, (void**)&key);
    }

    hash_destroy(&evth);
}