]> The Tcpdump Group git mirrors - tcpdump/blobdiff - tcpdump.c
CI: Add warning exemptions for Sun C (suncc-5.14) on Solaris 10
[tcpdump] / tcpdump.c
index d5766712e45370d9a0b4a63330f3705ce826133d..e59756716de5438422efb332861807e4ed647f06 100644 (file)
--- a/tcpdump.c
+++ b/tcpdump.c
@@ -140,7 +140,6 @@ The Regents of the University of California.  All rights reserved.\n";
 #include <sys/sysctl.h>
 #endif /* __FreeBSD__ */
 
-#include "netdissect-stdinc.h"
 #include "netdissect.h"
 #include "interface.h"
 #include "addrtoname.h"
@@ -617,7 +616,27 @@ show_remote_devices_and_exit(void)
 #define m_FLAG_USAGE "[ -m module ] ..."
 #endif
 
-#define SHORTOPTS "aAbB:c:C:dDeE:fF:G:hHi:I" j_FLAG J_FLAG "KlLm:M:nNOpqQ:r:s:StT:uUvV:w:W:xXy:Yz:Z:#"
+#if defined(HAVE_FORK) || defined(HAVE_VFORK)
+#define z_FLAG         "z:"
+#define z_FLAG_USAGE    "[ -z postrotate-command ] "
+#else
+#define z_FLAG
+#define z_FLAG_USAGE
+#endif
+
+#ifdef HAVE_LIBCRYPTO
+#define E_FLAG         "E:"
+#define E_FLAG_USAGE    "[ -E algo:secret ] "
+#define M_FLAG         "M:"
+#define M_FLAG_USAGE   "[ -M secret ] "
+#else
+#define E_FLAG
+#define E_FLAG_USAGE
+#define M_FLAG
+#define M_FLAG_USAGE
+#endif
+
+#define SHORTOPTS "aAbB:c:C:dDe" E_FLAG "fF:G:hHi:I" j_FLAG J_FLAG "KlLm:" M_FLAG "nNOpqQ:r:s:StT:uUvV:w:W:xXy:Y" z_FLAG "Z:#"
 
 /*
  * Long options.
@@ -1768,12 +1787,11 @@ main(int argc, char **argv)
                        ++ndo->ndo_eflag;
                        break;
 
+#ifdef HAVE_LIBCRYPTO
                case 'E':
-#ifndef HAVE_LIBCRYPTO
-                       warning("crypto code not compiled in");
-#endif
                        ndo->ndo_espsecret = optarg;
                        break;
+#endif
 
                case 'f':
                        ++ndo->ndo_fflag;
@@ -1859,13 +1877,12 @@ main(int argc, char **argv)
                        }
                        break;
 
+#ifdef HAVE_LIBCRYPTO
                case 'M':
                        /* TCP-MD5 shared secret */
-#ifndef HAVE_LIBCRYPTO
-                       warning("crypto code not compiled in");
-#endif
                        ndo->ndo_sigsecret = optarg;
                        break;
+#endif
 
                case 'n':
                        ++ndo->ndo_nflag;
@@ -2015,13 +2032,12 @@ main(int argc, char **argv)
                        }
                        break;
 #endif
-               case 'z':
+
 #if defined(HAVE_FORK) || defined(HAVE_VFORK)
+               case 'z':
                        zflag = optarg;
-#else
-                       error("-z cannot be used. Fork subprocess not implemented.");
-#endif
                        break;
+#endif
 
                case 'Z':
                        username = optarg;
@@ -3463,7 +3479,7 @@ print_usage(FILE *f)
        (void)fprintf(f,
 "Usage: %s [-AbdDefhHI" J_FLAG "KlLnNOpqStuUvxX#] [ -B size ] [ -c count ] [--count]\n", program_name);
        (void)fprintf(f,
-"\t\t[ -C file_size ] [ -E algo:secret ] [ -F file ] [ -G seconds ]\n");
+"\t\t[ -C file_size ] " E_FLAG_USAGE "[ -F file ] [ -G seconds ]\n");
        (void)fprintf(f,
 "\t\t[ -i interface ]" IMMEDIATE_MODE_USAGE j_FLAG_USAGE "\n");
        (void)fprintf(f,
@@ -3473,7 +3489,7 @@ print_usage(FILE *f)
 "\t\t" m_FLAG_USAGE "\n");
 #endif
        (void)fprintf(f,
-"\t\t[ -M secret ] [ --number ] [ --print ]\n");
+"\t\t" M_FLAG_USAGE "[ --number ] [ --print ]\n");
        (void)fprintf(f,
 "\t\t[ --print-sampling nth ] [ -Q in|out|inout ] [ -r file ]\n");
        (void)fprintf(f,
@@ -3485,5 +3501,5 @@ print_usage(FILE *f)
 "\t\t[ --time-stamp-precision precision ] [ --micro ] [ --nano ]\n");
 #endif
        (void)fprintf(f,
-"\t\t[ -z postrotate-command ] [ -Z user ] [ expression ]\n");
+"\t\t" z_FLAG_USAGE "[ -Z user ] [ expression ]\n");
 }