1238104Sdes/**
2238104Sdes * error.c
3238104Sdes *
4238104Sdes * error reporting routines
5238104Sdes * basicly wrappers around printf
6238104Sdes *
7238104Sdes * (c) 2005 NLnet Labs
8238104Sdes *
9238104Sdes * See the file LICENSE for the license
10238104Sdes *
11238104Sdes */
12238104Sdes
13238104Sdes#include "drill.h"
14238104Sdes#include <ldns/ldns.h>
15238104Sdes
16238104Sdesstatic void
17238104Sdeswarning_va_list(const char *fmt, va_list args)
18238104Sdes{
19238104Sdes        fprintf(stderr, "Warning: ");
20238104Sdes        vfprintf(stderr, fmt, args);
21238104Sdes        fprintf(stderr, "\n");
22238104Sdes}
23238104Sdes
24238104Sdesvoid
25238104Sdeswarning(const char *fmt, ...)
26238104Sdes{
27238104Sdes	va_list args;
28238104Sdes	va_start(args, fmt);
29238104Sdes	warning_va_list(fmt, args);
30238104Sdes	va_end(args);
31238104Sdes}
32238104Sdes
33238104Sdesstatic void
34238104Sdeserror_va_list(const char *fmt, va_list args)
35238104Sdes{
36238104Sdes        fprintf(stderr, "Error: ");
37238104Sdes        vfprintf(stderr, fmt, args);
38238104Sdes        fprintf(stderr, "\n");
39238104Sdes}
40238104Sdes
41238104Sdesvoid
42238104Sdeserror(const char *fmt, ...)
43238104Sdes{
44238104Sdes	va_list args;
45238104Sdes	va_start(args, fmt);
46238104Sdes	error_va_list(fmt, args);
47238104Sdes	va_end(args);
48238104Sdes	exit(EXIT_FAILURE);
49238104Sdes}
50238104Sdes
51238104Sdesstatic void
52238104Sdesverbose_va_list(const char *fmt, va_list args)
53238104Sdes{
54238104Sdes        vfprintf(stdout, fmt, args);
55238104Sdes        fprintf(stdout, "\n");
56238104Sdes}
57238104Sdes
58238104Sdes/* print stuff */
59238104Sdesvoid
60238104Sdesmesg(const char *fmt, ...)
61238104Sdes{
62238104Sdes	va_list args;
63238104Sdes	if (verbosity == -1) {
64238104Sdes		return;
65238104Sdes	}
66238104Sdes	fprintf(stdout, ";; ");
67238104Sdes	va_start(args, fmt);
68238104Sdes	verbose_va_list(fmt, args);
69238104Sdes	va_end(args);
70238104Sdes}
71238104Sdes
72238104Sdes/* print stuff when in verbose mode (1) */
73238104Sdesvoid
74238104Sdesverbose(const char *fmt, ...)
75238104Sdes{
76238104Sdes	va_list args;
77238104Sdes	if (verbosity < 1) {
78238104Sdes		return;
79238104Sdes	}
80238104Sdes
81238104Sdes	va_start(args, fmt);
82238104Sdes	verbose_va_list(fmt, args);
83238104Sdes	va_end(args);
84238104Sdes}
85238104Sdes
86238104Sdes/* print stuff when in vverbose mode (2) */
87238104Sdesvoid
88238104Sdesvverbose(const char *fmt, ...)
89238104Sdes{
90238104Sdes	va_list args;
91238104Sdes	if (verbosity < 2) {
92238104Sdes		return;
93238104Sdes	}
94238104Sdes
95238104Sdes	va_start(args, fmt);
96238104Sdes	verbose_va_list(fmt, args);
97238104Sdes	va_end(args);
98238104Sdes}
99238104Sdes
100238104Sdesstatic void
101238104Sdesdebug_va_list(const char *fmt, va_list args)
102238104Sdes{
103238104Sdes        vfprintf(stderr, fmt, args);
104238104Sdes        fprintf(stderr, "\n");
105238104Sdes}
106238104Sdes
107238104Sdesvoid
108238104Sdesdebug(const char *fmt, ...)
109238104Sdes{
110238104Sdes	va_list args;
111238104Sdes	fprintf(stderr, "[DEBUG] ");
112238104Sdes	va_start(args, fmt);
113238104Sdes	debug_va_list(fmt, args);
114238104Sdes	va_end(args);
115238104Sdes}
116