#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);
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;
}
/* VARARGS */
-static void
-warning(const char *fmt, ...)
+static void PRINTFLIKE(1, 2)
+warning(FORMAT_STRING(const char *fmt), ...)
{
va_list ap;
}
}
-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;
}
#endif
-static void
+static void NORETURN
show_dlts_and_exit(pcap_t *pc, const char *device)
{
int n_dlts, i;
}
#ifdef HAVE_PCAP_FINDALLDEVS
-static void
+static void NORETURN
show_devices_and_exit(void)
{
pcap_if_t *dev, *devlist;
#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;
{
char *filename = malloc(PATH_MAX + 1);
if (filename == NULL)
- error("Makefilename: malloc");
+ error("%s: malloc", __func__);
/* Process with strftime if Gflag is set. */
if (Gflag != 0) {
/* Convert Gflag_time to a usable format */
if ((local_tm = localtime(&Gflag_time)) == NULL) {
- error("MakeTimedFilename: localtime");
+ error("%s: localtime", __func__);
}
/* There's no good way to detect an error in strftime since a return
buf = (char *)malloc(len);
if (buf == NULL)
- error("copy_argv: malloc");
+ error("%s: malloc", __func__);
p = argv;
dst = buf;
/* Grab the current time for rotation use. */
if ((Gflag_time = time(NULL)) == (time_t)-1) {
- error("main: can't get current time: %s",
- pcap_strerror(errno));
+ error("%s: can't get current time: %s",
+ __func__, pcap_strerror(errno));
}
break;
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);
/* Get the current time */
if ((t = time(NULL)) == (time_t)-1) {
- error("dump_and_trunc_packet: can't get current_time: %s",
- pcap_strerror(errno));
+ error("%s: can't get current_time: %s",
+ __func__, pcap_strerror(errno));
}
free(dump_info->CurrentFileName);
dump_info->CurrentFileName = (char *)malloc(PATH_MAX + 1);
if (dump_info->CurrentFileName == NULL)
- error("dump_packet_and_trunc: malloc");
+ error("%s: malloc", __func__);
MakeFilename(dump_info->CurrentFileName, dump_info->WFileName, Cflag_count, WflagChars);
#ifdef HAVE_LIBCAP_NG
capng_update(CAPNG_ADD, CAPNG_EFFECTIVE, CAP_DAC_OVERRIDE);