X-Git-Url: https://git.tcpdump.org/tcpdump/blobdiff_plain/cd2208037c766bb724ad8fd519c1b72d90f65bec..2db7c32de1a1c3e7f940e8275a285bbf44c658ad:/tcpdump.c?ds=sidebyside diff --git a/tcpdump.c b/tcpdump.c index 01de8634..e5975671 100644 --- a/tcpdump.c +++ b/tcpdump.c @@ -616,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. @@ -1767,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; @@ -1858,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; @@ -2014,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; @@ -3462,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, @@ -3472,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, @@ -3484,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"); }