Commit Graph

1180 Commits

Author SHA1 Message Date
Brian Somers
7e795ebe38 NetBSD has moved ``extern int errno;'' to signal.h :-/
Submitted by:	Kazuyoshi Kato <kazk@yyy.or.jp>
1999-09-20 07:36:46 +00:00
Brian Somers
a77cab77c5 NetBSD requires net/if.h for the IFF_* defines (as well as OpenBSD) ! 1999-09-20 07:18:50 +00:00
Brian Somers
4d9d17fe7d Correct the return from FilterCheck for fragments
PR:		13771
Submitted by:	Dean M. Phillips <dphill@inav.net>
1999-09-16 18:47:59 +00:00
Brian Somers
f02c2029cf Cosmetic:
alias_cmd -> nat_cmd after a repo-copy
1999-09-08 07:34:52 +00:00
Brian Somers
55b9d469e8 We don't need a queue for *CP data - these are IP-only queues. 1999-09-07 14:34:55 +00:00
Brian Somers
da47788649 Introduce a forth IP packet queue. Urgent packets with
ip_tos == IPTOS_LOWDELAY now get precidence over urgent
packets with ip_tos != IPTOS_LOWDELAY and non-urgent packets
with ip_tos == IPTOS_LOWDELAY.

Enhance the ``set urgent'' syntax to allow for urgent UDP
packets as well as urgent TCP packets.
1999-09-07 07:51:11 +00:00
Brian Somers
19c566804c Make the ``Problem with IP header length'' error a bit more verbose 1999-09-06 18:20:26 +00:00
Brian Somers
f914f3c09c $FreeBSD$ -> __DATE__
This is probably more appropriate that $Date$ anyway
1999-09-06 18:11:50 +00:00
Brian Somers
b4f63b0b8b When logging warning messages, there are now three scenarios:
o If a prompt is executing the command, only display the warning to
  that prompt
o If a prompt is executing a ``load'' command, display the warning
  to all prompts *and* syslog
o Otherwise, display the warning to all prompts *and* syslog.
1999-09-06 08:16:33 +00:00
Peter Wemm
2735dafdfc $Date$ -> $FreeBSD$ 1999-09-06 07:36:44 +00:00
Brian Somers
442f849547 o Split the two IPCP queues into three - one for FSM data
(LCP/CCP/IPCP), one for urgent IP traffic and one for
  everything else.
o Add the ``set urgent'' command for adjusting the list of
  urgent port numbers.  The default urgent ports are 21, 22,
  23, 513, 514, 543 and 544 (Ports 80 and 81 have been
  removed from the default priority list).
o Increase the buffered packet threshold from 20 to 30.
o Report the number of packets in the IP output queue and the
  list of urgent ports under ``show ipcp''.
1999-09-04 00:00:21 +00:00
Brian Somers
f10f520361 When sending radius authentication requests:
Supply RAD_NAS_IDENTIFIER if we have a `hostname` and
  RAD_IP_ADDRESS if that hostname resolves.

  Supply RAD_NAS_PORT using the ttyslot() of the tty that
  we're authenticating on if it's a tty device.

Partially submitted by: Andriy I Pilipenko <bamby@marka.net.ua>
PR:			12225
1999-09-03 10:31:34 +00:00
Peter Wemm
97d92980a9 $Id$ -> $FreeBSD$ 1999-08-28 01:35:59 +00:00
Jordan K. Hubbard
3b3533f56d I misunderstood the failure mode - revert BINMODE to 4554. I'm still
going to remove ppp from the installation options in 5 days if ppp is
still broken, however, as it hasn't worked at installation time
for several weeks now and it's only causing people to fill my mailbox
with questions.
1999-08-27 07:47:17 +00:00
Jordan K. Hubbard
4d391b8dd9 I don't know who decided that an install mode of 4544 was correct, but
for a binary it's far from it.  This is why sysinstall is unable to run
ppp at startup time and causing weirdies in -current.
1999-08-27 06:01:27 +00:00
Brian Somers
8473f372df Rebuild the list of interface numbers to names if we're trying
to evaluate an interface number that didn't previously exist.
1999-08-26 20:01:20 +00:00
Brian Somers
6fd578c435 Aligh mbufs to sizeof(long), not 4 1999-08-26 06:37:53 +00:00
Brian Somers
28f6cd8d9d Fix some mdoc(7) style inconsistences
Submitted by: Alexey M. Zelkin" <phantom@cris.net>
1999-08-25 21:39:40 +00:00
Brian Somers
4c960c5274 Cosmetic: bring closer to RELENG_3 1999-08-23 23:13:59 +00:00
Brian Somers
a3d4bca7a0 NOALIAS -> NONAT
Reminded by: jkh
1999-08-22 23:17:57 +00:00
Brian Somers
d40a462ae2 Allow authkey to be changed independently of the current phase. 1999-08-22 01:29:53 +00:00
Brian Somers
67b072f732 o Add the -foreground switch. This switch behaves like -background except
that ppp stays in the foreground.
o Add the -quiet switch to quieten ppps startup
o Add the -nat flag and discourage the use of the -alias flag.  Both do
  the same thing.
