]> The Tcpdump Group git mirrors - tcpdump/blobdiff - tcpdump.c
Rename a test. It's about the AppleTalk protocol
[tcpdump] / tcpdump.c
index 658d8b34ec0124ebfc289f5edbe0a49089cd9d82..4c56faf49d06a743d6eb6fab2384720d02a44d30 100644 (file)
--- a/tcpdump.c
+++ b/tcpdump.c
@@ -243,29 +243,15 @@ cap_channel_t *capdns;
 #endif
 
 /* Forwards */
-static NORETURN void error(FORMAT_STRING(const char *), ...) PRINTFLIKE(1, 2);
-static void warning(FORMAT_STRING(const char *), ...) PRINTFLIKE(1, 2);
-static NORETURN void exit_tcpdump(int);
 static void (*setsignal (int sig, void (*func)(int)))(int);
 static void cleanup(int);
 static void child_cleanup(int);
 static void print_version(FILE *);
 static void print_usage(FILE *);
-#ifdef HAVE_PCAP_SET_TSTAMP_TYPE
-static NORETURN void show_tstamp_types_and_exit(pcap_t *, const char *device);
-#endif
-static NORETURN void show_dlts_and_exit(pcap_t *, const char *device);
-#ifdef HAVE_PCAP_FINDALLDEVS
-static NORETURN void show_devices_and_exit(void);
-#endif
-#ifdef HAVE_PCAP_FINDALLDEVS_EX
-static NORETURN void show_remote_devices_and_exit(void);
-#endif
 
 static void print_packet(u_char *, const struct pcap_pkthdr *, const u_char *);
 static void dump_packet_and_trunc(u_char *, const struct pcap_pkthdr *, const u_char *);
 static void dump_packet(u_char *, const struct pcap_pkthdr *, const u_char *);
-static void droproot(const char *, const char *);
 
 #ifdef SIGNAL_REQ_INFO
 static void requestinfo(int);
@@ -372,9 +358,16 @@ extern
 void pcap_set_optimizer_debug(int);
 #endif
 
+static void NORETURN
+exit_tcpdump(const int status)
+{
+       nd_cleanup();
+       exit(status);
+}
+
 /* VARARGS */
-static void
-error(const char *fmt, ...)
+static void NORETURN PRINTFLIKE(1, 2)
+error(FORMAT_STRING(const char *fmt), ...)
 {
        va_list ap;
 
@@ -392,8 +385,8 @@ error(const char *fmt, ...)
 }
 
 /* VARARGS */
-static void
-warning(const char *fmt, ...)
+static void PRINTFLIKE(1, 2)
+warning(FORMAT_STRING(const char *fmt), ...)
 {
        va_list ap;
 
@@ -408,15 +401,8 @@ warning(const char *fmt, ...)
        }
 }
 
-static void
-exit_tcpdump(int status)
-{
-       nd_cleanup();
-       exit(status);
-}
-
 #ifdef HAVE_PCAP_SET_TSTAMP_TYPE
-static void
+static void NORETURN
 show_tstamp_types_and_exit(pcap_t *pc, const char *device)
 {
        int n_tstamp_types;
@@ -433,15 +419,15 @@ show_tstamp_types_and_exit(pcap_t *pc, const char *device)
                    device);
                exit_tcpdump(S_SUCCESS);
        }
-       fprintf(stderr, "Time stamp types for %s (use option -j to set):\n",
+       fprintf(stdout, "Time stamp types for %s (use option -j to set):\n",
            device);
        for (i = 0; i < n_tstamp_types; i++) {
                tstamp_type_name = pcap_tstamp_type_val_to_name(tstamp_types[i]);
                if (tstamp_type_name != NULL) {
-                       (void) fprintf(stderr, "  %s (%s)\n", tstamp_type_name,
+                       (void) fprintf(stdout, "  %s (%s)\n", tstamp_type_name,
                            pcap_tstamp_type_val_to_description(tstamp_types[i]));
                } else {
-                       (void) fprintf(stderr, "  %d\n", tstamp_types[i]);
+                       (void) fprintf(stdout, "  %d\n", tstamp_types[i]);
                }
        }
        pcap_free_tstamp_types(tstamp_types);
@@ -449,7 +435,7 @@ show_tstamp_types_and_exit(pcap_t *pc, const char *device)
 }
 #endif
 
-static void
+static void NORETURN
 show_dlts_and_exit(pcap_t *pc, const char *device)
 {
        int n_dlts, i;
@@ -470,28 +456,30 @@ show_dlts_and_exit(pcap_t *pc, const char *device)
         * monitor mode might be different from the ones available when
         * not in monitor mode).
         */
+       (void) fprintf(stdout, "Data link types for ");
        if (supports_monitor_mode)
-               (void) fprintf(stderr, "Data link types for %s %s (use option -y to set):\n",
+               (void) fprintf(stdout, "%s %s",
                    device,
                    Iflag ? "when in monitor mode" : "when not in monitor mode");
        else
-               (void) fprintf(stderr, "Data link types for %s (use option -y to set):\n",
+               (void) fprintf(stdout, "%s",
                    device);
+       (void) fprintf(stdout, " (use option -y to set):\n");
 
        for (i = 0; i < n_dlts; i++) {
                dlt_name = pcap_datalink_val_to_name(dlts[i]);
                if (dlt_name != NULL) {
-                       (void) fprintf(stderr, "  %s (%s)", dlt_name,
+                       (void) fprintf(stdout, "  %s (%s)", dlt_name,
                            pcap_datalink_val_to_description(dlts[i]));
 
                        /*
                         * OK, does tcpdump handle that type?
                         */
                        if (!has_printer(dlts[i]))
-                               (void) fprintf(stderr, " (printing not supported)");
-                       fprintf(stderr, "\n");
+                               (void) fprintf(stdout, " (printing not supported)");
+                       fprintf(stdout, "\n");
                } else {
-                       (void) fprintf(stderr, "  DLT %d (printing not supported)\n",
+                       (void) fprintf(stdout, "  DLT %d (printing not supported)\n",
                            dlts[i]);
                }
        }
@@ -502,7 +490,7 @@ show_dlts_and_exit(pcap_t *pc, const char *device)
 }
 
 #ifdef HAVE_PCAP_FINDALLDEVS
-static void
+static void NORETURN
 show_devices_and_exit(void)
 {
        pcap_if_t *dev, *devlist;
@@ -567,7 +555,7 @@ show_devices_and_exit(void)
 #endif /* HAVE_PCAP_FINDALLDEVS */
 
 #ifdef HAVE_PCAP_FINDALLDEVS_EX
-static void
+static void NORETURN
 show_remote_devices_and_exit(void)
 {
        pcap_if_t *dev, *devlist;
@@ -2636,7 +2624,7 @@ DIAG_ON_CLANG(assign-enum)
        while (ret != NULL);
 
        if (count_mode && RFileName != NULL)
-               fprintf(stderr, "%u packet%s\n", packets_captured,
+               fprintf(stdout, "%u packet%s\n", packets_captured,
                        PLURAL_SUFFIX(packets_captured));
 
        free(cmdbuf);