Commit Graph

673 Commits

Author SHA1 Message Date
brian
50dbd19d74 Ignore repeated signals sent to the parent in background
mode.
1999-05-13 16:34:57 +00:00
brian
db91076768 Adjust our first timer delta according to the return
from getitimer() so that times are correct for
``show timer''.
1999-05-12 19:10:22 +00:00
brian
827c4aedd6 Oops - hook the sync push diagnostics correctly. 1999-05-12 09:54:33 +00:00
brian
89ce3ea906 Allow `host:port/udp'' devices and support `host:port/tcp'' as
being the same as the previous (still supported) ``host:port''
syntax for tcp socket devices.

A udp device uses synchronous ppp rather than async, and avoids
the double-retransmit overhead that comes with ppp over tcp (it's
usually a bad idea to transport IP over a reliable transport that
itself is using an unreliable transport).  PPP over UDP provides
througput of ** 1.5Mb per second ** with all compression disabled,
maxing out a PPro/200 when running ppp twice, back-to-back.

This proves that PPPoE is plausable in userland....

This change adds a few more handler functions to struct device and
allows derivations of struct device (which may contain their own
data etc) to pass themselves through the unix domain socket for MP.
** At last **, struct physical has lost all the tty crud !

iov2physical() is now smart enough to restore the correct stack of
layers so that MP servers will work again.

