slattach always exited early because fd is not open in acquire_line().
Other (trivial) changes that I've been neglecting for some time:
- Turn off O_NONBLOCK so that `chat' doesn't need to worry about it
(`chat' actually does worry about it).
- Really set speeds POSIXly :-). cfsetspeed() isn't POSIX.
- Fix spelling error in comment.
- Gripe about bad programming of doing everything from signal handlers.
slattach should be written to do everything from the sigsuspend() loop,
but I don't want to do it :-).
From me:
Use .PATH to find uucplock.c
Submitted by: bde
-K #: set SLIP keepalive timeout
-O #: set SLIP outfil timeout
-U #: set SLIP unit number
sighup handler now sets tty disc for non-redial case too.
Implement SIGURG handling (from keepalive).
POSIXing speed settings.
established. This way, automatic scripts are possible that might
control the SLIP connection. It's unacceptable for a daemon that's
being controlled by a variety of signals to not leave its PID
somewhere. The file name contains the terminal path name component of
the associated tty device, so it should be unique even with multiple
parallel slattach's running. The file will be unlinked at regular exit.
Also found a minor bug in the option handling by compiling with -Wall.
FDs and fork before redialing) to prevent dialer from hanging with
newer sio.c.
Also moved history from the source to the cvs log (here) per
David G's suggestion.
This compiles but needs testing now... Rich
/*
* Hacks to support "-a|c|n" flags on the command line which enable VJ
* header compresion and disable ICMP.
* If this is good all rights go to B & L Jolitz, otherwise send your
* comments to Reagan (/dev/null).
*
* nerd@percival.rain.com (Michael Galassi) 92.09.03
*
* Hacked to change from sgtty to POSIX termio style serial line control
* and added flag to enable cts/rts style flow control.
*
* blymn@awadi.com.au (Brett Lymn) 93.04.04
*
* Put slattach in it's own process group so it can't be killed
* accidentally. Close the connection on SIGHUP and SIGINT. Write a
* syslog entry upon opening and closing the connection. Rich Murphey
* and Brad Huntting.
*
* Add '-r command' option: runs 'command' upon recieving SIGHUP
* resulting from loss of carrier. Log any errors after forking.
* Rich 8/13/93
*
* This version of slattach includes many changes by David Greenman, Brian
* Smith, Chris Bradley, and me (Michael Galassi). None of them are
* represented as functional anywhere outside of RAINet though they do work
* for us. Documentation is limited to the usage message for now. If you
* make improovments please pass them back.
*
* Added '-u UCMD' which runs 'UCMD <old> <new>' whenever the slip
* unit number changes where <old> and <new> are the old and new unit
* numbers, respectively. Also added the '-z' option which forces
* invocation of the redial command (-r CMD) upon startup regardless
* of whether the com driver claims (sometimes mistakenly) that
* carrier is present. Also added '-e ECMD' which runs ECMD before
* exiting.
*
* marc@escargot.rain.com (Marc Frajola) 93/09/10
*
* Minor fixes to allow passive SLIP links to work (connections with
* modem control that do not have an associated dial command). Added
* code to re-check for carrier after dial command has been executed.
* Added SIGTERM handler to properly handle normal kill signals. Fixed
* bug in logic that caused message about no -u command to be logged
* even when -u was specified and the sl number changes. Tried to get
* rid of redundant syslog()'s to minimize console log output. Improved
* logging of improper command line options or number of command
* arguments. Removed spurious newline characters from syslog() calls.
*
* gjung@gjbsd.franken.de
*
* sighup_handler changed to set CLOCAL before running redial_cmd.
* added flag exiting, so exit_handler is not run twice. Fork
* before reopening tty.
*/