Ignore:
File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/sh_error.c

    r20 r27  
    102102/* convert a string to a numeric priority
    103103 */
    104 int sh_error_convert_level (char * str_s);
     104int sh_error_convert_level (const char * str_s);
    105105
    106106static int  IsInitialized = BAD;
     
    219219}
    220220
    221 static int sh_error_set_classmask (/*@notnull@*/char * c, int * facility_mask)
     221static int sh_error_set_classmask (const char * str, int * facility_mask)
    222222{
    223223  char * p;
     
    225225  unsigned int    i;
    226226  size_t len;
     227  char * c;
    227228
    228229  SL_ENTER(_("sh_error_set_classmask"));
    229230 
    230   if (c == NULL)
     231  if (str == NULL)
    231232    SL_RETURN( -1, _("sh_error_set_classmask"));
    232233
     
    234235    (void) sh_error_init();
    235236
    236   if (c[0] == (char) 34)
    237     ++c;
    238   len = strlen(c);
     237  if (str[0] == (char) 34)
     238    ++str;
     239  len = strlen(str);
     240
     241  c = SH_ALLOC(len+1);
     242  sl_strlcpy(c, str, len+1);
     243
    239244  if (c[len-1] == (char) 34)
    240245    c[len-1] = '\0';
     
    273278  } while (p);
    274279
     280  SH_FREE(c);
    275281  SL_RETURN( 0, _("sh_error_set_classmask"));
    276282}
    277283
    278 int sh_error_log_mask (char * c)
     284int sh_error_log_mask (const char * c)
    279285{
    280286  return (sh_error_set_classmask(c, &(errFlags.log_class)));
    281287}
    282 int sh_error_mail_mask (char * c)
     288int sh_error_mail_mask (const char * c)
    283289{
    284290  return (sh_error_set_classmask(c, &(errFlags.mail_class)));
    285291}
    286 int sh_error_print_mask (char * c)
     292int sh_error_print_mask (const char * c)
    287293{
    288294  return (sh_error_set_classmask(c, &(errFlags.print_class)));
    289295}
    290 int sh_error_export_mask (char * c)
     296int sh_error_export_mask (const char * c)
    291297{
    292298  return (sh_error_set_classmask(c, &(errFlags.export_class)));
    293299}
    294 int sh_error_syslog_mask (char * c)
     300int sh_error_syslog_mask (const char * c)
    295301{
    296302  return (sh_error_set_classmask(c, &(errFlags.syslog_class)));
    297303}
    298 int sh_error_external_mask (char * c)
     304int sh_error_external_mask (const char * c)
    299305{
    300306  return (sh_error_set_classmask(c, &(errFlags.external_class)));
    301307}
    302 int sh_error_database_mask (char * c)
     308int sh_error_database_mask (const char * c)
    303309{
    304310  return (sh_error_set_classmask(c, &(errFlags.database_class)));
    305311}
    306 int sh_error_prelude_mask (char * c)
     312int sh_error_prelude_mask (const char * c)
    307313{
    308314  return (sh_error_set_classmask(c, &(errFlags.prelude_class)));
     
    446452};
    447453
    448 int sh_error_convert_level (char * str_s)
     454int sh_error_convert_level (const char * str_s)
    449455{
    450456  int i;
     
    472478/* --- Set severity levels. ---
    473479 */
    474 int sh_error_set_iv (int iv, char *  str_s)
     480int sh_error_set_iv (int iv, const char *  str_s)
    475481{
    476482  int level = (-1);
     
    633639}
    634640
    635 #ifdef SH_WITH_CLIENT
     641#if defined(SH_WITH_CLIENT) || defined(SH_WITH_SERVER)
    636642/* set severity for TCP export
    637643 */
     
    837843#endif
    838844
    839 #ifdef SH_WITH_CLIENT
     845#if defined(SH_WITH_CLIENT) || defined(SH_WITH_SERVER)
    840846  char   * ex_msg;
    841847#endif
     
    856862  static int syslog_block = 0;
    857863  static int log_block    = 0;
    858 #if defined(SH_WITH_CLIENT)
     864#if defined(SH_WITH_CLIENT) || defined(SH_WITH_SERVER)
    859865  static int export_block = 0;
    860866#endif
     
    920926    severity = sev;
    921927
     928  /* these are messages from remote sources
     929   */
    922930  if ((severity  & SH_ERR_INET) != 0)
    923931    {
     
    933941       ( (errFlags.sysloglevel  & severity    ) == 0 ||
    934942         (errFlags.syslog_class & (1 << class)) == 0 )     &&
    935 #ifdef SH_WITH_CLIENT
     943#if defined(SH_WITH_CLIENT) || defined(SH_WITH_CLIENT)
    936944       ( (errFlags.exportlevel  & severity    ) == 0 ||
    937945         (errFlags.export_class & (1 << class)) == 0 )     &&
     
    952960         (errFlags.mail_class    & (1 << class)) == 0 )
    953961#ifdef SH_WITH_SERVER
    954       && (flag_inet == S_FALSE)
     962       && (flag_inet == S_FALSE) /* still log messages from remote sources */
    955963#endif
    956964       )
     
    11131121       * to log server
    11141122       ****************************************************/
    1115 #ifdef SH_WITH_CLIENT
     1123#if defined(SH_WITH_CLIENT) || defined(SH_WITH_SERVER)
    11161124      /* Export by TCP.
    11171125       */
    1118       if ((errFlags.exportlevel  & severity  )   != 0 &&
    1119           (errFlags.export_class & (1 << class)) != 0 &&
    1120           (errFlags.exportlevel  & SH_ERR_NOT)   == 0 &&
    1121           class != AUD                                &&
    1122           sh.flag.isserver != GOOD                    &&
    1123           (flag_inet == S_FALSE) ) /* don't log inet to export */
     1126
     1127      if ( ((errFlags.exportlevel  & severity  )   != 0 &&
     1128            (errFlags.export_class & (1 << class)) != 0 &&
     1129            (errFlags.exportlevel  & SH_ERR_NOT)   == 0 &&
     1130            class != AUD                               )
     1131#ifdef SH_WITH_SERVER
     1132           || (flag_inet == S_TRUE) /* always log inet to export */
     1133#endif
     1134          /* sh.flag.isserver != GOOD                    && */
     1135          /* (flag_inet == S_FALSE) */ /* don't log inet to export */
     1136           )
    11241137        {
    11251138          if (export_block == 0)
    11261139            {
    11271140              int retval;
     1141              size_t ex_len;
    11281142
    11291143              /* will truncate to 65280 bytes
    11301144               */
    11311145              export_block = 1;
    1132               ex_msg = SH_ALLOC (64 + sl_strlen(lmsg->msg) + 1);
    1133               /*@-bufferoverflowhigh@*/
    1134               sprintf(ex_msg, _("%d?%u?%s"),             /* known to fit  */
    1135                            severity, class, lmsg->msg);
    1136               /*@-bufferoverflowhigh@*/
     1146              ex_len = 64 + sl_strlen(lmsg->msg) + 1;
     1147              ex_msg = SH_ALLOC (ex_len);
     1148
     1149              sl_snprintf(ex_msg, ex_len, _("%d?%u?%s"),
     1150                      severity, class, lmsg->msg);
    11371151              retval = sh_forward (ex_msg);
    11381152              SH_FREE(ex_msg);
     
    13061320/* allocate space for user-defined message header
    13071321 */
    1308 int sh_error_ehead (/*@null@*/char * str_s)
     1322int sh_error_ehead (/*@null@*/const char * str_s)
    13091323{
    13101324  size_t size;
    1311   char * s;
     1325  const char * s;
    13121326
    13131327  SL_ENTER(_("sh_error_ehead"));
     
    13241338 
    13251339  size = /*@i@*/strlen(s);
    1326   if (/*@i@*/s[size-1] == (char) 34) --size;
     1340  if (/*@i@*/s[size-1] == (char) 34) --size; /* truncate */
    13271341
    13281342  if (ehead_format != NULL)
     
    14821496      len      = sl_strlen(lmsg->msg);
    14831497      /*@i@*/required = sl_vsnprintf(&(lmsg->msg[len]),
    1484                               (lmsg->msg_len - len), lmsg->format, vl);
     1498                                     (lmsg->msg_len - len), lmsg->format, vl);
    14851499      if ( (required + len) > (lmsg->msg_len - 4) )
    14861500        {
Note: See TracChangeset for help on using the changeset viewer.