o Correct some nat usage strings.
o Change the internal ``alias'' command to ``nat''.
1999-08-19 18:15:52 +00:00
Brian Somers
62d50f2278 Mention `alias enable no'', not `alias enable off''. 1999-08-18 15:35:54 +00:00
Brian Somers
dade2407e6 Implement a minimum idle time value as an optional second argument
to ``set timeout''.
This is useful for situations where your minimum call charge is (say)
5 minutes (like mine is)
1999-08-17 17:22:46 +00:00
Brian Somers
44e73c1254 Set the close-on-exec flag for all unused descriptors when
exec()ing other programs.
1999-08-17 14:59:05 +00:00
Brian Somers
8a59beb7de If we receive an IPCP protocol reject, bring it down. 1999-08-10 08:42:20 +00:00
Brian Somers
cde8638bc5 Back out the last patch. I'm too tired to apply patches. 1999-08-09 23:49:59 +00:00
Brian Somers
02b485a4b8 Remove CLOCAL when we're not in -dedicated mode.
PR:		13046
Submitted by:	Vsevolod Lobko <seva@alex-ua.com>
1999-08-09 23:38:56 +00:00
Brian Somers
e531f89a62 Change printf formats %q[du] -> %ll[du] 1999-08-09 22:56:18 +00:00
Brian Somers
1080ea25e8 Insist that ppp.conf and it's parent directories aren't `other'
writable rather than not being writable at all.

PR:			13009
Kind-of submitted by:	Anthony Kimball <alk@pobox.com>
1999-08-09 22:54:51 +00:00
Brian Somers
b18a6818a6 Silence a warning about uninitialized variables. 1999-08-08 17:36:10 +00:00
Brian Somers
7ad4503cb4 Don't includei 4b support on the alpha 1999-08-08 17:35:35 +00:00
Brian Somers
9cf01ccf8c Don't log_Printf(..., buf) in case buf contains %s
Info provided by: Ollivier Robert <roberto@keltia.freenix.fr>
1999-08-08 15:19:00 +00:00
Brian Somers
eb6e5e05f9 Add ISDN support via isdnd & i4b. This requires version
0.81.1 of the i4b code - namely support of the I4B_VR_REQ
ioctl via the i4brbchX device.

Ppp controls the phone number, but idle timers and
SYNC/RAW decisions are still made by isdnd (in isdnd.rc).

This involves a new datalink state machine phase.  The
``wait for carrier'' phase happens after dialing but
before logging in.  The whole dial state should really
be abstracted so that each device type can deal with it
in its own way (thinking about PPPoE) - but that'll have
to wait.

The ``set cd'' symantics remain the same for tty devices,
but we now delay until we either get CD or timeout waiting
(at which time we drop the link if we require CD).

For i4b devices we always insist on carrier.

Thanks to hm@ for his help, and especially for pointing out
that I *don't* need to re-implement isdnd (that was a huge
waste of time !) :-]
1999-08-06 20:04:08 +00:00
Brian Somers
dbb69e525e If the clock is put back, ensure that we don't end up dividing by
zero when calculating our throughput
1999-08-06 01:34:03 +00:00
Brian Somers
ab2de065b2 o Obsolete the undocumented ``set weight'' command.
o If we're using RADIUS and the RADIUS mtu is less than our
  peers mru/mrru, reduce our mtu to this value for NetBSD too.
o Make struct throughput's sample period dynamic and tweak the ppp
  version number to reflect the extra stuff being passed through
  the local domain socket as a result (MP mode).
o Measure the current throughput based on the number of samples actually
  taken rather than on the full sample period.
o Keep the throughput statisics persistent while being passed to
  another ppp invocation through the local domain socket.
o When showing throughput statistics after the timer has stopped, use
  the stopped time for overall calculations, not the current time.
  Also show the stopped time and how long the current throughput has
  been sampled for.
o Use time() consistently in throughput.c
o Tighten up the ``show bundle'' output.
o Introduce the ``set bandwidth'' command.
o Rewrite the ``set autoload'' command.  It now takes three arguments
  and works based on a rolling bundle throughput average compared against
  the theoretical bundle bandwidth over a given period (read: it's now
  functional).
1999-08-05 10:32:16 +00:00
Brian Somers
93a25fb90a Reorganise ppp's usage to avoid some mandoc limitations.
Suggested by: wollman
1999-08-03 16:14:38 +00:00
Brian Somers
badaf18d92 Mention that ospf is a possible filter protocol. 1999-08-02 21:45:36 +00:00
Brian Somers
62e85934b8 #ifdef IPPROTO_OSPFIGP before expecting it to be defined.
This unbreaks OpenBSD.
1999-08-02 15:29:19 +00:00
Brian Somers
2faae814fb Filter ospf and igmp separately.
Kind-of submitted by: phk
1999-08-02 11:53:16 +00:00
Brian Somers
12197c9e76 Mention which rfc the DNS/NBNS IPCP extensions come from. 1999-07-29 14:37:26 +00:00
Brian Somers
7722ec20ee Don't return a garbage mbuf pointer after storing it
as an unresolved fragment.
1999-07-28 19:39:00 +00:00
Brian Somers
804c097b9e Fix a load of typos
Use sizeof, not a hardcode value.

Some of it submitted by:  Peter Jeremy <jeremyp@gsmx07.alcatel.com.au>
1999-07-28 03:01:52 +00:00
Brian Somers
cad7e7426a o Overhaul filtering, adding facilities to jump over rules and to
negate the sense of rules.
o Remove the redundant (and undocumented) ``host'' and ``port''
  words (README.changes updated).
o Don't permit (and ignore) garbage instead of the protocol.

Mostly submitted by:  Peter Jeremy <jeremyp@gsmx07.alcatel.com.au>
1999-07-27 23:44:00 +00:00
Brian Somers
8d14e328f9 If we've negotiated CBCP and have also specified ``none'' as a possible
callback option, and the server sends us CBCP_NONUM, proceed directly
to the network phase rather than insisting on our configured CBCP
option.

Mostly submitted by: kkphang <phang@dgate.po.my>
1999-07-27 13:47:59 +00:00
Brian Somers
83a18abc10 Be a bit more consistent with variable names. 1999-07-27 00:30:32 +00:00
Brian Somers
b4d797e707 Fix an off-by-one error and correct the man page WRT clearing
filters.

Submitted by:	Peter Jeremy <peter.jeremy@alcatel.com.au>
PR:		12437
1999-07-26 11:15:11 +00:00
Brian Somers
ef8fcfa7f2 When we fetch previously retrieved IP fragments from the alias
tables, copy them correctly back into our mbuf rather giving a
bzero'd count to memcpy() and ending up with a 0 byte fragment.

The old code resulted in a 0 byte write to the tun device which
tickled a bug that resulted in a panic :-(
1999-07-24 02:53:39 +00:00
Brian Somers
02ad5579d0 Fix a typo
Submitted by:	Rich Wood <rich@chugaboom.net>
1999-07-17 10:33:57 +00:00
Brian Somers
55b04d88d5 Don't declare `end' if we aren't compiling radius support. 1999-07-15 02:02:51 +00:00
Brian Somers
ad21dff290 Oops - add a missing cast. 1999-07-10 00:08:19 +00:00
Brian Somers
32bd4110d5 Leap through one more hoop to avoid alignment problems. 1999-07-10 00:03:58 +00:00
Brian Somers
ddd6808024 Don't bother read()ing if we ``expect'' nothing in our chat script. 1999-06-26 02:54:36 +00:00
Brian Somers
6a32b41413 If we run out of chat script immediately after a successfully executed
expect-send-expect sequence, finish gracefully, don't core dump.
This bug has been there for over a year - I could never reproduce it !

