svn commit: r355106 - in head/sbin: ping ping6
Alan Somers
asomers at FreeBSD.org
Tue Nov 26 05:06:26 UTC 2019
Author: asomers
Date: Tue Nov 26 05:06:25 2019
New Revision: 355106
URL: https://svnweb.freebsd.org/changeset/base/355106
Log:
ping, ping6: Use setitimer(2) instead of obsolete alarm(3)
Submitted by: Ján Sučan <sucanjan at gmail.com>
Differential Revision: https://reviews.freebsd.org/D22103
Modified:
head/sbin/ping/ping.c
head/sbin/ping6/ping6.c
Modified: head/sbin/ping/ping.c
==============================================================================
--- head/sbin/ping/ping.c Tue Nov 26 02:50:25 2019 (r355105)
+++ head/sbin/ping/ping.c Tue Nov 26 05:06:25 2019 (r355106)
@@ -505,7 +505,15 @@ main(int argc, char *const *argv)
if (alarmtimeout > MAXALARM)
errx(EX_USAGE, "invalid timeout: `%s' > %d",
optarg, MAXALARM);
- alarm((int)alarmtimeout);
+ {
+ struct itimerval itv;
+
+ timerclear(&itv.it_interval);
+ timerclear(&itv.it_value);
+ itv.it_value.tv_sec = (time_t)alarmtimeout;
+ if (setitimer(ITIMER_REAL, &itv, NULL) != 0)
+ err(1, "setitimer");
+ }
break;
case 'v':
options |= F_VERBOSE;
Modified: head/sbin/ping6/ping6.c
==============================================================================
--- head/sbin/ping6/ping6.c Tue Nov 26 02:50:25 2019 (r355105)
+++ head/sbin/ping6/ping6.c Tue Nov 26 05:06:25 2019 (r355106)
@@ -574,7 +574,15 @@ main(int argc, char *argv[])
if (alarmtimeout > MAXALARM)
errx(EX_USAGE, "invalid timeout: `%s' > %d",
optarg, MAXALARM);
- alarm((int)alarmtimeout);
+ {
+ struct itimerval itv;
+
+ timerclear(&itv.it_interval);
+ timerclear(&itv.it_value);
+ itv.it_value.tv_sec = (time_t)alarmtimeout;
+ if (setitimer(ITIMER_REAL, &itv, NULL) != 0)
+ err(1, "setitimer");
+ }
break;
#ifdef IPSEC
#ifdef IPSEC_POLICY_IPSEC
More information about the svn-src-all
mailing list