167761Smsmith/** 267761Smsmith * error.c 367761Smsmith * 467761Smsmith * error reporting routines 567761Smsmith * basicly wrappers around printf 667761Smsmith * 767761Smsmith * (c) 2005 NLnet Labs 867761Smsmith * 967761Smsmith * See the file LICENSE for the license 1067761Smsmith * 1167761Smsmith */ 1267761Smsmith 1367761Smsmith#include "drill.h" 1467761Smsmith#include <ldns/ldns.h> 1567761Smsmith 1667761Smsmithstatic void 1767761Smsmithwarning_va_list(const char *fmt, va_list args) 1867761Smsmith{ 1967761Smsmith fprintf(stderr, "Warning: "); 2067761Smsmith vfprintf(stderr, fmt, args); 2167761Smsmith fprintf(stderr, "\n"); 2267761Smsmith} 2367761Smsmith 2467761Smsmithvoid 2567761Smsmithwarning(const char *fmt, ...) 2667761Smsmith{ 2767761Smsmith va_list args; 2867761Smsmith va_start(args, fmt); 2967761Smsmith warning_va_list(fmt, args); 3067761Smsmith va_end(args); 3167761Smsmith} 3267761Smsmith 3367761Smsmithstatic void 3467761Smsmitherror_va_list(const char *fmt, va_list args) 3567761Smsmith{ 3667761Smsmith fprintf(stderr, "Error: "); 3767761Smsmith vfprintf(stderr, fmt, args); 3867761Smsmith fprintf(stderr, "\n"); 3969744Smsmith} 4069744Smsmith 4169744Smsmithvoid 4269744Smsmitherror(const char *fmt, ...) 4369744Smsmith{ 4469744Smsmith va_list args; 4567761Smsmith va_start(args, fmt); 4667761Smsmith error_va_list(fmt, args); 4767761Smsmith va_end(args); 4867761Smsmith exit(EXIT_FAILURE); 4967761Smsmith} 5067761Smsmith 5167761Smsmithstatic void 5267761Smsmithverbose_va_list(const char *fmt, va_list args) 5367761Smsmith{ 5470271Stakawata vfprintf(stdout, fmt, args); 5567761Smsmith fprintf(stdout, "\n"); 5667761Smsmith} 5767761Smsmith 5867761Smsmith/* print stuff */ 5967761Smsmithvoid 6067761Smsmithmesg(const char *fmt, ...) 6167761Smsmith{ 6267761Smsmith va_list args; 6367761Smsmith if (verbosity == -1) { 6467761Smsmith return; 6567761Smsmith } 6667761Smsmith fprintf(stdout, ";; "); 6767761Smsmith va_start(args, fmt); 6867761Smsmith verbose_va_list(fmt, args); 6967761Smsmith va_end(args); 7067761Smsmith} 7167761Smsmith 7267761Smsmith/* print stuff when in verbose mode (1) */ 7367761Smsmithvoid 7467761Smsmithverbose(const char *fmt, ...) 7569744Smsmith{ 7669744Smsmith va_list args; 7769744Smsmith if (verbosity < 1) { 7869744Smsmith return; 7969744Smsmith } 8067761Smsmith 8169744Smsmith va_start(args, fmt); 8267761Smsmith verbose_va_list(fmt, args); 8369744Smsmith va_end(args); 8467761Smsmith} 8570271Stakawata 8670271Stakawata/* print stuff when in vverbose mode (2) */ 8770271Stakawatavoid 8870271Stakawatavverbose(const char *fmt, ...) 8970271Stakawata{ 9070271Stakawata va_list args; 9170271Stakawata if (verbosity < 2) { 9270271Stakawata return; 9370271Stakawata } 9470271Stakawata 9570271Stakawata va_start(args, fmt); 9670271Stakawata verbose_va_list(fmt, args); 9770271Stakawata va_end(args); 9870271Stakawata} 9970271Stakawata 10070271Stakawatastatic void 10170271Stakawatadebug_va_list(const char *fmt, va_list args) 10270271Stakawata{ 10370271Stakawata vfprintf(stderr, fmt, args); 10470271Stakawata fprintf(stderr, "\n"); 10570271Stakawata} 10670271Stakawata 10767761Smsmithvoid 10870271Stakawatadebug(const char *fmt, ...) 10970271Stakawata{ 11070271Stakawata va_list args; 11170271Stakawata fprintf(stderr, "[DEBUG] "); 11270271Stakawata va_start(args, fmt); 11370271Stakawata debug_va_list(fmt, args); 11470271Stakawata va_end(args); 11570271Stakawata} 11670271Stakawata