/****************************************************************************** **函数名称: 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; }
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); }