version 1.4, 1996/10/15 23:47:21 |
version 1.5, 1997/04/20 23:29:32 |
|
|
/* $OpenBSD$ */ |
/* $OpenBSD$ */ |
/* $NetBSD: hunt.c,v 1.5 1995/10/29 00:49:40 pk Exp $ */ |
/* $NetBSD: hunt.c,v 1.6 1997/04/20 00:02:10 mellon Exp $ */ |
|
|
/* |
/* |
* Copyright (c) 1983, 1993 |
* Copyright (c) 1983, 1993 |
|
|
break; |
break; |
if (setjmp(deadline) == 0) { |
if (setjmp(deadline) == 0) { |
alarm(10); |
alarm(10); |
FD = open(cp, O_RDWR); |
FD = open(cp, (O_RDWR | |
|
(boolean(value(DC)) ? O_NONBLOCK : 0))); |
} |
} |
alarm(0); |
alarm(0); |
if (FD < 0) { |
if (FD < 0) { |
|
|
struct termios cntrl; |
struct termios cntrl; |
|
|
tcgetattr(FD, &cntrl); |
tcgetattr(FD, &cntrl); |
cntrl.c_cflag |= HUPCL; |
if (!boolean(value(DC))) |
|
cntrl.c_cflag |= HUPCL; |
tcsetattr(FD, TCSAFLUSH, &cntrl); |
tcsetattr(FD, TCSAFLUSH, &cntrl); |
ioctl(FD, TIOCEXCL, 0); |
ioctl(FD, TIOCEXCL, 0); |
signal(SIGALRM, SIG_DFL); |
signal(SIGALRM, SIG_DFL); |