openalbridge/errlib.c
changeset 2529 51e5df1c8462
parent 2444 ace11b7d8eab
equal deleted inserted replaced
2528:a1e0306b9cd1 2529:51e5df1c8462
     8  
     8  
     9  */
     9  */
    10 
    10 
    11 #include "errlib.h"
    11 #include "errlib.h"
    12 
    12 
       
    13 
    13 #define MAXLINE 4095
    14 #define MAXLINE 4095
    14 
    15 
    15 int daemon_proc = 0; /* set to 0 if stdout/stderr available, else set to 1 */
    16 #ifdef __CPLUSPLUS
    16 
    17 extern "C" {
    17 static void err_doit (int errnoflag, int level, const char *fmt, va_list ap)
    18 #endif 
    18 {
       
    19         int errno_save = errno, n;
       
    20         char buf[MAXLINE+1];
       
    21         
    19         
    22         vsnprintf (buf, MAXLINE, fmt, ap);
    20         int daemon_proc = 0; /* set to 0 if stdout/stderr available, else set to 1 */
    23         n = strlen(buf);
       
    24         if (errnoflag)
       
    25                 snprintf (buf+n, MAXLINE-n, ": %s", strerror(errno_save));
       
    26         strcat (buf, "\n");
       
    27         
    21         
    28         if (daemon_proc)
    22         static void err_doit (int errnoflag, int level, const char *fmt, va_list ap)
    29                 syslog (level, buf);
    23         {
    30         else {
    24                 int errno_save = errno, n;
    31                 fflush (stdout);
    25                 char buf[MAXLINE+1];
    32                 fprintf (stderr, buf);
    26                 
    33                 fflush (stderr);
    27                 vsnprintf (buf, MAXLINE, fmt, ap);
       
    28                 n = strlen(buf);
       
    29                 if (errnoflag)
       
    30                         snprintf (buf+n, MAXLINE-n, ": %s", strerror(errno_save));
       
    31                 strcat (buf, "\n");
       
    32                 
       
    33                 if (daemon_proc)
       
    34                         syslog (level, buf);
       
    35                 else {
       
    36                         fflush (stdout);
       
    37                         fprintf (stderr, buf);
       
    38                         fflush (stderr);
       
    39                 }
       
    40                 
       
    41                 return;
    34         }
    42         }
    35         
    43         
    36         return;
    44         void err_ret (const char *fmt, ...)
       
    45         {
       
    46                 va_list ap;
       
    47                 
       
    48                 va_start (ap, fmt);
       
    49                 err_doit (1, LOG_INFO, fmt, ap);
       
    50                 va_end (ap);
       
    51                 return;
       
    52         }
       
    53         
       
    54         void err_sys (const char *fmt, ...)
       
    55         {
       
    56                 va_list ap;
       
    57                 
       
    58                 va_start (ap, fmt);
       
    59                 err_doit (1, LOG_ERR, fmt, ap);
       
    60                 va_end (ap);
       
    61                 exit (1);
       
    62         }
       
    63         
       
    64         void err_msg (const char *fmt, ...)
       
    65         {
       
    66                 va_list ap;
       
    67                 
       
    68                 va_start (ap, fmt);
       
    69                 err_doit (0, LOG_INFO, fmt, ap);
       
    70                 va_end (ap);
       
    71                 return;
       
    72         }
       
    73         
       
    74         void err_quit (const char *fmt, ...)
       
    75         {
       
    76                 va_list ap;
       
    77                 
       
    78                 va_start (ap, fmt);
       
    79                 err_doit (0, LOG_ERR, fmt, ap);
       
    80                 va_end (ap);
       
    81                 exit (1);
       
    82         }
       
    83         
       
    84         void err_dump (const char *fmt, ...)
       
    85         {
       
    86                 va_list ap;
       
    87                 
       
    88                 va_start (ap, fmt);
       
    89                 err_doit (1, LOG_ERR, fmt, ap);
       
    90                 va_end (ap);
       
    91                 abort();
       
    92         }
       
    93         
       
    94 #ifdef __CPLUSPLUS
    37 }
    95 }
    38 
    96 #endif
    39 void err_ret (const char *fmt, ...)
       
    40 {
       
    41         va_list ap;
       
    42         
       
    43         va_start (ap, fmt);
       
    44         err_doit (1, LOG_INFO, fmt, ap);
       
    45         va_end (ap);
       
    46         return;
       
    47 }
       
    48 
       
    49 void err_sys (const char *fmt, ...)
       
    50 {
       
    51         va_list ap;
       
    52         
       
    53         va_start (ap, fmt);
       
    54         err_doit (1, LOG_ERR, fmt, ap);
       
    55         va_end (ap);
       
    56         exit (1);
       
    57 }
       
    58 
       
    59 void err_msg (const char *fmt, ...)
       
    60 {
       
    61         va_list ap;
       
    62         
       
    63         va_start (ap, fmt);
       
    64         err_doit (0, LOG_INFO, fmt, ap);
       
    65         va_end (ap);
       
    66         return;
       
    67 }
       
    68 
       
    69 void err_quit (const char *fmt, ...)
       
    70 {
       
    71         va_list ap;
       
    72         
       
    73         va_start (ap, fmt);
       
    74         err_doit (0, LOG_ERR, fmt, ap);
       
    75         va_end (ap);
       
    76         exit (1);
       
    77 }
       
    78 
       
    79 void err_dump (const char *fmt, ...)
       
    80 {
       
    81         va_list ap;
       
    82         
       
    83         va_start (ap, fmt);
       
    84         err_doit (1, LOG_ERR, fmt, ap);
       
    85         va_end (ap);
       
    86         abort();
       
    87 }
       
    88