1 /**
2 * error.c
3 *
4 * error reporting routines
5 * basically wrappers around printf
6 *
7 * (c) 2005 NLnet Labs
8 *
9 * See the file LICENSE for the license
10 *
11 */
12
13 #include "drill.h"
14 #include <ldns/ldns.h>
15
16 static void
warning_va_list(const char * fmt,va_list args)17 warning_va_list(const char *fmt, va_list args)
18 {
19 fprintf(stderr, "Warning: ");
20 vfprintf(stderr, fmt, args);
21 fprintf(stderr, "\n");
22 }
23
24 void
warning(const char * fmt,...)25 warning(const char *fmt, ...)
26 {
27 va_list args;
28 va_start(args, fmt);
29 warning_va_list(fmt, args);
30 va_end(args);
31 }
32
33 static void
error_va_list(const char * fmt,va_list args)34 error_va_list(const char *fmt, va_list args)
35 {
36 fprintf(stderr, "Error: ");
37 vfprintf(stderr, fmt, args);
38 fprintf(stderr, "\n");
39 }
40
41 void
error(const char * fmt,...)42 error(const char *fmt, ...)
43 {
44 va_list args;
45 va_start(args, fmt);
46 error_va_list(fmt, args);
47 va_end(args);
48 exit(EXIT_FAILURE);
49 }
50
51 static void
verbose_va_list(const char * fmt,va_list args)52 verbose_va_list(const char *fmt, va_list args)
53 {
54 vfprintf(stdout, fmt, args);
55 fprintf(stdout, "\n");
56 }
57
58 /* print stuff */
59 void
mesg(const char * fmt,...)60 mesg(const char *fmt, ...)
61 {
62 va_list args;
63 if (verbosity == -1) {
64 return;
65 }
66 fprintf(stdout, ";; ");
67 va_start(args, fmt);
68 verbose_va_list(fmt, args);
69 va_end(args);
70 }
71
72 #if 0
73 /* print stuff when in verbose mode (1) */
74 void
75 verbose(const char *fmt, ...)
76 {
77 va_list args;
78 if (verbosity < 1) {
79 return;
80 }
81
82 va_start(args, fmt);
83 verbose_va_list(fmt, args);
84 va_end(args);
85 }
86 #endif
87