/***************************************************************** * MdsGetMsg: *****************************************************************/ char *MdsGetMsg( /* Return: addr of "status" string */ int sts /* <r> sts value */ ) { STATIC_CONSTANT DESCRIPTOR(msg_files,"MDSMSG_PATH:*Msg.*"); STATIC_CONSTANT DESCRIPTOR(getmsg_nam,"getmsg"); struct descriptor_d filnam = {0, DTYPE_T, CLASS_D, 0}; int i; char *facnam, *msgnam, *msgtext; int status = 0; void *ctx = 0; const STATIC_CONSTANT char *severity[] = {"W","S","E","I","F","?","?","?"}; int (*getmsg)(int,char **,char **,char **); int max; struct stsText *stsText; if (sts == 1) { strcpy((MdsShrGetThreadStatic())->MdsGetMsg_text,"%SS-S-SUCCESS, Success"); return (MdsShrGetThreadStatic())->MdsGetMsg_text; } max = getFacility(sts,&facnam,&stsText); if (max > 0) { for (i=0 ; i<max ; i++) { if ((sts & 0xfffffff8) == (stsText[i].stsL_num & 0xfffffff8)) { sprintf((MdsShrGetThreadStatic())->MdsGetMsg_text,"%%%s-%s-%s, %s",facnam,severity[sts&0x7],stsText[i].stsA_name,stsText[i].stsA_text); break; } } if (i == max) sprintf((MdsShrGetThreadStatic())->MdsGetMsg_text,"%%%s-%s-NOMSG, Message number 0x%08x",facnam,severity[sts&0x7],sts); status = 1; } while (!(status & 1) && (LibFindFile(&msg_files,&filnam,&ctx)&1)) { status = LibFindImageSymbol(&filnam,&getmsg_nam,&getmsg); if (status & 1) { status = (*getmsg)(sts,&facnam,&msgnam,&msgtext); if (status & 1) sprintf((MdsShrGetThreadStatic())->MdsGetMsg_text,"%%%s-%s-%s, %s",facnam,severity[sts&0x7],msgnam,msgtext); } } LibFindFileEnd(&ctx); if (!(status & 1)) sprintf((MdsShrGetThreadStatic())->MdsGetMsg_text,"%%NONAME-%s-NOMSG, Message number 0x%08X",severity[sts&0x7],sts); return (MdsShrGetThreadStatic())->MdsGetMsg_text; }
void fe_init_log_setting(void){ vs_log_control(VS_LOG_SETFACILITY, (void *)(unint)getFacility(fe_config.syslog_facility, /* test */ 0), (void *)0, (void *)0); vs_log_control(VS_LOG_SETMASK, fe_log_masks,(void*)(uintn)fe_config.log_level, (void *)(unint)fe_log_to_console); if(strlen(fe_config.name) > 0) vs_log_control(VS_LOG_SETSYSLOGNAME, (void *)fe_config.name, (void *)0, (void *)0); else vs_log_control(VS_LOG_SETSYSLOGNAME, (void *)"fm_fe", (void *)0, (void *)0); if(strlen(fe_config.log_file) > 0) { vs_log_control(VS_LOG_SETOUTPUTFILE, (void *)fe_config.log_file, (void *)0, (void *)0); if(fe_config.log_level > 0) oib_set_err(vs_log_get_logfile_fd()); else oib_set_err(NULL); if(fe_config.log_level > 2) oib_set_dbg(vs_log_get_logfile_fd()); else oib_set_dbg(NULL); } else { vs_log_control(VS_LOG_SETOUTPUTFILE, (void *)0, (void *)0, (void *)0); if(fe_config.log_level > 0) oib_set_err(OIB_DBG_FILE_SYSLOG); else oib_set_err(NULL); if(fe_config.log_level > 2) oib_set_dbg(OIB_DBG_FILE_SYSLOG); else oib_set_dbg(NULL); } vs_log_set_log_mode(fe_config.syslog_mode); vs_log_control(VS_LOG_STARTSYSLOG, (void *)0, (void *)0, (void *)0); vs_init_coredump_settings("FE", fe_config.CoreDumpLimit, fe_config.CoreDumpDir); // Now that FE is its own process, do not have access to the SM's anti-spoofing switch // Default to enabled. (void)rmpp_sma_spoofing_check_set(1); }