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 <sucan...@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 _______________________________________________ svn-src-head@freebsd.org mailing list https://lists.freebsd.org/mailman/listinfo/svn-src-head To unsubscribe, send any mail to "svn-src-head-unsubscr...@freebsd.org"