Straw provided by: Andre Albsmeier <andre.albsmeier@mchp.siemens.de>
1999-06-26 02:54:24 +00:00
Brian Somers
1f9e5fe5fa Support `igmp' filters.
Mostly submitted by: Timo Geusch <freebsd@sleepycat.ukpeople.net>
1999-06-23 16:48:24 +00:00
Brian Somers
6ca65df0a7 Disable TUNSLMODE when we first open the tun device.
Submitted by: Ian West <ian@niw.com.au>
1999-06-22 11:31:42 +00:00
Brian Somers
08da4867ae Don't use the ``next'' redial timer if we have no phone number at all. 1999-06-18 13:49:01 +00:00
Brian Somers
ec3026b6f7 Come up with something useful when someone searches for
``dynamic IP''.
1999-06-14 10:12:41 +00:00
Brian Somers
ad227d8bcc Show the correct error if we fail to open a device. 1999-06-11 13:28:29 +00:00
Brian Somers
fbe3e6af84 Describe why a ``magic'' enddisc is not always a good idea. 1999-06-11 11:27:18 +00:00
Brian Somers
5dfb9210ae Allow reserved substitution strings to be escaped by preceeding them
with a backslash.
1999-06-10 09:34:57 +00:00
Brian Somers
194c225d5c Never bring a link back up after receiving a terminating signal,
don't rely on already being in PHASE_DEAD.
1999-06-10 09:06:30 +00:00
Brian Somers
9afe6bdaee Allow a remote IP and port range specification in the
``alias port'' command.
1999-06-10 00:17:27 +00:00
Brian Somers
ab959eb2b3 Initialise `mp'. 1999-06-09 20:27:26 +00:00
Brian Somers
7063995c94 Allow our endpoint discriminator to be enabled, disabled, accepted
and denied.  This is necessary for some MP implementations that
get confused if you accept their endpoint discriminator but reject
their MRRU.
1999-06-09 16:54:04 +00:00
Brian Somers
8fb106c674 Use the correct pid when substituting PROCESSID.
Problem reported by: Amedeo Beck Peccoz <gea@gressoney.it>
1999-06-09 08:47:36 +00:00
Brian Somers
68645f3954 Don't use static variables if we don't have to. 1999-06-08 20:12:06 +00:00
Brian Somers
c506ecd549 Don't drop the last character from lines in ppp.secret unless it's '\n'. 1999-06-08 20:11:53 +00:00
Brian Somers
aa8574707e Don't IPCP TLD if we're already doing it. This prevents
recursion by doing something like ``down'' or ``quit all''
in ppp.linkdown.
1999-06-08 11:58:27 +00:00
Brian Somers
b12ce35537 Make the `load'', dial'' and `open'' commands a big clearer.
Requested by: Michael Heitmeier <MICHAEL_HEITMEIER@HP-Germany-om12.om.hp.com>
1999-06-08 11:57:59 +00:00
Brian Somers
f5a99677a3 Correct the way ppp transfers links on the server side in MP
mode by padding out the ``struct device'' to the maximum
device size.
Bump the ppp version number to indicate the transfer format
change.

This should make MP over tty and udp devices functional again.
1999-06-05 21:36:00 +00:00
Brian Somers
64e0f466ce Fix some MP sequence number comparison bogons that are tickled by
having different speed links in a bundle.  This would manifest itself
by having the link occasionally hang, but revive when a new connection
is made....
Make ``show mp'' a bit prettier.
1999-06-03 13:29:32 +00:00
Brian Somers
fa0d521656 Oops, quieten a compiler warning. 1999-06-02 23:06:21 +00:00
Brian Somers
0d4fe7a80f Mention physical and sync logging in the ``set log''
usage message.
1999-06-02 21:28:02 +00:00
Brian Somers
411675bae3 o Alter the mbuf type as it's processed by different layers.
o Show more information about missing MP fragments in ``show mp''.
o Do away with mbuf_Log().  It was showing mbuf stats twice on
  receipt of LCP/CCP/IPCP packets.... ???!!?
o Pre-allocate a bit extra when creating LQR packets to avoid having
  to allocate another mbuf in mbuf_Prepend().
