Exemple #1
0
/******************************************************************************
 **函数名称: main 
 **功    能: 监控主程序
 **输入参数: NONE
 **输出参数: NONE
 **返    回: 0:成功 !0:失败
 **实现描述: 
 **     1. 初始化菜单环境
 **     2. 加载子菜单
 **     3. 启动菜单功能
 **注意事项: 
 **作    者: # Qifeng.zou # 2014.12.27 #
 ******************************************************************************/
int main(int argc, char *argv[])
{
    mon_opt_t opt;
    mon_cntx_t *ctx;

    memset(&opt, 0, sizeof(opt));

    umask(0);
    mem_ref_init();
    set_fd_limit(65535);
    signal(SIGPIPE, SIG_IGN);

    /* > 解析输入参数 */
    if (mon_getopt(argc, argv, &opt)) {
        return mon_usage(argv[0]);
    }

    /* > 初始化全局信息 */
    ctx = mon_init(opt.conf_path);
    if (NULL == ctx) {
        fprintf(stderr, "Initialize monitor failed!\n");
        return -1;
    }

    /* > 启动菜单模块 */
    if (menu_run(ctx->menu)) {
        fprintf(stderr, "Startup menu failed!\n");
        return -1;
    }

    return 0;
}
Exemple #2
0
void Init_nyara() {
  u8_encoding = rb_utf8_encoding();
  set_fd_limit(20000);

  nyara = rb_define_module("Nyara");
# include "inc/version.inc"
  rb_const_set(nyara, rb_intern("VERSION"), rb_enc_str_new(NYARA_VERSION, strlen(NYARA_VERSION), u8_encoding));

  // utils: hashes
  Init_hashes(nyara);

  // utils: method map
  volatile VALUE method_map = rb_class_new_instance(0, NULL, nyara_param_hash_class);
  rb_const_set(nyara, rb_intern("HTTP_METHODS"), method_map);
  VALUE tmp_key = Qnil;
# define METHOD_STR2NUM(n, name, string) \
    tmp_key = rb_enc_str_new(#string, strlen(#string), u8_encoding);\
    OBJ_FREEZE(tmp_key);\
    rb_hash_aset(method_map, tmp_key, INT2FIX(n));
  HTTP_METHOD_MAP(METHOD_STR2NUM);
# undef METHOD_STR2NUM
  OBJ_FREEZE(method_map);

  // utils: status codes
  volatile VALUE status_map = rb_hash_new();
  rb_const_set(nyara, rb_intern("HTTP_STATUS_CODES"), status_map);
  VALUE tmp_value = Qnil;
# define STATUS_DESC(status, desc) \
    tmp_value = rb_enc_str_new(desc, strlen(desc), u8_encoding);\
    OBJ_FREEZE(tmp_value);\
    rb_hash_aset(status_map, INT2FIX(status), tmp_value);
  HTTP_STATUS_CODES(STATUS_DESC);
# undef STATUS_DESC
  OBJ_FREEZE(status_map);

  VALUE ext = rb_define_module_under(nyara, "Ext");
  rb_define_singleton_method(ext, "rdtsc_start", ext_rdtsc_start, 0);
  rb_define_singleton_method(ext, "rdtsc", ext_rdtsc, 0);

  Init_accept(ext);
  Init_mime(ext);
  Init_request(nyara, ext);
  Init_request_parse(nyara, ext);
  Init_test_response(nyara);
  Init_event(ext);
  Init_route(nyara, ext);
  Init_url_encoded(ext);
}