Add the DragonFly cvs id and perform general cleanups on cvs/rcs/sccs ids. Most
[dragonfly.git] / usr.sbin / atm / atmarpd / atmarp_log.c
1 /*
2  *
3  * ===================================
4  * HARP  |  Host ATM Research Platform
5  * ===================================
6  *
7  *
8  * This Host ATM Research Platform ("HARP") file (the "Software") is
9  * made available by Network Computing Services, Inc. ("NetworkCS")
10  * "AS IS".  NetworkCS does not provide maintenance, improvements or
11  * support of any kind.
12  *
13  * NETWORKCS MAKES NO WARRANTIES OR REPRESENTATIONS, EXPRESS OR IMPLIED,
14  * INCLUDING, BUT NOT LIMITED TO, IMPLIED WARRANTIES OF MERCHANTABILITY
15  * AND FITNESS FOR A PARTICULAR PURPOSE, AS TO ANY ELEMENT OF THE
16  * SOFTWARE OR ANY SUPPORT PROVIDED IN CONNECTION WITH THIS SOFTWARE.
17  * In no event shall NetworkCS be responsible for any damages, including
18  * but not limited to consequential damages, arising from or relating to
19  * any use of the Software or related support.
20  *
21  * Copyright 1994-1998 Network Computing Services, Inc.
22  *
23  * Copies of this Software may be made, however, the above copyright
24  * notice must be reproduced on all copies.
25  *
26  *      @(#) $FreeBSD: src/usr.sbin/atm/atmarpd/atmarp_log.c,v 1.3 1999/08/28 01:15:30 peter Exp $
27  *      @(#) $DragonFly: src/usr.sbin/atm/atmarpd/atmarp_log.c,v 1.2 2003/06/17 04:29:52 dillon Exp $
28  */
29
30
31 /*
32  * Server Cache Synchronization Protocol (SCSP) Support
33  * ----------------------------------------------------
34  *
35  * SCSP-ATMARP server interface: logging routines
36  *
37  */
38
39 #include <sys/types.h>
40 #include <sys/param.h>
41 #include <sys/socket.h>
42 #include <net/if.h>
43 #include <netinet/in.h>
44 #include <netatm/queue.h>
45 #include <netatm/atm.h>
46 #include <netatm/atm_if.h>
47 #include <netatm/atm_sap.h>
48 #include <netatm/atm_sys.h>
49 #include <netatm/atm_ioctl.h>
50  
51 #include <errno.h>
52 #include <libatm.h>
53 #if __STDC__
54 #include <stdarg.h>
55 #else
56 #include <varargs.h>
57 #endif
58 #include <stdio.h>
59 #include <syslog.h>
60
61 #include "../scspd/scsp_msg.h"
62 #include "../scspd/scsp_if.h"
63 #include "../scspd/scsp_var.h"
64 #include "atmarp_var.h"
65
66 /*
67  * Write a message to atmarpd's log
68  *
69  * Arguments:
70  *      level   the level (error, info, etc.) of the message
71  *      fmt     printf-style format string
72  *      ...     parameters for printf-style use according to fmt
73  *
74  * Returns:
75  *      none
76  *
77  */
78 void
79 #if __STDC__
80 atmarp_log(const int level, const char *fmt, ...)
81 #else
82 atmarp_log(level, fmt, va_alist)
83         int     level;
84         char    *fmt;
85         va_dcl
86 #endif
87 {
88         va_list ap;
89
90 #if __STDC__
91         va_start(ap, fmt);
92 #else
93         va_start(ap);
94 #endif
95
96         /*
97          * In debug mode, just write to stdout
98          */
99         if (atmarp_debug_mode) {
100                 vprintf(fmt, ap);
101                 printf("\n");
102                 return;
103         }
104
105         /*
106          * Check whether we have a log file set up
107          */
108         if (!atmarp_log_file) {
109                 /*
110                  * Write to syslog
111                  */
112                 vsyslog(level, fmt, ap);
113         } else {
114                 /*
115                  * Write to the log file
116                  */
117                 vfprintf(atmarp_log_file, fmt, ap);
118                 fprintf(atmarp_log_file, "\n");
119         }
120
121         va_end(ap);
122 }
123
124
125 /*
126  * Log a memory error and exit
127  *
128  * Arguments:
129  *      cp      message to log
130  *
131  * Returns:
132  *      exits, does not return
133  *
134  */
135 void
136 atmarp_mem_err(cp)
137         char    *cp;
138 {
139         atmarp_log(LOG_CRIT, "out of memory: %s", cp);
140         exit(2);
141 }