1999-06-02 15:59:09 +00:00
Brian Somers
ac685e314f Introduce the ``keep-session'' option. Refer to the man
page for details.  This allows MP over non-tty devices where
the original ppp process must not exit (such as sshd-spawned
ppp sessions).
1999-06-02 00:46:55 +00:00
Brian Somers
e6923505ee Increase the length of an individual device name to LINE_LEN.
Adjust the base physical device name correctly after a link
transfer (allowing correct multilink callbacks).
1999-06-01 19:08:59 +00:00
Brian Somers
ba16c8408d Make async/sync/physical/hdlc dumps prettier by showing printable
characters at the end of the line in hexdump style.
1999-06-01 16:01:48 +00:00
Brian Somers
d7452b10bd Mention that using MYADDR and HISADDR with ``set filter''
will result in the rules being updated any time MYADDR
or HISADDR change.
1999-06-01 08:46:53 +00:00
Brian Somers
1d1fc0171e Remember if MYADDR or HISADDR is used in a filter add tweak all
filters any time either value changes.
1999-05-31 23:57:40 +00:00
Brian Somers
65cec6e754 Don't forget to free the mbufs that get processed by
mp_Assemble().
Leak spotted by: louqi
1999-05-28 08:03:24 +00:00
Brian Somers
2b14671a9d Handle unterminated quoted strings without dup'ing the last character
with an out-by-one-memcpy.
1999-05-27 16:51:47 +00:00
Brian Somers
4d9c2bb9ae Add some comments, optimise out a few strlen()s and
remove a few extraneous assignments.
1999-05-27 09:50:10 +00:00
Brian Somers
d0b3b745ba Call tty_Offline() from tty_Cooked() and tty_Free(), just in
case ppp is abending and hasn't called physical_Offline()
already.
1999-05-27 08:42:49 +00:00
Brian Somers
4e5196e9dc Move the code for tweaking interface flags into one function. 1999-05-27 08:42:17 +00:00
Brian Somers
acbd1f00fd Correct the ``ignoring sync/async'' warnings so that they show
up with the correct device type.
Reassign the correct tcpdevice or execdevice after transfering
a link in MP server mode.
1999-05-24 16:39:17 +00:00
Brian Somers
26e64ed9d4 Don't warn about ``!'' lines being unindented commands in ppp.conf. 1999-05-24 09:04:35 +00:00
Brian Somers
9950fb2a00 Move the tty locking stuff back out to physical.c so
that we lock the device *before* we open it.
We still open the device only once - and then ask all
our handlers if they know how to handle it.
1999-05-18 01:37:46 +00:00
Brian Somers
9b898a03d8 Mention ``show layers'' 1999-05-16 13:39:03 +00:00
Brian Somers
4b698945d4 Initialise ttydevice::Timer 1999-05-16 11:58:48 +00:00
Poul-Henning Kamp
00a7225817 Be more non-crypto friendly at make release time. 1999-05-15 19:21:15 +00:00
Brian Somers
4faec43070 Add ``show layers'' to see the protocol layering for a link. 1999-05-15 02:24:18 +00:00
Brian Somers
6471628d59 Handle LCP echo reqs properly again (broken with the
layering changes).
1999-05-14 09:36:06 +00:00
Brian Somers
76d9853864 Ensure that we're not going to overflow our ``struct tun''
when we mbuf_Read() into it.
Add the link name to a few diagnostics.
1999-05-14 09:35:51 +00:00
Brian Somers
27be3ac662 Initialise the struct device part of struct ttydevice. 1999-05-13 19:29:40 +00:00
Brian Somers
8dbb1e2bfd Fix a bum pointer dereference and make some variable
names more consistent.
Stack trace supplied by: Joe Clarke <jclarke@cisco.com>
1999-05-13 16:35:13 +00:00
Brian Somers
ac37ab22eb Ignore repeated signals sent to the parent in background
mode.
1999-05-13 16:34:57 +00:00
Brian Somers
d543a9c02a 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 Somers
ef868a34ad Oops - hook the sync push diagnostics correctly. 1999-05-12 09:54:33 +00:00
Brian Somers
6815097bf7 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 Somers
229c76251b 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 Somers
3377c28cd9 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 Somers
5d9e610366 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 Somers
315164071c 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 Somers
3de29bbf70 Mention ``show mp''.
Describe ACFComp correctly.
1999-05-02 08:52:50 +00:00
Brian Somers
22d1222bab Make ports 80 & 81 ``interactive''. 1999-05-01 11:31:29 +00:00
Brian Somers
a8d7acdc03 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 Somers
7884358fdd Add support for NetBSD 1999-04-26 08:54:34 +00:00
Brian Somers
119386a38b #include <errno.h>, not <sys/errno.h> 1999-04-26 08:54:25 +00:00
Brian Somers
7c6b3a5704 Spelling police 1999-04-23 13:45:50 +00:00
Brian Somers
28e610e378 int -> size_t 1999-04-21 08:13:25 +00:00
Brian Somers
a38cc90182 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 Somers
1599fce5c6 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 Somers
4ae29eb73c 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 Somers
0ca6f91b84 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 Somers
5945a079eb 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 Somers
0b19fc6d3f Remove forgotten variable. 1999-04-03 12:01:38 +00:00
Brian Somers
e304484545 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 Somers
29b873f38d Drop PAP & CHAP packets if we're not in NETWORK or AUTHENTICATE
phase.
1999-04-01 11:05:23 +00:00
Brian Somers
eb2d27cfc3 Avoid a few warnings on the alpha 1999-03-31 14:21:46 +00:00
Brian Somers
32c75b7dab Oops - remove register keyword 1999-03-31 13:44:07 +00:00
Brian Somers
d3b121132a Another alignment bogon. 1999-03-31 13:33:43 +00:00
Brian Somers
c2b0f58ca3 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 Somers
486105bcb0 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 Somers
a2bc4c59c3 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 Somers
aad80d9f1b 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 Somers
fe3094cdd7 Allow port ranges in ``alias port''. 1999-03-25 23:36:25 +00:00
Brian Somers
0f203c7e2e Undo possible damage done by the new TUNSIFMODE ioctl
in FreeBSD-current.
1999-03-25 11:37:51 +00:00
Brian Somers
4a948cab8b 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 Somers
24a6ccfc38 Replace hardcoded quoting with Sq or Dq. 1999-03-19 01:42:45 +00:00
Brian Somers
521e2a5300 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 Somers
8b9e9093a0 Use ``Sx'' when xref'ing sections. 1999-03-18 21:53:56 +00:00
Brian Somers
7919e54037 Remove all remaining [ and ] characters (and do things properly). 1999-03-18 21:50:52 +00:00
Brian Somers
38ab56c440 Remove all hardcoded [...] syntax.
With help from: Daniel C. Sobral <dcs@newsguy.com>
1999-03-17 00:25:43 +00:00
Brian Somers
516bf2ccb8 Mention changes to the default authentication behaviour. 1999-03-16 11:54:02 +00:00
Brian Somers
615beb1f86 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 Somers
a36ca3cc08 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 Somers
1322e9adf8 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 Somers
661a0e900d Don't destroy the old server socket another ``set server''
call fails.
1999-03-08 22:35:19 +00:00
Brian Somers
bf1d816501 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
Guy Helmer
d5f39fc1d1 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 Somers
50a63ab997 Support PPTP via libalias (``alias pptp addr''). 1999-03-07 18:13:44 +00:00
Brian Somers
d318fe8e17 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 Somers
a39fd2143c Correctly drop existing connections when reopening the diagnostic
socket.
1999-03-07 11:54:43 +00:00
Brian Somers
4be0e57de1 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 Somers
da42fa6060 Use socketpair() instead of pipe()... pipe() doesn't return
two bi-directional descriptors under OpenBSD.
1999-03-07 01:41:27 +00:00
Brian Somers
a611383fee Reopen descriptor 0 as /dev/tty when in interactive mode
in OpenBSD as well as FreeBSD (I still don't know why).
Add a debug diagnostic when creating a child process as
a link.
1999-03-07 01:02:39 +00:00
Brian Somers
c11e57a340 Extend the ``set redial'' command to allow incremental
redial timeouts.
1999-03-04 17:42:15 +00:00
Brian Somers
bc76350ef9 Correct some ntohl/htonl bogons in the netmask handling.
This was pretty harmless as netmasks on a POINTOPOINT
interface are pretty much ignored, but it looked funny.

Mention the configured netmask in ``show ipcp''.

Describe in more detail what a proxy arp entry is.
1999-03-03 23:00:41 +00:00
Brian Somers
536d5b3331 When negotiating ACCMAPs, sync our ACCMAP with the
peers by ORing the two together and NAKing or REQing
the result rather than allowing seperate local/peer
values.
If the peer REJs our ACCMAP and our ACCMAP isn't 0,
warn about it and ignore the rejection.
1999-03-01 13:46:45 +00:00
Brian Somers
8a8d99276f Comment why we do a TLF when we get a ``Down'' event in state
``closing''.

Pointed out by: archie

Don't do a TLF when we get a ``Catastrphic Protocol Reject'' event
in state ``closed'' or ``stopped''.

Pointed out but not suggested by: archie

This makes no difference in the current implementation as
LcpLayerFinish() does nothing but log the event, but I disagree
in principle because it unbalances the TLF/TLS calls which
(IMHO) doesn't fit with the intentions of the RFC.

Maybe the RFC author had a reason for this.  It can only happen
in two circumstances:

- if LCP has already been negotiated then stopped or closed and we
  receive a protocol reject, then we must already have done a TLF.
  Why do one again and stay in the same state ?

- if LCP hasn't yet been started and we receive an unsolicted
  protocol reject, why should we TLF when we haven't done a TLS ?
1999-03-01 02:52:39 +00:00
Brian Somers
ec5e7f36dc Bring up auto links despite there being no data queued if
we're already in network phase and our autoload values
are set with no minimum threshold (the default).

Tell the autoload timer that it's ``coming up'' *before*
calling AutoLoadTimeout() directly... not after.  This
prevents the very first demand-dial connection from
immediately disconnecting when there are other auto links.

Problem diagnosis:  Ted Mittelstaedt <tedm@toybox.placo.com>
1999-03-01 00:43:48 +00:00
Brian Somers
479508cf28 Allow control over the number of ConfigREQ & TermREQ attempts
that are made in each of the FSMs (LCP, CCP & IPCP) and the
number of REQs/Challenges for PAP/CHAP by accepting more arguments
in the ``set {c,ip,l}cpretry'' and ``set {ch,p}apretry'' commands.

Change the non-convergence thresholds to 3 times the number of configured
REQ tries (rather than the previous fixed ``10'').  We now notice
repeated NAKs and REJs rather than just REQs.

Don't suggest that CHAP 0x05 isn't supported when it's not configured.

Fix some bugs that expose themselves with smaller numbers of retries:
o Handle instantaneous disconnects (set device /dev/null) correctly
  by stopping all fsm timers in fsm2initial.
o Don't forget to uu_unlock() devices that are files but are not
  ttys (set device /dev/zero).

Fix a *HORRENDOUS* bug in RFC1661 (already fixed for an Open event in state
``Closed''):
  According to the state transition table, a RCR+ or RCR- received in
  the ``Stopped'' state are supposed to InitRestartCounter, SendConfigReq
  and SendConfig{Ack,Nak}.  However, in ``Stopped'', we haven't yet
  done a TLS (or the last thing we did is a TLF).  We must therefore
  do the TLS at this point !

  This was never noticed before because LCP and CCP used not use
  LayerStart() for anything interesting, and IPCP tends to go into
  Stopped then get a Down because of an LCP RTR rather than getting a
  RCR again.
1999-02-26 21:28:14 +00:00
Brian Somers
26baedc5e4 Parse IP addresses more securely - specifically, don't allow
a bum name to return as 0.0.0.0... we don't want ``delete xxx''
to delete the default route when xxx doesn't resolve.

Support IP number specifications as the host when specifying
a tcp-style device (rather than *just* hostnames).
1999-02-25 20:05:55 +00:00
Brian Somers
b5c347a37a When our dial timeout is ``random'', display its value
correctly by invoking the timer to get the value before
displaying the message.
Don't assume that a value of 0 is ``random'' in
``show datalink''.
Make the random value between 1 and DIAL_TIMEOUT rather
than between 0 and DIAL_TIMEOUT-1
1999-02-25 12:00:04 +00:00
Brian Somers
f4007327ae Don't immediately bring auto links back up in multilink
mode (when there is more than one auto link) if there is
no data queued to go out.
Reviewed by: Tom Torrance <tom@tomqnx.com>
1999-02-25 11:59:36 +00:00
Brian Somers
b7ff18add2 Handle empty PAP & CHAP packets (containing only an FSM header).
Some CHAP implementations send no welcome message with their
SUCCESS/FAILURE packets.  This was being mis-identified as
a truncated packet by the new authentication code :-(
1999-02-20 01:12:45 +00:00
Brian Somers
b31a24cad8 Be a little more verbose about dodgy looking authentication
packets before dropping them in the bit-bucket.
1999-02-19 10:48:42 +00:00
Brian Somers
f522bee006 Build correctly when -DNOCRYPT is used. 1999-02-18 19:45:06 +00:00
Brian Somers
4043c04fa5 Don't expect a chap response if we haven't negotiated
chap 0x80.
1999-02-18 19:11:46 +00:00
Brian Somers
5e31549897 Fully support both NT and LANMan CHAP type 0x80 as both
authenticator and authenticatee.
1999-02-18 00:52:15 +00:00
Brian Somers
64cfdfc6fb Nuke any remaining auth timers when datalinks come back down
to DATALINK_LCP.
1999-02-17 02:11:28 +00:00
Brian Somers
6b4286e0f5 Wait by default for one second after the login script
is complete before checking carrier.  If it's there,
the device supports carrier.  If it's not it doesn't.

Add the ``set cd'' command for deciding how soon to check
for carrier, and for deciding if carrier is REQUIRED.

The default has changed:  Pre 2.0 versions of ppp waited
for 1 second.  Version 2 didn't wait, but this causes
problems with some (few?) modems that don't assert carrier
immediately on reporting CONNECT.  The one second delay
is back now and can be removed with ``set cd 0''.

Bump the ppp version number in case this needs to be changed
again....
1999-02-16 00:16:56 +00:00
Brian Somers
9576e3690f Describe manual dialing in greater detail.
Mention more rfc numbers.
Don't ``.Nm Ppp'' (just use ``.Nm'').
1999-02-14 12:16:41 +00:00
Brian Somers
a8103305cb When executing a command as part of a dial/login/hangup
script, expand words in the same way as !bg does.
1999-02-12 00:52:30 +00:00
Brian Somers
00b001185c /etc/ppp/ppp.*.sample -> /usr/share/examples/ppp/ppp.*.sample 1999-02-11 16:34:15 +00:00
Brian Somers
58330d7bfa When resending chap challenges, resend the same challenge
each time rather than making up a new one.

Increase the authname/authkey max sizes to 100 characters.

Allow ``authkey'' specifications beginning with ``!''.
When a challenge is received, the text following the
``!'' is executed as a program (expanding stuff in the same
way that ``sh'' and ``!bg'' do).  The program is passed the
peer name, peer challenge and local ``authname'' on standard
input and is expected to output the name/key combination that
should be used to build the CHAP response.

This provides support for Secure ID cards (guess what I was
given at work recently!) using CHAP.

Examples will follow.
1999-02-11 10:14:08 +00:00
Brian Somers
10c76ef5a2 Correct server-side chap authentication comparison
(broken with last commit).
1999-02-07 13:56:29 +00:00
Brian Somers
35f456775d Remove forgotten diagnostics 1999-02-07 13:48:38 +00:00
Brian Somers
f0cdd9c021 Decouple pap & chap output routines from the corresponding
input routines and take advantage of the new init/continue
interface in libradius.  This allows a timely response on
other links in an MP setup while RADIUS requests are in
progress as well as the ability to handle other data from
the peer in parallel.  It should also make the future addition
of PAM support trivial.

While I'm in there, validate pap & chap header IDs if
``idcheck'' is enabled (the default) for other FSM packet
types.

NOTE: This involved integrating the generation of chap
      challenges and the validation of chap responses
      (and commenting what's going on in those routines).
      I currently have no way of testing ppps ability
      to respond to M$Chap CHALLENGEs correctly, so if
      someone could do the honours, it'd be much
      appreciated (it *looks* ok!).

Sponsored by: Internet Business Solutions Ltd., Switzerland
1999-02-06 02:54:47 +00:00
Brian Somers
7686a20048 Encode & Decode the PROTOCOMP fields correctly.
When NAKing the peer, get as close as we can to what
he REQd.
When the peer NAKs us, get as close as we can to what
they NAKd with on our next REQ.
1999-02-02 20:27:12 +00:00
Brian Somers
ed0e926999 Don't allow root to specify non-existent labels on
the command line.
Revise the error diagnostics so that invalid labels
are reported immediately.
1999-02-02 09:35:30 +00:00
Brian Somers
aceaed9283 Reimplement the previous fix (no response to PAP requests)
at the authentication layer rather than at the PAP layer
so that it also applies to CHAP (no response to CHAP
challenges).
1999-02-02 09:35:17 +00:00
Brian Somers
8db502bbfd If we receive no answer from the server when sending PAP
requests, give up (don't sit there indefinitely).
1999-02-01 13:42:25 +00:00
Brian Somers
82d6780c9e o Send a CHAP challenge of 16 random digits when RADIUS is
configured.  This isn't strictly necessary according to the
  rfc, but it's suggested there....
o Don't forget to include our authname when sending a
  CHAP challenge when RADIUS is configured.
o Don't supply the ``16'' representing the chap answer
  length to radius_Authenticate() - libradius does this
  for us.
o When we successfully authenticate via radius_Authenticate(),
  continue with datalink_AuthOk() as expected.

Sponsored by: Internet Business Solutions Ltd., Switzerland
1999-01-29 22:46:31 +00:00
Bill Fumerola
65aaeb15d5 Reflect syslog(8)'s acceptance of either tabs or spaces.
PR:		docs/9660
Submitted by:	Kris Kennaway <kkennawa@physics.adelaide.edu.au>
1999-01-28 22:55:08 +00:00
Brian Somers
0b67236810 MAINTAINER=brian@FreeBSD.org 1999-01-28 15:16:38 +00:00
Brian Somers
4026c3661c Version 2.0 > 2.1 to reflection RADIUS additions. 1999-01-28 09:40:15 +00:00
Brian Somers
972a1bcf5d Initial RADIUS support (using libradius). See the man page for
details.  Compiling with -DNORADIUS (the default for `release')
removes support.

TODO: The functionality in libradius::rad_send_request() needs
      to be supplied as a set of routines so that ppp doesn't
      have to wait indefinitely for the radius server(s).  Instead,
      we need to get a descriptor back, select() on the descriptor,
      and ask libradius to service it when necessary.
      For now, ppp blocks SIGALRM while in rad_send_request(), so
      it misses PAP/CHAP retries & timeouts if they occur.

      Only PAP is functional.  When CHAP is attempted, libradius
      complains that no User-Password has been specified... rfc2138
      says that it *mustn't* be used for CHAP :-(

Sponsored by: Internet Business Solutions Ltd., Switzerland
1999-01-28 01:56:34 +00:00
Brian Somers
756783fc20 Don't SEGV when ``set proctitle'' is used in the default
section.
Submitted by:	Dan Lukes <dan@obluda.cz>
PR:		9669
1999-01-25 10:19:03 +00:00
Brian Somers
b51a60cc47 Recurse when we've switched state via LoginDone(). If we've
got an open link, we want it to be select()d on - otherwise
we get a freeze when ``openmode'' is passive.
1999-01-20 18:06:52 +00:00
Brian Somers
d9949a3acf Change the maximum number of filters from 20 to 40.
Increase requested by: "Clement T. Cole" <clemc@echo.ccc.com>
1999-01-19 22:16:02 +00:00
Brian Somers
3d091023a7 Suggest that ``set proctitle'' is used in ppp.linkup when
USER is expected to be expanded.
1999-01-19 22:15:41 +00:00
Brian Somers
8e1fea3105 Send the peer-decided PSTN address with the CBCP Ack,
otherwise windows clients will keep resending the
response :-/
It'd be nice if M$ would document this sort of thing !
Problem reported by: Andrzej Tobola <san@tmp.iem.pw.edu.pl>
1999-01-19 22:15:25 +00:00
Brian Somers
5165af6fa8 If we've configured CBCP *and* another not-so-important
CALLBACK protocol and end up agreeing CBCP, DTRT and go
into CBCP phase rather than mistakenly terminating as
if CBCP wasn't agreed.
Problem reported by: Alexander Dubinin <alex@nstl.nnov.ru>
1999-01-12 21:50:20 +00:00
Brian Somers
29ee67822b Correct some formatting errors (one is a groff bug)
Noted & partially submitted by: Peter Jeremy <peter.jeremy@auss2.alcatel.com.au>
PR:				9432
1999-01-11 15:05:39 +00:00
SADA Kenji
d78afcd462 Typo: /etc/ppp/ppp.conf.example -> ppp.conf.sample
Submitted by:	Sugiura Shiro <ssugiura@duo.co.jp>
1999-01-10 17:23:10 +00:00
Brian Somers
c0cdeb7c06 Only call isatty() when we open our descriptor, and remember
the answer.

If we later get a descriptor exception from select(), we know
that it's a tty (isatty() returns 0 after the exception on a
tty) and remember to call modem_LogicalClose().

The upshot of it all is that descriptor exceptions dont leave
the tty locked any more.
1999-01-10 01:26:30 +00:00
Brian Somers
47dd77c14d Don't use the next phone number after the ``|'' if the
dial & login are successful.
Submitted by:   Toshiomi Moriki <Toshiomi.Moriki@ma1.seikyou.ne.jp>
PR:             9382
1999-01-08 09:04:58 +00:00
Brian Somers
c935f085d0 Typo: The idle timer is ignored in -ddial and -dedicated
mode, not in -ddial and -direct.
Pointed out by: Chris Timmons <skynyrd@opus.cts.cwu.edu>
1999-01-06 00:08:15 +00:00
Brian Somers
0aa8aa17dd Don't warn when ``add xxxx HISADDR'' fails because HISADDR
is 0.0.0.0.  This isn't a problem as the sticky route is still
added.
Suggested by: Chris Timmons <skynyrd@opus.cts.cwu.edu>
1999-01-06 00:08:03 +00:00
Brian Somers
2ff64793ad Don't return stack-based data. This may have caused
server-side CHAP authentication problems in the past :-/
1998-12-17 00:28:12 +00:00
Brian Somers
8b09cf1cc7 Fix a rather bad latency problem (uncovered by the recent timer commit).
Problem reported by: Christopher Hall <hsw@acm.org>
1998-12-15 19:12:24 +00:00
Brian Somers
7e778f13d9 Rather than interrupting 10 times per second then checking
to see if there's anything to do, schedule the next alarm
based on the next required timeout.
This decreases the load when there are lots of relatively
idle ppp processes.

While I'm in there, handle the possibility that a timeout
makes the timer element go out of scope by grabbing the
enext pointer before executing the timer function.
1998-12-14 19:24:30 +00:00
Brian Somers
87766c5694 Allow a variable as the first arg to ``set proctitle''. 1998-12-14 01:15:34 +00:00
Brian Somers
80b2397ccf Mention the cosmetic necessity to ``iface clear'' in ppp.linkdown. 1998-12-14 01:15:14 +00:00
Brian Somers
f1e8dfb20c Boy, this was tricky to find:
Remove any dial timer that might be hanging around at
  datalink_Destroy() time.  This timer may be left running
  after the link is closed (making sure it's not automatically
  opened again too soon).
1998-12-10 18:36:53 +00:00
Brian Somers
991c2a7b75 When using `set device !someprogram'', when `someprogram''
exits, it causes a select() exception.
Handle these select() exceptions on link descriptors in pretty
much the same way as loss of carrier rather than dropping out
in confusion.
1998-12-10 18:36:30 +00:00
Bill Fumerola
331012fd01 Typo and formatting updates.
PR:		docs/8504
Approved by:	Brian Somers
Submitted by:	Kazuo Horikawa <horikawa@jp.FreeBSD.org>
1998-12-04 19:39:05 +00:00
Brian Somers
2b81c773d8 Don't forget to initialise dbuff when debugging. 1998-11-10 00:32:39 +00:00
Brian Somers
7670a437cb Explain what the command line switches do and what the
various prompts signify.
1998-11-08 13:06:19 +00:00
Brian Somers
a7ec696209 Fix a few typos
Submitted by: Forgotten (sorry)
1998-11-08 13:05:30 +00:00
Brian Somers
c2896afbb9 Don't delete the primary interface address when
``iface clean'' is used in auto mode while there
are no active links.
1998-11-05 21:59:48 +00:00
Brian Somers
9fddf73ad0 If the CBCP callee offsers no callback, send our configured
response anyway.  This is what Win95 does, despite it not
being documented in the cbcp spec....
Reported by: Bill <petheram@acm.org>
1998-10-31 17:38:48 +00:00
Brian Somers
7cf368eb42 Allow multiple systems (config labels) on the command
line and in the ``load'' & ``dial'' commands.  The last
label loaded becomes the current label name.
Only require a label for -auto mode.
1998-10-31 17:38:47 +00:00
Brian Somers
84cac80f19 Don't call PacketAliasIn() when we turn around packets destined
for our interface address.  We're about to call ip_Input()
anyway, and ip_Input() does the PacketAliasIn().
Stack trace provided by: Cameron Grant <gandalf@vilnya.demon.co.uk>
1998-10-29 23:47:10 +00:00
Brian Somers
004c6ac7fd Remove some redundant (#if 0'd) code. 1998-10-29 02:12:54 +00:00
Brian Somers
ca618bcfc9 Untimeout the chat expect timer as soon as we get a
match - otherwise, with a delayed (\\d) ``send'', the
timeout may happen during the send and cause a failure.
Problem reported by: David L. Vondrasek <dallas.tx@airmail.net>
1998-10-27 22:53:25 +00:00
Brian Somers
0f781a7252 Add ``set proctitle'' for changing argv[0]. All substitutions
are done in the same way as command execution.

For example, ``set proctitle USER INTERFACE PROCESSID'' would
be useful in a -direct profile for identifying who's connected.
1998-10-27 22:53:22 +00:00
Brian Somers
a237dcba17 Add ``PROCESSID'' as a constant expanded when running
commands.
1998-10-27 22:53:19 +00:00
Brian Somers
0460185ddf Stress that `none'' must be specified on the set callback'
line if callback is to be optional.
Requested by: Andrzej Tobola <san@koziolek.lublin.top.pl>
1998-10-27 22:53:18 +00:00
Brian Somers
3535dfb0be Shuffle the iface-alias option so that's in alphabetical
order like the rest of the options.
1998-10-26 19:07:42 +00:00
Brian Somers
3afe5ccb75 Add ``enable proxyall'' support. This adds proxy ARP entries
for every machine on every class C or smaller subnet that we
route to.
Add ``set {send,recv}pipe'' for controlling our socket buffer
sizes.
Mention the IP number with the problem in a few error messages.
All submitted by:     Craig Leres <leres@ee.lbl.gov>
Modified slightly by: me
1998-10-26 19:07:39 +00:00
Brian Somers
17871c5f6c Fix the interface alias code. Previously, I was expecting something
like

tun0: flags=blah
	10.0.0.1 -> 10.0.0.100
	10.0.0.2 -> 10.0.0.100
	10.0.0.3 -> 10.0.0.100

to DTRT, despite the SIOCAIFADDR for each new alias returning
-1 & EEXIST while adding the alias anyway.  In real life, once
we have the second alias with the same destination, nothing will
route any more !  Also, because I was ignoring EEXIST, the
dynamic IP assignment code was assigning duplicate addresses
('cos it was being lied to by iface_inAdd()).

Now we have

tun0: flags=blah
	10.0.0.1 -> 255.255.255.255
	10.0.0.2 -> 10.0.0.100
	10.0.0.3 -> 255.255.255.255

This works - stuff bound to 10.1 & 10.3 will be considered alive
by the kernel, and when they route back to the tun device, the
packets get aliased to 10.2 and go out to 10.100 (as with the
original plan).

We still see the EEXIST in SIOCAIFADDR, but ignore it when our
destination is 255.255.255.255, assuming that the alias *was*
actually added.

Additionally, ``iface add'' may now optionally be given only
the interface address.  The mask & destination default to
255.255.255.255.
1998-10-26 19:07:36 +00:00
Brian Somers
f6f122b486 Don't send a DELAY value when sending CBCP_NONUM
(as per the spec).
Spotted by: Andrzej Tobola <san@koziolek.lublin.top.pl>
1998-10-25 23:35:15 +00:00
Brian Somers
9b5f8ffdc6 Loosen our restrictions on setting enddisc, mrru,
shortseq, authname and authkey.

o Auth{name,key} may additionally be set in PHASE_ESTABLISH.
o The others may be set in PHASE_ESTABLISH as long as no links
  have yet reached DATALINK_LCP.
1998-10-24 01:08:45 +00:00
Brian Somers
8fa6ebe47d Solve the ``first connection'' problem that occurs on
demand-dial links with dynamic IP numbers where the program
that causes the dial bind()s to an interface address that is
subsequently changed after ppp negotiation.

The problem is defeated by adding negotiated addresses to the
tun interface as additional alias addresses and providing a set
of ``iface'' commands for managing the interface.  Libalias is
also required (and what a name clash!) - it happily IP-aliases
the address so that the source is that of the primary (negotiated)
interface and un-IP-aliases it on the way back.

An ``enable iface-alias'' is done implicitly by the -alias command
line switch.  If -alias isn't given, iface-aliasing is disabled by
default and can't be enabled 'till an ``alias enable yes'' is done.
``alias enable no'' silently disables iface-alias.

So, for dynamic-IP-type-connections, running ``ppp -alias -auto blah''
will work for the first connection, although existing bindings will
not survive a disconnect/connect as the TCP peer will be trying to
send to the old IP address - the packets won't route.

It's now a lot easier to add IPXCP to ppp with minor updates to
the new iface.[ch] (if anyone ever gets 'round to it).

It's also now possible to manually add interface aliases with
something like ``iface add 1.2.3.4/24 5.6.7.8''.  This allows
multi-homed ppp links :-)
1998-10-22 02:32:50 +00:00
Brian Somers
74274b67f4 Specify BINOWN explicitly - we don't want to depend on bsd.own.mk
setting it to ``root''.
1998-10-20 00:19:38 +00:00
Brian Somers
359b523392 Warn about (but process anyway) CBCP messages with an incorrect id. 1998-10-17 12:28:11 +00:00
Brian Somers
0e0c8ee5fc Adjust our CBCP RESP id so that it's the same as the REQ.
Submitted by: Tom <root@majestix.cmr.no>
1998-10-17 12:28:09 +00:00
Brian Somers
f21c8aecd1 If the client asks for CBCP, then replies with CBCP_NONUM
to our REQ, allow no dialback - but only if we've
``set cbcp *''..
Suggested by: Andrzej Tobola <san@koziolek.lublin.top.pl>
1998-10-17 12:28:08 +00:00
Brian Somers
cf784a89b7 Explain what the ``*'' means for a CBCP phone number
in ``show link''.
1998-10-17 12:28:06 +00:00
Brian Somers
571b60bf70 Move help displays left one column to avoid problems with
broken terminals that can't handle 80 columns followed by
a linefeed.
Pointed out by: bde@FreeBSD.org
1998-10-17 12:28:05 +00:00
Brian Somers
8c8d43deb7 Warn if we encounter an unindented line that isn't
terminated with a ``:''.
1998-10-17 12:28:03 +00:00
Brian Somers
e377bbf860 Warn that the specific chap protocol isn't supported when
rejecting CHAP because of byte 5.
Suggested by: Daniel O'Callaghan <danny@hilink.com.au>
1998-10-17 12:28:02 +00:00
David E. O'Brien
2887f586f0 Remove useless `BINOWN=root' now that it is the default. 1998-09-19 22:42:14 +00:00
Brian Somers
68b414d193 Revert SEE ALSO ordering to version 1.124
Patched correctly by: wosch
Blunder pointed out by: bde
1998-09-18 23:28:10 +00:00
Brian Somers
1595bacdf6 Sync with OpenBSD ifdefs 1998-09-17 00:45:27 +00:00
Brian Somers
0122d745f5 Alphabeticalize SEE ALSO section. 1998-09-17 00:45:12 +00:00
Brian Somers
426281551d Correct ua_ntohs. 1998-09-15 17:22:20 +00:00
Brian Somers
e9af5a192a Reflect reality 1998-09-09 22:51:49 +00:00
Brian Somers
7ac9884afe Initialise lcp::his_mru to the ``set mtu'' value if it's less
than DEF_MRU, allowing our interface mtu to be decreased
despite negotiation with the peer.
1998-09-09 00:03:09 +00:00
Brian Somers
9e8ec64b6b Don't cast potentially unaligned addresses to pointers to
non-char types on non-i386 architectures.
On Alpha and Sparc we get a bus error if we do.
1998-09-04 18:26:00 +00:00
Wolfram Schneider
acd8019083 Sort cross references. 1998-08-31 16:41:09 +00:00
Brian Somers
c9a426e9e1 Remove OpenBSD build support - let the Makefile vary per
OS rather than making it a mess and potentially screwing
up cross builds.
Suggested by: bde
1998-08-31 12:14:32 +00:00
Brian Somers
e8ede338eb Add OpenBSD build support 1998-08-30 23:53:25 +00:00
Brian Somers
a804ec2201 Don't use `-width 20'', it's misleading. Use `-width XX''
instead.
1998-08-29 23:02:45 +00:00
Brian Somers
7fdd475323 Don't claim that the alias library isn't loaded until
used.
1998-08-29 23:02:43 +00:00
Brian Somers
131ef891c7 Add the following word substitutions when running a shell
command:
  AUTHNAME:     The local authname
  ENDDISC:      The local endpoint discriminator
  LABEL:        The configuration label in use
  PEER_ENDDISC: The peers endpoint discriminator
  USER:         The peers authname
1998-08-29 23:02:42 +00:00
Brian Somers
080a2247c2 Allow the use of HISADDR, MYADDR and INTERFACE as words
embedded in the args of a "shell" or "!bg" command, and
only accept upper case versions.

We can now do:
  ! sh -c "ifconfig INTERFACE >/tmp/myfile"
1998-08-29 23:02:39 +00:00
Brian Somers
e227fded3f Mention `cbcp'' in `set log ?'' 1998-08-29 18:37:02 +00:00
Brian Somers
37d818fb21 Fix some OpenBSD/alpha warnings 1998-08-26 18:07:57 +00:00
Brian Somers
653ead3365 Remove redundant include file. 1998-08-26 17:39:38 +00:00
Brian Somers
5a72b6eda3 Put the IP buffer queues into struct ipcp.
Forgotten by: me
1998-08-26 17:39:37 +00:00
Brian Somers
4a7a066106 The protocol must be in network byte order (OpenBSD only). 1998-08-26 17:39:35 +00:00
Brian Somers
f80e09b53a Mention what ``set authname'' does in -direct mode. 1998-08-25 17:48:55 +00:00
Brian Somers
6f8e9f0a8a If we've got a full output buffer queue and cannot send
anything for two mintues (see ``set choked'' and ``show
bundle''), nuke the ip, mp and link level buffer queues.

This should fix problems where ``ppp -auto'' seems to stop
responding after failing to connect to the peer a few times.
1998-08-25 17:48:43 +00:00
Brian Somers
9773f8c0c8 Consolidate the two malloc()s that are done when allocating
an mbuf.
1998-08-21 18:10:15 +00:00
Brian Somers
3f37462e61 Make ``show mem'' display the number of packets allocated as well as the
number of octets.
1998-08-21 18:09:57 +00:00
Brian Somers
b6f5f44231 Destroy any existing chat timeouts in datalink_ComeDown()
If we're told to close/down while in DIAL or LOGIN state,
we don't want to keep our timeout running :-/
1998-08-18 00:53:48 +00:00