]> The Tcpdump Group git mirrors - tcpdump/blobdiff - print.c
Add program_name field in the netdissect_options structure
[tcpdump] / print.c
diff --git a/print.c b/print.c
index c7381c0a2528cb4ff8099d4ba8695c1db00c30c0..0d831daad063f3bd888c1753e541a8a9cea7821f 100644 (file)
--- a/print.c
+++ b/print.c
@@ -311,10 +311,12 @@ get_print_info(netdissect_options *ndo, int type)
        if (printinfo.printer == NULL) {
                dltname = pcap_datalink_val_to_name(type);
                if (dltname != NULL)
-                       error("packet printing is not supported for link type %s: use -w",
-                             dltname);
+                       (*ndo->ndo_error)(ndo,
+                                         "packet printing is not supported for link type %s: use -w",
+                                         dltname);
                else
-                       error("packet printing is not supported for link type %d: use -w", type);
+                       (*ndo->ndo_error)(ndo,
+                                         "packet printing is not supported for link type %d: use -w", type);
        }
        return (printinfo);
 }
@@ -420,11 +422,12 @@ ndo_default_print(netdissect_options *ndo, const u_char *bp, u_int length)
 
 /* VARARGS */
 static void
-ndo_error(netdissect_options *ndo _U_, const char *fmt, ...)
+ndo_error(netdissect_options *ndo, const char *fmt, ...)
 {
        va_list ap;
 
-       (void)fprintf(stderr, "%s: ", program_name);
+       if(ndo->program_name)
+               (void)fprintf(stderr, "%s: ", ndo->program_name);
        va_start(ap, fmt);
        (void)vfprintf(stderr, fmt, ap);
        va_end(ap);
@@ -439,11 +442,13 @@ ndo_error(netdissect_options *ndo _U_, const char *fmt, ...)
 
 /* VARARGS */
 static void
-ndo_warning(netdissect_options *ndo _U_, const char *fmt, ...)
+ndo_warning(netdissect_options *ndo, const char *fmt, ...)
 {
        va_list ap;
 
-       (void)fprintf(stderr, "%s: WARNING: ", program_name);
+       if(ndo->program_name)
+               (void)fprintf(stderr, "%s: ", ndo->program_name);
+       (void)fprintf(stderr, "WARNING: ");
        va_start(ap, fmt);
        (void)vfprintf(stderr, fmt, ap);
        va_end(ap);