Пример #1
0
	/*****************************************************************
	 * 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;
   }
Пример #2
0
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);
}