negotiation. Instead, incrementally pause after
receiving LCPs with the same magic. We can now
suffer a server that waits more than 1 second before
responding. Pauses greater than a second get
hopelessly confusing as when the server eventually
starts, it sees a flood of Config Requests followed
by config NAKs and changes of magic. This causes the
server to change its magic over and over.....
file get created. We don't create lock files over non-tty
connections, but we *do* create lock files in -direct mode.
This leaves us capable of adding utmp/wtmp support for
successful pap & chap logins (coming soon).
config request. This stops us from squirting stuff
down a line that still has ECHO turned on because the
peer hasn't had a chance to start yet.
Lead to the cause by: Greg Lehey <grog@lemis.com>
close(1);
close(2);
x = open(ctermid(NULL), O_RDWR|O_NONBLOCK);
close(0)
on a tty causes select() to return an exception for descriptor x !
This is the case in RELENG_2_2, but not in 2.2.2. I'm not sure why.
Instead of doing the x=open() and close(0), we just do x=0 now.
Problem pointed out by: Greg Lehey <grog@lemis.com>
Tomi Vainio <tomppa@fidata.fi>
isatty(1) ! Keep 0 open for this till the modem's
been set up by either dup()ing 0 or by opening
ctermid(NULL) (if isatty(0)).
Discussed problem with: Tomi Vainio <tomppa@fidata.fi>
Made it finally dawn on me: Angelo Turetta <ATuretta@stylo.it>
o Output the correct device for "show modem"
while in -direct mode.
o Cosmetic: Moan a bit more when we can't open
the [modem] device.
o Call OpenModem() in a more "natural" way.
o Add some LogDEBUG in OpenModem().
receive the ResetAck, NOT when we send the
ResetReq (as per the rfc).
o SILENTLY ignore CCPs that arrive *before*
the network phase (as per the rfc).
o Check that we've actually negotiated PRED1
before sending PRED1 output.
This bug has been around for a *VERY* long
time ! We shouldn't need to explicitly disable
PRED1 now :-)
mode. We don't want to be forced to type a password
here :-(
Pointed out by: mouth@ibm.net (John Kelly)
While I'm there, don't allow a "set server" in
interactive mode.
Insist that uid == 0 for client ppp
Disallow client sockets if no password is specified
Don't exit on failure to open client socket for listening
Allow specification of null local password
Use reasonable size (smaller) ``vector''s in auth.c
Fix "passwd ..." usage message
Insist on "all" as arg to "quit" (if any)
Drop client socket connection before Cleanup() when "quit all"
This tells ppp to loopback packets addressed to
the ppp interface IP coming *from* the tun
device.
This means that you can ping the tun interface IP
from inside :-)
idependently time out any of the FSMs.
Split LCP logging into LCP, IPCP and CCP logging,
and make room in "struct fsm" for the log level
that the state machine should use.
"set stopped" directive. If the timeout occurs
it will cause a "Down" event, hanging up the line
if it's still up. This *isn't* part of the FSM
diagram, but I consider it ok as a "higher level
implementation specific timeout" as specified in
the rfc ;-}
Discussed briefly with: joerg