dhclient - Make sure an interface is registered before we start using it.
[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.4 2007/11/25 01:28:23 swildner 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 <stdlib.h>
60 #include <syslog.h>
61
62 #include "../scspd/scsp_msg.h"
63 #include "../scspd/scsp_if.h"
64 #include "../scspd/scsp_var.h"
65 #include "atmarp_var.h"
66
67 /*
68  * Write a message to atmarpd's log
69  *
70  * Arguments:
71  *      level   the level (error, info, etc.) of the message
72  *      fmt     printf-style format string
73  *      ...     parameters for printf-style use according to fmt
74  *
75  * Returns:
76  *      none
77  *
78  */
79 void
80 atmarp_log(const int level, const char *fmt, ...)
81 {
82         va_list ap;
83
84         va_start(ap, fmt);
85
86         /*
87          * In debug mode, just write to stdout
88          */
89         if (atmarp_debug_mode) {
90                 vprintf(fmt, ap);
91                 printf("\n");
92                 return;
93         }
94
95         /*
96          * Check whether we have a log file set up
97          */
98         if (!atmarp_log_file) {
99                 /*
100                  * Write to syslog
101                  */
102                 vsyslog(level, fmt, ap);
103         } else {
104                 /*
105                  * Write to the log file
106                  */
107                 vfprintf(atmarp_log_file, fmt, ap);
108                 fprintf(atmarp_log_file, "\n");
109         }
110
111         va_end(ap);
112 }
113
114
115 /*
116  * Log a memory error and exit
117  *
118  * Arguments:
119  *      cp      message to log
120  *
121  * Returns:
122  *      exits, does not return
123  *
124  */
125 void
126 atmarp_mem_err(char *cp)
127 {
128         atmarp_log(LOG_CRIT, "out of memory: %s", cp);
129         exit(2);
130 }