When there is an error, print to stderr and exit with a non-0 status.
Otherwise print to stdout and exit with a status 0. See also tcpslice
commit
5015245.
static void (*setsignal (int sig, void (*func)(int)))(int);
static void cleanup(int);
static void child_cleanup(int);
static void (*setsignal (int sig, void (*func)(int)))(int);
static void cleanup(int);
static void child_cleanup(int);
-static void print_version(void);
-static void print_usage(void);
+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
#ifdef HAVE_PCAP_SET_TSTAMP_TYPE
static NORETURN void show_tstamp_types_and_exit(pcap_t *, const char *device);
#endif
exit_tcpdump(S_SUCCESS);
break;
exit_tcpdump(S_SUCCESS);
break;
break;
case OPTION_VERSION:
break;
case OPTION_VERSION:
exit_tcpdump(S_SUCCESS);
break;
exit_tcpdump(S_SUCCESS);
break;
exit_tcpdump(S_ERR_HOST_PROGRAM);
/* NOTREACHED */
}
exit_tcpdump(S_ERR_HOST_PROGRAM);
/* NOTREACHED */
}
USES_APPLE_DEPRECATED_API
static void
USES_APPLE_DEPRECATED_API
static void
{
#ifndef HAVE_PCAP_LIB_VERSION
#ifdef HAVE_PCAP_VERSION
{
#ifndef HAVE_PCAP_LIB_VERSION
#ifdef HAVE_PCAP_VERSION
#endif /* HAVE_PCAP_LIB_VERSION */
const char *smi_version_string;
#endif /* HAVE_PCAP_LIB_VERSION */
const char *smi_version_string;
- (void)fprintf(stderr, "%s version " PACKAGE_VERSION "\n", program_name);
+ (void)fprintf(f, "%s version " PACKAGE_VERSION "\n", program_name);
#ifdef HAVE_PCAP_LIB_VERSION
#ifdef HAVE_PCAP_LIB_VERSION
- (void)fprintf(stderr, "%s\n", pcap_lib_version());
+ (void)fprintf(f, "%s\n", pcap_lib_version());
#else /* HAVE_PCAP_LIB_VERSION */
#else /* HAVE_PCAP_LIB_VERSION */
- (void)fprintf(stderr, "libpcap version %s\n", pcap_version);
+ (void)fprintf(f, "libpcap version %s\n", pcap_version);
#endif /* HAVE_PCAP_LIB_VERSION */
#if defined(HAVE_LIBCRYPTO) && defined(SSLEAY_VERSION)
#endif /* HAVE_PCAP_LIB_VERSION */
#if defined(HAVE_LIBCRYPTO) && defined(SSLEAY_VERSION)
- (void)fprintf (stderr, "%s\n", SSLeay_version(SSLEAY_VERSION));
+ (void)fprintf (f, "%s\n", SSLeay_version(SSLEAY_VERSION));
#endif
smi_version_string = nd_smi_version_string();
if (smi_version_string != NULL)
#endif
smi_version_string = nd_smi_version_string();
if (smi_version_string != NULL)
- (void)fprintf (stderr, "SMI-library: %s\n", smi_version_string);
+ (void)fprintf (f, "SMI-library: %s\n", smi_version_string);
#if defined(__SANITIZE_ADDRESS__)
#if defined(__SANITIZE_ADDRESS__)
- (void)fprintf (stderr, "Compiled with AddressSanitizer/GCC.\n");
+ (void)fprintf (f, "Compiled with AddressSanitizer/GCC.\n");
#elif defined(__has_feature)
# if __has_feature(address_sanitizer)
#elif defined(__has_feature)
# if __has_feature(address_sanitizer)
- (void)fprintf (stderr, "Compiled with AddressSanitizer/Clang.\n");
+ (void)fprintf (f, "Compiled with AddressSanitizer/Clang.\n");
# elif __has_feature(memory_sanitizer)
# elif __has_feature(memory_sanitizer)
- (void)fprintf (stderr, "Compiled with MemorySanitizer/Clang.\n");
+ (void)fprintf (f, "Compiled with MemorySanitizer/Clang.\n");
# endif
#endif /* __SANITIZE_ADDRESS__ or __has_feature */
}
USES_APPLE_RST
static void
# endif
#endif /* __SANITIZE_ADDRESS__ or __has_feature */
}
USES_APPLE_RST
static void
- print_version();
- (void)fprintf(stderr,
+ print_version(f);
+ (void)fprintf(f,
"Usage: %s [-Abd" D_FLAG "efhH" I_FLAG J_FLAG "KlLnNOpqStu" U_FLAG "vxX#]" B_FLAG_USAGE " [ -c count ] [--count]\n", program_name);
"Usage: %s [-Abd" D_FLAG "efhH" I_FLAG J_FLAG "KlLnNOpqStu" U_FLAG "vxX#]" B_FLAG_USAGE " [ -c count ] [--count]\n", program_name);
"\t\t[ -C file_size ] [ -E algo:secret ] [ -F file ] [ -G seconds ]\n");
"\t\t[ -C file_size ] [ -E algo:secret ] [ -F file ] [ -G seconds ]\n");
"\t\t[ -i interface ]" IMMEDIATE_MODE_USAGE j_FLAG_USAGE "\n");
#ifdef HAVE_PCAP_FINDALLDEVS_EX
"\t\t[ -i interface ]" IMMEDIATE_MODE_USAGE j_FLAG_USAGE "\n");
#ifdef HAVE_PCAP_FINDALLDEVS_EX
"\t\t" LIST_REMOTE_INTERFACES_USAGE "\n");
#endif
#ifdef USE_LIBSMI
"\t\t" LIST_REMOTE_INTERFACES_USAGE "\n");
#endif
#ifdef USE_LIBSMI
"\t\t" m_FLAG_USAGE "\n");
#endif
"\t\t" m_FLAG_USAGE "\n");
#endif
"\t\t[ -M secret ] [ --number ] [ --print ]" Q_FLAG_USAGE "\n");
"\t\t[ -M secret ] [ --number ] [ --print ]" Q_FLAG_USAGE "\n");
"\t\t[ -r file ] [ -s snaplen ] [ -T type ] [ --version ]\n");
"\t\t[ -r file ] [ -s snaplen ] [ -T type ] [ --version ]\n");
"\t\t[ -V file ] [ -w file ] [ -W filecount ] [ -y datalinktype ]\n");
#ifdef HAVE_PCAP_SET_TSTAMP_PRECISION
"\t\t[ -V file ] [ -w file ] [ -W filecount ] [ -y datalinktype ]\n");
#ifdef HAVE_PCAP_SET_TSTAMP_PRECISION
"\t\t[ --time-stamp-precision precision ] [ --micro ] [ --nano ]\n");
#endif
"\t\t[ --time-stamp-precision precision ] [ --micro ] [ --nano ]\n");
#endif
"\t\t[ -z postrotate-command ] [ -Z user ] [ expression ]\n");
}
"\t\t[ -z postrotate-command ] [ -Z user ] [ expression ]\n");
}