Date: Wed, 22 Mar 2017 20:08:41 +0100 From: "O. Hartmann" <ohartmann@walstatt.org> To: Warner Losh <imp@FreeBSD.org> Cc: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: Re: svn commit: r315733 - in head: include lib/libc/gen libexec/getty Message-ID: <20170322200841.52e2f892@thor.intern.walstatt.dynvpn.de> In-Reply-To: <201703221900.v2MJ0gC8058678@repo.freebsd.org> References: <201703221900.v2MJ0gC8058678@repo.freebsd.org>
next in thread | previous in thread | raw e-mail | index | archive | help
--Sig_/6oySx_E9B.oO88.dD3uDEkO Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: quoted-printable Am Wed, 22 Mar 2017 19:00:42 +0000 (UTC) Warner Losh <imp@FreeBSD.org> schrieb: > Author: imp > Date: Wed Mar 22 19:00:41 2017 > New Revision: 315733 > URL: https://svnweb.freebsd.org/changeset/base/315733 >=20 > Log: > Impelemnt ttys onifexists in init. > =20 > Implement a new init(8) option in /etc/ttys. If this option is present > on the entry in /etc/ttys, the entry will be active if and only if it > exists. If the name starts with a '/', it will be considered an > absolute path. If not, it will be a path relative to /dev. > =20 > This allows one to turn off video console getty that aren't present > (while running a getty on them even when they aren't the system > console). Likewise with serial ports. > =20 > It differs from onifconsole in only requiring the device exist rather > than it be listed as one of the system consoles. > =20 > Sponsored by: Netflix > Differential Revision: https://reviews.freebsd.org/D10037 >=20 > Modified: > head/include/ttyent.h > head/lib/libc/gen/getttyent.c > head/libexec/getty/ttys.5 >=20 > Modified: head/include/ttyent.h > =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D > --- head/include/ttyent.h Wed Mar 22 18:45:13 2017 (r315732) > +++ head/include/ttyent.h Wed Mar 22 19:00:41 2017 (r315733) > @@ -38,6 +38,7 @@ > #define _TTYS_OFF "off" > #define _TTYS_ON "on" > #define _TTYS_ONIFCONSOLE "onifconsole" > +#define _TTYS_ONIFEXISTS "onifexists" > #define _TTYS_SECURE "secure" > #define _TTYS_INSECURE "insecure" > #define _TTYS_WINDOW "window" >=20 > Modified: head/lib/libc/gen/getttyent.c > =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D > --- head/lib/libc/gen/getttyent.c Wed Mar 22 18:45:13 2017 (r315732) > +++ head/lib/libc/gen/getttyent.c Wed Mar 22 19:00:41 2017 (r315733) > @@ -97,6 +97,26 @@ done: > return (0); > } > =20 > +static int > +auto_exists_status(const char *ty_name) > +{ > + struct stat sb; > + char *dev; > + int rv; > + > + rv =3D 0; > + if (*ty_name =3D=3D '/') > + asprintf(&dev, "%s", ty_name); > + else > + asprintf(&dev, "/dev/%s", ty_name); > + if (dev =3D=3D NULL) > + return 0; > + if (stat(dev, &sb) =3D=3D 0) > + rv =3D TTY_ON; > + free(dev); > + return (rv); > +} > + > struct ttyent * > getttyent(void) > { > @@ -161,6 +181,8 @@ getttyent(void) > tty.ty_status |=3D TTY_ON; > else if (scmp(_TTYS_ONIFCONSOLE)) > tty.ty_status |=3D auto_tty_status(tty.ty_name); > + else if (scmp(_TTYS_ONIFEXISTS)) > + tty.ty_status |=3D auto_exists_status(tty.ty_name); > else if (scmp(_TTYS_SECURE)) > tty.ty_status |=3D TTY_SECURE; > else if (scmp(_TTYS_INSECURE)) >=20 > Modified: head/libexec/getty/ttys.5 > =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D > --- head/libexec/getty/ttys.5 Wed Mar 22 18:45:13 2017 (r315732) > +++ head/libexec/getty/ttys.5 Wed Mar 22 19:00:41 2017 (r315733) > @@ -28,7 +28,7 @@ > .\" from: @(#)ttys.5 8.1 (Berkeley) 6/4/93 > .\" $FreeBSD$ > .\" " > -.Dd March 9, 2014 > +.Dd March 16, 2017 > .Dt TTYS 5 > .Os > .Sh NAME > @@ -105,6 +105,12 @@ should (should not) execute the command=20 > ``onifconsole'' will cause this line to be enabled if and only if it is > an active kernel console device (it is equivalent to ``on'' in this > case). > +The flag ``onifexists'' will cause this line to be enabled if and only > +if the name exists. > +If the name starts with a ``/'', it will be considered an absolute > +path. > +Otherwise, it is considered a path relative to > +.Pa /dev . > The flag ``secure'' (if the console is enabled) allows users with a > uid of 0 to login on > this line. > _______________________________________________ > 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-unsubscribe@freebsd.org" Breaks buildworld: [...] /usr/src/lib/libc/gen/getttyent.c:114:6: warning: implicit declaration of f= unction 'stat' is invalid in C99 [-Wimplicit-function-declaration] if (stat(dev, &sb) =3D= =3D 0) ^ 1 warning and 1 error generated. *** [getttyent.pico] Error code 1 make[4]: stopped in /usr/src/lib/libc Regards, oh --=20 O. Hartmann Ich widerspreche der Nutzung oder =C3=9Cbermittlung meiner Daten f=C3=BCr Werbezwecke oder f=C3=BCr die Markt- oder Meinungsforschung (=C2=A7 28 Abs.= 4 BDSG). --Sig_/6oySx_E9B.oO88.dD3uDEkO Content-Type: application/pgp-signature Content-Description: OpenPGP digital signature -----BEGIN PGP SIGNATURE----- iLUEARMKAB0WIQQZVZMzAtwC2T/86TrS528fyFhYlAUCWNLLuQAKCRDS528fyFhY lFOdAf4m0abghkRBcwyXV23mc2Sveqsf6cOeu5qrb2qvQLsr458P3T6689ugQvKo L9GYN8u5U2njcPsg2IcE+jUR5OTtAgCg4RSEeiSh6Tb2Ve/bSp9/6wsjY5GBbrI3 dK1k9I94hHhCbq760iANWKddRkH35MtsNACUz4e5Di0Bdb95RS5E =i2Eh -----END PGP SIGNATURE----- --Sig_/6oySx_E9B.oO88.dD3uDEkO--
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20170322200841.52e2f892>