libspf2 1.2.11
spf_log.c
Go to the documentation of this file.
1/*
2 * This program is free software; you can redistribute it and/or modify
3 * it under the terms of either:
4 *
5 * a) The GNU Lesser General Public License as published by the Free
6 * Software Foundation; either version 2.1, or (at your option) any
7 * later version,
8 *
9 * OR
10 *
11 * b) The two-clause BSD license.
12 *
13 * These licenses can be found with the distribution in the file LICENSES
14 */
15
16
17#include "spf_sys_config.h"
18
19
20#ifdef STDC_HEADERS
21# include <stdlib.h> /* malloc / free */
22# include <stdarg.h>
23# include <stdio.h>
24#endif
25
26#include "spf.h"
27#include "spf_internal.h"
28
29
30/*
31 * standard expanded error formating routines
32 */
33
34void
35SPF_errorx( const char *file, int line, const char *format, ... )
36{
37 char errmsg[SPF_SYSLOG_SIZE];
38 va_list ap;
39
41 abort();
42
43 va_start(ap, format);
44 vsnprintf(errmsg, sizeof(errmsg), format, ap);
45 va_end(ap);
46
47 SPF_error_handler(file, line, errmsg);
48 abort();
49}
50
51
52void
53SPF_warningx( const char *file, int line, const char *format, ... )
54{
55 char errmsg[SPF_SYSLOG_SIZE];
56 va_list ap;
57
59 return;
60
61 va_start(ap, format);
62 vsnprintf(errmsg, sizeof(errmsg), format, ap);
63 va_end(ap);
64
65 SPF_warning_handler(file, line, errmsg);
66}
67
68
69void
70SPF_infox( const char *file, int line, const char *format, ... )
71{
72 char errmsg[SPF_SYSLOG_SIZE];
73 va_list ap;
74
76 return;
77
78 va_start(ap, format);
79 vsnprintf(errmsg, sizeof(errmsg), format, ap);
80 va_end(ap);
81
82 SPF_info_handler(file, line, errmsg);
83}
84
85
86void
87SPF_debugx( const char *file, int line, const char *format, ... )
88{
89 char errmsg[SPF_SYSLOG_SIZE];
90 va_list ap;
91
93 return;
94
95 va_start(ap, format);
96 vsnprintf(errmsg, sizeof(errmsg), format, ap);
97 va_end(ap);
98
99 SPF_debug_handler(file, line, errmsg);
100}
101
102
103
104/*
105 * error reporting routines that accept a va_list
106 */
107
108void
109SPF_errorv(const char *file, int line, const char *format, va_list ap)
110{
111 char errmsg[SPF_SYSLOG_SIZE];
112
113 if (SPF_error_handler == NULL)
114 abort();
115
116 vsnprintf(errmsg, sizeof(errmsg), format, ap);
117 SPF_error_handler( file, line, errmsg );
118
119 abort();
120}
121
122
123void
124SPF_warningv(const char *file, int line, const char *format, va_list ap)
125{
126 char errmsg[SPF_SYSLOG_SIZE];
127
129 return;
130
131 vsnprintf(errmsg, sizeof(errmsg), format, ap);
132 SPF_warning_handler(file, line, errmsg);
133}
134
135
136void
137SPF_infov(const char *file, int line, const char *format, va_list ap)
138{
139 char errmsg[SPF_SYSLOG_SIZE];
140
141 if (SPF_info_handler == NULL)
142 return;
143
144 vsnprintf(errmsg, sizeof(errmsg), format, ap);
145 SPF_info_handler(file, line, errmsg);
146}
147
148
149void
150SPF_debugv(const char *file, int line, const char *format, va_list ap)
151{
152 char errmsg[SPF_SYSLOG_SIZE];
153
154 if (SPF_debug_handler == NULL)
155 return;
156
157 vsnprintf(errmsg, sizeof(errmsg), format, ap);
158 SPF_debug_handler(file, line, errmsg);
159}
160
161
162/*
163 * reporting routines for braindead compilers
164 */
165
166void
167SPF_errorx2(const char *format, ...)
168{
169 va_list ap;
170 va_start(ap, format);
171 SPF_errorv(NULL, 0, format, ap);
172 va_end(ap);
173}
174
175void
176SPF_warningx2(const char *format, ...)
177{
178 va_list ap;
179 va_start(ap, format);
180 SPF_warningv(NULL, 0, format, ap);
181 va_end(ap);
182}
183
184void
185SPF_infox2(const char *format, ...)
186{
187 va_list ap;
188 va_start(ap, format);
189 SPF_infov(NULL, 0, format, ap);
190 va_end(ap);
191}
192
193void
194SPF_debugx2(const char *format, ...)
195{
196 va_list ap;
197 va_start(ap, format);
198 SPF_debugv(NULL, 0, format, ap);
199 va_end(ap);
200}
#define SPF_SYSLOG_SIZE
Definition spf.h:49
void(* SPF_warning_handler)(const char *, int, const char *)
void(* SPF_debug_handler)(const char *, int, const char *)
void(* SPF_info_handler)(const char *, int, const char *)
void(* SPF_error_handler)(const char *, int, const char *) __attribute__((noreturn))
#define NULL
void SPF_infov(const char *file, int line, const char *format, va_list ap)
Definition spf_log.c:137
void SPF_warningv(const char *file, int line, const char *format, va_list ap)
Definition spf_log.c:124
void SPF_debugx2(const char *format,...)
Definition spf_log.c:194
void SPF_debugx(const char *file, int line, const char *format,...)
Definition spf_log.c:87
void SPF_warningx2(const char *format,...)
Definition spf_log.c:176
void SPF_errorx(const char *file, int line, const char *format,...)
Definition spf_log.c:35
void SPF_errorx2(const char *format,...)
Definition spf_log.c:167
void SPF_infox2(const char *format,...)
Definition spf_log.c:185
void SPF_errorv(const char *file, int line, const char *format, va_list ap)
Definition spf_log.c:109
void SPF_debugv(const char *file, int line, const char *format, va_list ap)
Definition spf_log.c:150
void SPF_infox(const char *file, int line, const char *format,...)
Definition spf_log.c:70
void SPF_warningx(const char *file, int line, const char *format,...)
Definition spf_log.c:53