]> The Tcpdump Group git mirrors - tcpdump/commitdiff
Use alarm() iff we're not on Windows.
authorGuy Harris <[email protected]>
Sun, 12 Nov 2017 21:31:57 +0000 (13:31 -0800)
committerGuy Harris <[email protected]>
Sun, 12 Nov 2017 21:31:57 +0000 (13:31 -0800)
We assume "not on Windows" means "on UN*X", which means we have alarm()
(we don't care about V6 and earlier; 1978 called, they want their UNIX
back).  If somebody wants to support something that's neither UN*X nor
Windows, they'll need to contribute support, properly checking for that
other OS.

config.h.in
configure
configure.in
tcpdump.c

index 284b4629afc43f61281b9325dbd1da07b864771c..bcc846b728b97320a29f4383e522afc86779925f 100644 (file)
@@ -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
 
index acf2d14c46c5c2d08d3e1c377d5abc7265fc6e33..17de93f0ae459f80cbf939a977c29510236384fc 100755 (executable)
--- a/configure
+++ b/configure
@@ -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
index f484c353f3adccb50fc6f482e221522a41fda133..479b2854a0029f202a70173e193e8024d5809ed4 100644 (file)
@@ -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,,
index d2eb10775af1ed84a0dc83bfd074aa483d40d30d..449bf928ec7428c5ec1f679df9d8befa35016619 100644 (file)
--- a/tcpdump.c
+++ b/tcpdump.c
@@ -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