Date: Mon, 01 Jan 2018 15:40:30 -0700 From: Ian Lepore <ian@freebsd.org> To: Eitan Adler <eadler@FreeBSD.org>, src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: Re: svn commit: r327476 - head/sbin/shutdown Message-ID: <1514846430.12000.44.camel@freebsd.org> In-Reply-To: <201801012233.w01MXvXw087382@repo.freebsd.org> References: <201801012233.w01MXvXw087382@repo.freebsd.org>
next in thread | previous in thread | raw e-mail | index | archive | help
On Mon, 2018-01-01 at 22:33 +0000, Eitan Adler wrote: > Author: eadler > Date: Mon Jan 1 22:33:57 2018 > New Revision: 327476 > URL: https://svnweb.freebsd.org/changeset/base/327476 > > Log: > shutdown: Assume absolute time is in the future > [...] > Modified: head/sbin/shutdown/shutdown.c > ============================================================================== > --- head/sbin/shutdown/shutdown.c Mon Jan 1 22:31:52 2018 (r327475) > +++ head/sbin/shutdown/shutdown.c Mon Jan 1 22:33:57 2018 (r327476) > @@ -431,7 +431,7 @@ getoffset(char *timearg) > struct tm *lt; > char *p; > time_t now; > - int this_year; > + int this_year, maybe_today; > char *timeunit; > > (void)time(&now); > @@ -503,6 +503,7 @@ getoffset(char *timearg) > badtime(); > /* FALLTHROUGH */ > case 6: > + maybe_today = 0; > lt->tm_mday = ATOI2(timearg); > if (lt->tm_mday < 1 || lt->tm_mday > 31) > badtime(); > @@ -517,8 +518,23 @@ getoffset(char *timearg) > lt->tm_sec = 0; > if ((shuttime = mktime(lt)) == -1) > badtime(); > - if ((offset = shuttime - now) < 0) > - errx(1, "that time is already past."); > + > + if ((offset = shuttime - now) < 0) { > + if (!maybe_today) > + errx(1, "that time is already past."); > + > + /* > + * If the user only gave a time, assume that > + * any time earlier than the current time > + * was intended to be that time tomorrow. > + */ > + lt->tm_mday++; > + if ((shuttime = mktime(lt)) == -1) > + badtime(); > + if ((offset = shuttime - now) < 0) { > + errx(1, "tomorrow is before today?"); > + } > + } > break; > default: > badtime(); > Where does maybe_today ever get set to non-zero? -- Ian
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?1514846430.12000.44.camel>