Page MenuHomeFreeBSD

D10037.id.diff
No OneTemporary

D10037.id.diff

Index: head/include/ttyent.h
===================================================================
--- head/include/ttyent.h
+++ head/include/ttyent.h
@@ -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"
Index: head/lib/libc/gen/getttyent.c
===================================================================
--- head/lib/libc/gen/getttyent.c
+++ head/lib/libc/gen/getttyent.c
@@ -97,6 +97,26 @@
return (0);
}
+static int
+auto_exists_status(const char *ty_name)
+{
+ struct stat sb;
+ char *dev;
+ int rv;
+
+ rv = 0;
+ if (*ty_name == '/')
+ asprintf(&dev, "%s", ty_name);
+ else
+ asprintf(&dev, "/dev/%s", ty_name);
+ if (dev == NULL)
+ return 0;
+ if (stat(dev, &sb) == 0)
+ rv = TTY_ON;
+ free(dev);
+ return (rv);
+}
+
struct ttyent *
getttyent(void)
{
@@ -161,6 +181,8 @@
tty.ty_status |= TTY_ON;
else if (scmp(_TTYS_ONIFCONSOLE))
tty.ty_status |= auto_tty_status(tty.ty_name);
+ else if (scmp(_TTYS_ONIFEXISTS))
+ tty.ty_status |= auto_exists_status(tty.ty_name);
else if (scmp(_TTYS_SECURE))
tty.ty_status |= TTY_SECURE;
else if (scmp(_TTYS_INSECURE))
Index: head/libexec/getty/ttys.5
===================================================================
--- head/libexec/getty/ttys.5
+++ head/libexec/getty/ttys.5
@@ -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 @@
``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.

File Metadata

Mime Type
text/plain
Expires
Wed, Apr 8, 10:36 AM (4 h, 50 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
31095109
Default Alt Text
D10037.id.diff (2 KB)

Event Timeline