aboutsummaryrefslogtreecommitdiff
path: root/libexec
diff options
context:
space:
mode:
authorWarner Losh <imp@FreeBSD.org>2004-09-29 20:55:14 +0000
committerWarner Losh <imp@FreeBSD.org>2004-09-29 20:55:14 +0000
commit780afd18cdd1370292c5cfb89adece3599f6eb96 (patch)
tree39cd332e449d56f9e8b371270c0b362149a01220 /libexec
parentfa38f371c83443c7fef8bb7033d9408ea6c8fade (diff)
downloadsrc-780afd18cdd1370292c5cfb89adece3599f6eb96.tar.gz
src-780afd18cdd1370292c5cfb89adece3599f6eb96.zip
Report once that the device isn't there, but keep trying. Don't
filter the errno values. They don't make as much sense as they used to given how we do devices in /dev.
Notes
Notes: svn path=/head/; revision=135941
Diffstat (limited to 'libexec')
-rw-r--r--libexec/getty/main.c35
1 files changed, 14 insertions, 21 deletions
diff --git a/libexec/getty/main.c b/libexec/getty/main.c
index 1555ae4efb43..ceea00966564 100644
--- a/libexec/getty/main.c
+++ b/libexec/getty/main.c
@@ -427,37 +427,30 @@ main(int argc, char *argv[])
static int
opentty(const char *tty, int flags)
{
- int i, j = 0;
+ int i;
int failopenlogged = 0;
- while (j < 10 && (i = open(tty, flags)) == -1)
+ while ((i = open(tty, flags)) == -1)
{
- if (((j % 10) == 0) && (errno != ENXIO || !failopenlogged)) {
+ if (!failopenlogged) {
syslog(LOG_ERR, "open %s: %m", tty);
failopenlogged = 1;
}
- j++;
sleep(60);
}
- if (i == -1) {
- syslog(LOG_ERR, "open %s: %m", tty);
- return 0;
- }
- else {
- if (login_tty(i) < 0) {
- if (daemon(0,0) < 0) {
- syslog(LOG_ERR,"daemon: %m");
- close(i);
- return 0;
- }
- if (login_tty(i) < 0) {
- syslog(LOG_ERR, "login_tty %s: %m", tty);
- close(i);
- return 0;
- }
+ if (login_tty(i) < 0) {
+ if (daemon(0,0) < 0) {
+ syslog(LOG_ERR,"daemon: %m");
+ close(i);
+ return 0;
+ }
+ if (login_tty(i) < 0) {
+ syslog(LOG_ERR, "login_tty %s: %m", tty);
+ close(i);
+ return 0;
}
- return 1;
}
+ return 1;
}
static void