X-Git-Url: https://git.tcpdump.org/tcpdump/blobdiff_plain/a1dadfb1bc7951c409c0f453321b9171bb8607b6..e01c9bf76740802025c9328901b55ee4a0c49ed6:/print.c diff --git a/print.c b/print.c index 9fedd9fb..c76f3441 100644 --- a/print.c +++ b/print.c @@ -226,23 +226,16 @@ static const struct printer printers[] = { static void ndo_default_print(netdissect_options *ndo, const u_char *bp, u_int length); -static void ndo_error(netdissect_options *ndo _U_, const char *fmt, ...) - __attribute__((noreturn)) -#ifdef __ATTRIBUTE___FORMAT_OK - __attribute__((format (printf, 2, 3))) -#endif /* __ATTRIBUTE___FORMAT_OK */ - ; -static void ndo_warning(netdissect_options *ndo _U_, const char *fmt, ...) -#ifdef __ATTRIBUTE___FORMAT_OK - __attribute__((format (printf, 2, 3))) -#endif /* __ATTRIBUTE___FORMAT_OK */ - ; - -static int ndo_printf(netdissect_options *ndo _U_, const char *fmt, ...) -#ifdef __ATTRIBUTE___FORMAT_OK - __attribute ((format (printf, 2, 3))) -#endif /* __ATTRIBUTE___FORMAT_OK */ - ; +static void ndo_error(netdissect_options *ndo, + FORMAT_STRING(const char *fmt), ...) + NORETURN PRINTFLIKE(2, 3); +static void ndo_warning(netdissect_options *ndo, + FORMAT_STRING(const char *fmt), ...) + PRINTFLIKE(2, 3); + +static int ndo_printf(netdissect_options *ndo, + FORMAT_STRING(const char *fmt), ...) + PRINTFLIKE(2, 3); void init_print(netdissect_options *ndo, uint32_t localnet, uint32_t mask, @@ -401,7 +394,7 @@ pretty_print_packet(netdissect_options *ndo, const struct pcap_pkthdr *h, } } - putchar('\n'); + ND_PRINT((ndo, "\n")); } /* @@ -429,6 +422,7 @@ ndo_error(netdissect_options *ndo, const char *fmt, ...) if (fmt[-1] != '\n') (void)fputc('\n', stderr); } + nd_cleanup(); exit(1); /* NOTREACHED */ } @@ -453,7 +447,7 @@ ndo_warning(netdissect_options *ndo, const char *fmt, ...) } static int -ndo_printf(netdissect_options *ndo _U_, const char *fmt, ...) +ndo_printf(netdissect_options *ndo, const char *fmt, ...) { va_list args; int ret;