The version number has bumped as our MP link transfer contents have
changed (they now may contain a `struct device').

Don't extract the protocol twice in MP mode (resulting in protocol
rejects for every MP packet).  This was broken with my original
layering changes.

Add ``Physical'' and ``Sync'' log levels for logging the relevent
raw packets and add protocol-tracking LogDEBUG stuff in various
LayerPush & LayerPull functions.

Assign our physical device name for incoming tcp connections by
calling getpeername().

Assign our physical device name for incoming udp connections from
the address retrieved by the first recvfrom().
1999-05-12 09:49:12 +00:00
brian
3ea9598814 Revert to the previous behaviour of only doing a utmp
login if we're -direct on a tty device.
1999-05-09 20:13:52 +00:00
brian
00d71de444 Deal with the fact that as we now mbuf_Read the fsm
header in fsm_Input() we often end up with a NULL mbuf.

Deal with a possible NULL mbuf being passed into
mbuf_Prepend().

Adjust some spacing to make things more consistent.
1999-05-09 20:02:29 +00:00
brian
ab7d88ae2d o Redesign the layering mechanism and make the aliasing code part of
the layering.

  We now ``stack'' layers as soon as we open the device (when we figure
  out what we're dealing with).  A static set of `dispatch' routines are
  also declared for dealing with incoming packets after they've been
  `pulled' up through the stacked layers.

  Physical devices are now assigned handlers based on the device type
  when they're opened.  For the moment there are three device types;
  ttys, execs and tcps.

o Increment version number to 2.2
o Make an entry in [uw]tmp for non-tty -direct invocations (after
  pap/chap authentication).
o Make throughput counters quad_t's
o Account for the absolute number of mbuf malloc()s and free()s in
  ``show mem''.
o ``show modem'' becomes ``show physical''.
1999-05-08 11:07:56 +00:00
brian
4418c9ba63 Handle receiving more than one acceptable CCP REQ
during one negotiation session without REJecting
everything from the second REQuest.
1999-05-02 14:33:39 +00:00
brian
743ae62c5f Mention ``show mp''.
Describe ACFComp correctly.
1999-05-02 08:52:50 +00:00
brian
7fc498ac36 Make ports 80 & 81 ``interactive''. 1999-05-01 11:31:29 +00:00
brian
9a2c03d6d7 Change ``set device'' so that it parses its arguments as one
device per argument rather than the old way of concatenating
everything then splitting the result at commas and whitespace.

Old syntax of ``set device /dev/cuaa0, /dev/cuaa1''
may no longer contain the comma, but syntax such as
``set device "!ssh host ppp -direct label"'' is now
possible.
1999-04-27 00:23:57 +00:00
brian
42c76b892b Add support for NetBSD 1999-04-26 08:54:34 +00:00
brian
d1f60b18e9 #include <errno.h>, not <sys/errno.h> 1999-04-26 08:54:25 +00:00
brian
6c2a018d6d Spelling police 1999-04-23 13:45:50 +00:00
brian
6f81d00cd6 int -> size_t 1999-04-21 08:13:25 +00:00
brian
2f7b052d07 Split the recorded chap challenge into two - one for the
receiver and one for the sender.  This allows two simultaneous
chap conversations - something that I *thought* I was already
doing on a daily basis myself until the existence of the
problem was
Beaten into me by: sos
1999-04-21 08:03:51 +00:00
brian
dcc03543e0 If ioctl TIOCMGET fails, continue. The device may be
a pseudo device created by an interactive version of
rlogin/telnet/ssh & friends
1999-04-21 08:03:35 +00:00
brian
e52674f2ac Revert the ACCMAP changes where we OR the peers accmap
with our own if there are differing bits (last two revisions
of lcp.c).  This change broke at least one negotiation
session.
Instead, we just use an OR of the two accmap values when
we're doing the ASYNC framing.
1999-04-11 08:51:04 +00:00
brian
999ee7a1b0 When going from DATALINK_HANGUP directly to
DATALINK_OPENING, don't forget to change phase
to ESTABLISH if we're currently TERMINATE'ing.
Helped locate by: Chuck Robey <chuckr@mat.net>
1999-04-06 14:48:10 +00:00
brian
93aa08a493 When we get an LCP TLU, go into PHASE_AUTHENTICATE
from any other phase besides PHASE_NETWORK, otherwise
there's a chance that we end up sending auth packets
and dropping the replies.
1999-04-05 21:52:10 +00:00
brian
0ceecd2eef Remove forgotten variable. 1999-04-03 12:01:38 +00:00
brian
5db8066ee9 Handle the detection of frames even if we read them
with more than one read().  When we detect one, don't
forget to pass it to async_Input() and drop our
terminal back into command mode.

Don't output an extraneous \r if we're passed \r\n
to prompt_vprintf in raw mode.
1999-04-03 11:54:00 +00:00
brian
fa9cc0ebfb Drop PAP & CHAP packets if we're not in NETWORK or AUTHENTICATE
phase.
1999-04-01 11:05:23 +00:00
brian
368d30c3ca Avoid a few warnings on the alpha 1999-03-31 14:21:46 +00:00
brian
84a1abbf13 Oops - remove register keyword 1999-03-31 13:44:07 +00:00
brian
b0431d511c Another alignment bogon. 1999-03-31 13:33:43 +00:00
brian
2c5f507432 Point at cs.slcs_u.csu_ip instead of the just-copied ``cp''
when recalculating the ip checksum.  cp is not guaranteed to
be aligned.  It now doesn't matter that cp isn't aligned as
the caller does another mbuf_Alloc() regardless.
1999-03-30 07:57:22 +00:00
brian
e9c44757c3 Maintain a `necessary' marker to indicate that we *probably*
need to process a signal (usually a SIGALRM).  Check to see
if we need to process a signal both before *and* after calling
select() as older (pre-2.0) versions of ppp used to.

This handles the possibility that ppp may block at some
point (maybe due to an open() of a misconfigured device).
Previously, we'd potentially lock up in select().

The `necessary' marker reduces the increased signal checking
overhead so that at full speed with no compression transferring
an 83Mb file via a ``!ppp -direct'' device, we get a 1%
throughput gain.
1999-03-30 00:44:57 +00:00
brian
e0b990afc7 If we adjust our required ACCMAP due to a more restrictive
ACCMAP being REQuested by the peer, also increment our FSM
id so that we don't end up sending out a new REQ with the
same ID and different data (the changed ACCMAP).
1999-03-29 08:21:40 +00:00
brian
539d220871 Ensure that the thing we're casting to struct ip
is aligned for non-i386 architectures.
1999-03-29 08:21:28 +00:00
brian
1bf2486a41 Allow port ranges in ``alias port''. 1999-03-25 23:36:25 +00:00
brian
6354640a08 Undo possible damage done by the new TUNSIFMODE ioctl
in FreeBSD-current.
1999-03-25 11:37:51 +00:00
brian
042cb8af30 Do away with some literal text that is never switched
off - I *think* these were groff bugs.
1999-03-19 09:00:08 +00:00
brian
3d3f9f8b88 Replace hardcoded quoting with Sq or Dq. 1999-03-19 01:42:45 +00:00
brian
a9a1137a8b Don't forget to fully initialise the configured values
for MYADDR and HISADDR in ``set ifaddr'' so that unspecified
values don't end up retaining their `width'.
1999-03-19 00:05:32 +00:00
brian
76f3c63b39 Use ``Sx'' when xref'ing sections. 1999-03-18 21:53:56 +00:00
brian
984c995fd5 Remove all remaining [ and ] characters (and do things properly). 1999-03-18 21:50:52 +00:00
brian
1739eef5e6 Remove all hardcoded [...] syntax.
With help from: Daniel C. Sobral <dcs@newsguy.com>
1999-03-17 00:25:43 +00:00
brian
ba12f624a1 Mention changes to the default authentication behaviour. 1999-03-16 11:54:02 +00:00
brian
f7a7179f0f Detect pred1 packets where the length != the packet length
Use a maximum of MAX_MRU + 2 bytes for incoming packets, not
MAX_MTU + 2.
Tidy up some diagnostics.
1999-03-16 01:24:23 +00:00
brian
e1bfa8246d Tone down the log levels (Log{ERROR,WARN} -> LogCCP)
when we've simply missed a packet.

When our Predictor1 CRC is wrong (implying we've dropped
a packet), don't send a ResetReq().  Instead, send another
CCP ConfigReq().  *shrug*  My tests show this as being far
worse than the ResetReq as we may have further Nak/Rejs etc
and we're basically resetting both our incoming and outgoing
compression dictionaries, but rfc1978 says the ConfigReq is
correct, so we'd better go along...
1999-03-11 01:49:15 +00:00
brian
b63a2823ef If /etc/ppp/ppp.conf doesn't exist, mention that the
configuration file can't be found rather than saying
that the label can't be found.
Pointed out by: Greg Black <gjb@comkey.com.au>
1999-03-09 20:39:03 +00:00
brian
e412315216 Don't destroy the old server socket another ``set server''
call fails.
1999-03-08 22:35:19 +00:00
brian
e36037abff Don't forget to call modem_Found() when connecting
via an external program - otherwise we get no
throughput stats and connection count increase.
1999-03-07 20:58:48 +00:00
ghelmer
70205dd33d Add leading 0 in front of octal file permissions number.
OK'ed by:	Brian Somers <brian@freebsd.org>
PR:		docs/9843
1999-03-07 20:27:45 +00:00
brian
7ae299d980 Support PPTP via libalias (``alias pptp addr''). 1999-03-07 18:13:44 +00:00
brian
121ec0cce6 Support proxying & transparent proxying curtesy of libalias(3).
Order the alias command descriptions.
Order the SEE ALSO entries.
1999-03-07 15:02:38 +00:00
brian
89abf4706b Correctly drop existing connections when reopening the diagnostic
socket.
1999-03-07 11:54:43 +00:00
brian
e8558b0707 Read from fd[0] and write to fd[1] where `fd' is the
result of a pipe().  This matters under OpenBSD.
1999-03-07 01:41:40 +00:00
brian
2c3a4510e5 Use socketpair() instead of pipe()... pipe() doesn't return
two bi-directional descriptors under OpenBSD.
1999-03-07 01:41:27 +00:00