diff options
-rw-r--r-- | config.h.in | 3 | ||||
-rwxr-xr-x | configure | 9 | ||||
-rw-r--r-- | configure.in | 2 | ||||
-rw-r--r-- | tcpdump.c | 39 |
4 files changed, 29 insertions, 24 deletions
diff --git a/config.h.in b/config.h.in index 284b4629..bcc846b7 100644 --- a/config.h.in +++ b/config.h.in @@ -3,9 +3,6 @@ /* define if you want to build the possibly-buggy SMB printer */ #undef ENABLE_SMB -/* Define to 1 if you have the `alarm' function. */ -#undef HAVE_ALARM - /* Define to 1 if you have the `bpf_dump' function. */ #undef HAVE_BPF_DUMP @@ -5049,13 +5049,12 @@ _ACEOF fi done -for ac_func in setlinebuf alarm +for ac_func in setlinebuf do : - as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh` -ac_fn_c_check_func "$LINENO" "$ac_func" "$as_ac_var" -if eval test \"x\$"$as_ac_var"\" = x"yes"; then : + ac_fn_c_check_func "$LINENO" "setlinebuf" "ac_cv_func_setlinebuf" +if test "x$ac_cv_func_setlinebuf" = xyes; then : cat >>confdefs.h <<_ACEOF -#define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1 +#define HAVE_SETLINEBUF 1 _ACEOF fi diff --git a/configure.in b/configure.in index f484c353..479b2854 100644 --- a/configure.in +++ b/configure.in @@ -406,7 +406,7 @@ fi AC_REPLACE_FUNCS(vfprintf strlcat strlcpy strdup strsep getservent getopt_long) AC_CHECK_FUNCS(fork vfork strftime) -AC_CHECK_FUNCS(setlinebuf alarm) +AC_CHECK_FUNCS(setlinebuf) needsnprintf=no AC_CHECK_FUNCS(vsnprintf snprintf,, @@ -223,13 +223,15 @@ static void droproot(const char *, const char *); void requestinfo(int); #endif -#if defined(USE_WIN32_MM_TIMER) - #include <MMsystem.h> - static UINT timer_id; - static void CALLBACK verbose_stats_dump(UINT, UINT, DWORD_PTR, DWORD_PTR, DWORD_PTR); -#elif defined(HAVE_ALARM) +#ifdef _WIN32 + #ifdef USE_WIN32_MM_TIMER + #include <MMsystem.h> + static UINT timer_id; + static void CALLBACK verbose_stats_dump(UINT, UINT, DWORD_PTR, DWORD_PTR, DWORD_PTR); + #endif /* USE_WIN32_MM_TIMER */ +#else /* _WIN32 */ static void verbose_stats_dump(int sig); -#endif +#endif /* _WIN32 */ static void info(int); static u_int packets_captured; @@ -2202,14 +2204,17 @@ DIAG_ON_CLANG(assign-enum) *"-v" means tcpdump should, once per second, * "v"erbosely report the number of packets captured. */ -#ifdef USE_WIN32_MM_TIMER +#ifdef _WIN32 + #ifdef USE_WIN32_MM_TIMER /* call verbose_stats_dump() each 1000 +/-100msec */ timer_id = timeSetEvent(1000, 100, verbose_stats_dump, 0, TIME_PERIODIC); setvbuf(stderr, NULL, _IONBF, 0); -#elif defined(HAVE_ALARM) + #endif /* USE_WIN32_MM_TIMER */ +#else /* _WIN32 */ + /* UN*X has alarm() */ (void)setsignal(SIGALRM, verbose_stats_dump); alarm(1); -#endif +#endif /* _WIN32 */ } if (RFileName == NULL) { @@ -2393,13 +2398,15 @@ static void static void cleanup(int signo _U_) { -#ifdef USE_WIN32_MM_TIMER +#ifdef _WIN32 + #ifdef USE_WIN32_MM_TIMER if (timer_id) timeKillEvent(timer_id); timer_id = 0; -#elif defined(HAVE_ALARM) + #endif /* USE_WIN32_MM_TIMER */ +#else /* _WIN32 */ alarm(0); -#endif +#endif /* _WIN32 */ #ifdef HAVE_PCAP_BREAKLOOP /* @@ -2819,19 +2826,21 @@ print_packets_captured (void) /* * Called once each second in verbose mode while dumping to file */ -#ifdef USE_WIN32_MM_TIMER +#ifdef _WIN32 + #ifdef USE_WIN32_MM_TIMER void CALLBACK verbose_stats_dump (UINT timer_id _U_, UINT msg _U_, DWORD_PTR arg _U_, DWORD_PTR dw1 _U_, DWORD_PTR dw2 _U_) { print_packets_captured(); } -#elif defined(HAVE_ALARM) + #endif /* USE_WIN32_MM_TIMER */ +#else /* _WIN32 */ static void verbose_stats_dump(int sig _U_) { print_packets_captured(); alarm(1); } -#endif +#endif /* _WIN32 */ USES_APPLE_DEPRECATED_API static void |