int rmm_modules_init(unsigned int modules, unsigned int jipmi_port_attr, unsigned int jsonrpcapi_bitmap) { #define INIT_MAX_RETRY 10 int port = 0; int ret = -1; if (modules | MODULEINIT_LOG) { ret = rmm_log_init(); if (ret == -1) return -1; } if (modules | MODULEINIT_COREDUMP) enable_core_dump(); if (modules | MODULEINIT_REDFISHD) { port = rmm_cfg_get_port(REDFISHD_PORT); ret = rf_connect(INADDR_LOOPBACK, port); if (ret == -1) return -1; port = rmm_cfg_get_port(SNMPAGENTD_PORT); ret = snmp_subagentd_connect(INADDR_LOOPBACK, port); if (ret == -1) return -1; } if (modules | MODULEINIT_GAMI_REG) { ret = is_gami_reg_ready(INIT_MAX_RETRY); if (ret == -1) return -1; } if (modules | MODULEINIT_ASSETD) { ret = is_assetd_ready(INIT_MAX_RETRY); if (ret == -1) return -1; } if (jsonrpcapi_bitmap) { port = rmm_cfg_get_port(jipmi_port_attr); libjsonrpcapi_init(JSONRPCINIT_MEMDB | JSONRPCINIT_JIPMI, port); if (jsonrpcapi_bitmap | JSONRPCINIT_MEMDB) ret = libdb_is_ready(DB_RMM, LOCK_ID_NULL, -1); if (ret == -1) return -1; } return 0; }
int main(int argc, char **argv) { reg_sigterm_handler(sigterm_handler); rmm_log_init(); enable_core_dump(); init_ipmi_subscribe(); ipmi_init(); register_ipmb_resp(); register_rmcp_resp(); IPMI_LOG_INFO("IPMI-Daemon is Running ...\n"); fd_events_main_loop(); return 0; }
int NDInstanceBase::Create(int argc,const char *argv[]) { int i ; const char *logfileName = NULL ; if (m_bCreated) { return 0; } system_signals_init() ; nd_arg(argc, argv); //get config file for (i=1; i<argc; i++){ if(0 == strcmp(argv[i],"-f" ) && i< argc-1) { NDInstanceBase::config_file = argv[++i] ; } else if(0== strcmp(argv[i], "-c") && i< argc-1) { m_config_name = argv[++i] ; } else if(0==strcmp(argv[i],"-nodev")) { m_un_develop = 1; } else if(0==strcmp(argv[i],"-log") && i<argc -1) { logfileName = argv[++i]; } else if(0==strcmp(argv[i],"-workdir") &&i<argc -1 ) { nd_chdir(argv[++i]) ; } else if(0==strcmp(argv[i],"-v") || 0==strcmp(argv[i],"--version") ) { fprintf(stdout, "version : %s \n" , __g_version_desc) ; exit(0) ; } else if(0==strcmp(argv[i],"-l") || 0==strcmp(argv[i],"--rlimit") ) { char buf[1024] ; fprintf(stdout, "rlimit: \n %s\n" , get_rlimit_info(buf, sizeof(buf)) ) ; exit(0) ; } else if(0==strcmp(argv[i],"-pid") && i<argc -1){ FILE *pf = fopen(argv[i+1], "w") ; if (pf) { fprintf(pf, "%d", nd_processid()) ; fclose(pf) ; } else { fprintf(stderr,"write pid error %s file not exist\n", argv[i+1]) ; exit(1) ; } } } if(!config_file|| !m_config_name) { printf("usage: -f config-file -c config-name\n press ANY key to continue\n") ; //getch() ; exit(1) ; //return -1 ; } if(-1==ReadConfig(m_config_name) ) { printf("Read config %s file error \n press ANY key to continue\n", m_config_name) ; //getch() ; exit(1) ; } nd_set_exit_callback(applib_exit_callback) ; if (m_config.i_cfg.open_dump){ #ifndef ND_UNIX ::SetUnhandledExceptionFilter((LPTOP_LEVEL_EXCEPTION_FILTER)nd_unhandler_except); #else enable_core_dump() ; #endif } size_t max_connector = m_config.l_cfg.max_connect ; if ( max_connector > get_maxopen_fd() ) { size_t new_fd_num = set_maxopen_fd(max_connector) ; nd_logmsg("set max connect %d real max connect =%d\n",m_config.l_cfg.max_connect, (int) new_fd_num); } if(logfileName && logfileName[0]) { strncpy(m_config.i_cfg.log_file, logfileName, sizeof(m_config.i_cfg.log_file)) ; } if (m_config.i_cfg.log_file[0]){ set_log_file(m_config.i_cfg.log_file) ; if (m_config.i_cfg.log_file_size > 0) { nd_setlog_maxsize(m_config.i_cfg.log_file_size) ; } nd_setlog_func(nd_default_filelog) ; } if (m_config.i_cfg.callstack_file[0]){ if(CALLSTACK_INIT(m_config.i_cfg.callstack_file)==-1) { nd_logfatal("create map file %s error!\n" AND m_config.i_cfg.callstack_file) ; return -1 ; } } nd_net_set_crypt((nd_netcrypt)nd_TEAencrypt, (nd_netcrypt)nd_TEAdecrypt, sizeof(tea_v)) ; // if (g_base_inst==NULL){ // g_base_inst = this ; // } OnCreate(); m_bCreated = 1; return 0 ; }