Commit Graph

833 Commits

Author SHA1 Message Date
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
Brian Somers
fc254be9bd Don't lose an allocated pointer if realloc() fails.
Free it instead.
Pointed out by: Theo de Raadt
1998-08-17 06:42:40 +00:00
Brian Somers
f841c4e56e Be careful about using ``.Bd -literal'' as groff sometimes keeps
the `-literal' after the closing .Ed.
Where this happens, use ``.Bd -unfilled'' with ``.It Li'' to dodge
the problem - it looks better too.
Problem reported by: Dom Mitchell <dom@phmit.demon.co.uk>
1998-08-11 18:59:36 +00:00
Brian Somers
7955cdca14 `dns' option defaults to disabled, not enabled. 1998-08-09 23:40:31 +00:00
Brian Somers
0f5ecc8b46 Add missing .El 1998-08-09 17:17:23 +00:00
Brian Somers
74e4a8dab7 /var/run/tunX.pid is created regardless of ppps mode.
Spotted by: Alex <garbanzo@hooked.net>
1998-08-09 17:17:10 +00:00
Brian Somers
44cae95d95 Use IFT_PPP from net/if_types.h rather than hard-coding it. 1998-08-09 16:41:01 +00:00
Brian Somers
bf1d3ff614 When entering ``term'' mode, don't output any messages until
the device is successfully opened.  If we fail to open it,
mention the fact.
Also go back into command mode as soon as the device is closed
rather than waiting for the user to type something before noticing.
1998-08-09 15:34:11 +00:00
Brian Somers
2a63083586 Don't forget to call PacketAliasInit().
PR:	7515
1998-08-09 09:13:54 +00:00
Brian Somers
0581dfeff0 Missed these... 1998-08-07 18:44:16 +00:00
Brian Somers
92b0955883 o Support callback types NONE, E.164, AUTH and CBCP.
(see the new ``set callback'' and ``set cbcp'' commands)
o Add a ``cbcp'' log level and mbuf type.
o Don't dump core when \T is given in ``set login'' or
  ``set hangup''.
o Allow ``*'' and blanks as placeholders in ppp.secret and
  allow a fifth field for specifying auth/cbcp dialback
  parameters.
o Remove a few extraneous #includes
o Define the default number of REQs (restart counter) in defs.h
  rather than hardcoding ``5'' all over the place.
o Fix a few man page inconsistencies.
1998-08-07 18:42:51 +00:00
Brian Somers
0bdcbcbe9b PR: 7469
Be careful that the current or next prompt in the list
that we're iterating through doesn't get changed by
descriptor_Read().
1998-08-02 13:01:16 +00:00
Brian Somers
94245ac66c On receipt of a sig 15, do a full bundle_Close() even if
our current phase is PHASE_DEAD as it's possible that there
are links stuck in OPENING waiting for a redial timer.
1998-08-02 06:56:40 +00:00
Brian Somers
68a0e17122 When we receive an LCP config REQ in Opened state,
do TLD *before* processing the config request as
TLD initialises the peers LCP values.

It's strange that an IRC isn't required here - but
I'll bow to the wisdom of the rfc.
1998-08-01 01:02:41 +00:00
Brian Somers
cff2b1c9b4 Cosmetic: Diagnostic wording (Unknown -> Unexpected) 1998-08-01 01:02:12 +00:00
Brian Somers
c31ac0b396 Always dial immediately on `open'', dial'' and `call''.
We don't need a ``!''.
1998-07-31 19:50:24 +00:00
Brian Somers
ba23f3976a Allow an optional ``!'' in the open, dial & call commands.
When used, the redial timer is ignored and the modem is
opened immediately.
1998-07-29 18:21:17 +00:00
Brian Somers
50fa554e42 Use tcsetattr TCSANOW instead of TCSADRAIN so that dedicated mode doesn't
end up blocking indefinitely when there's no carrier.
1998-07-29 18:20:53 +00:00
Brian Somers
2062443fd7 Silence ``Network unreachable'' warnings when using
``add .... HISADDR''.  The network will never be
reachable at this point unless we're in -auto or reading
the command from ppp.linkup.

We can now run the following lines and get the expected
results:

  set ifaddr 1.2.3.4/0 5.6.7.8/0
  add default HISADDR

where a route is added immediately in auto mode and the
whole thing is delayed 'till the IP numbers have been
agreed in other modes.

Essentially, ppp.linkup is no longer required.
1998-07-28 21:54:54 +00:00
Brian Somers
93280d730e o Tidy up PAP and CHAP diagnostics. They're now all logged as PHASE
diagnostics (which are on by default).
o Deal correctly with both sides wanting CHAP.
o Output a warning if we're using an empty ``authname''.  This is
  *not* what we want to do.
1998-07-28 21:54:30 +00:00
Brian Somers
501f548011 Add missing braces - without them, the IP & label were mis-selected
from ppp.secret.
Problem reported by: Dom Mitchell <dom@phmit.demon.co.uk>
1998-07-19 21:07:24 +00:00
Brian Somers
3b09372a14 Correct enable/disable handling (broken when ironing out
32/64 bit issues recently).
1998-07-12 00:30:18 +00:00
Brian Somers
7d797fa780 Check the ``alive'' filter for a packet *before* the
mbuf is deallocated by vj_SendFrame().
1998-07-11 19:05:24 +00:00
Brian Somers
14593dfd98 Change MIN_LQRPERIOD from 5 to 2. 1998-07-11 02:48:36 +00:00
Brian Somers
9dae3e8d4b Don't disable ^D in interactive mode.
Wished for by: pkh
1998-07-04 22:04:12 +00:00
Brian Somers
0dcb215a89 Don't require context when there's only one link
for ``open lcp''
1998-07-04 22:03:56 +00:00
Brian Somers
274211d743 Version 2.0-beta becomes 2.0 :-) 1998-07-04 10:24:49 +00:00
Brian Somers
d4af231c81 Only start checking carrier when the datalink state machine
exceeds DATALINK_READY.  When we go back to READY or less
(eg. ``close lcp''), switch the carrier-checking-timer off again.

This fixes the callback example in ppp.conf.sample.
Noted as broken by: Damian Kuczynski <damian@best.pw.edu.pl>
1998-07-03 17:24:38 +00:00
Brian Somers
06337856e1 The CCP layer now behaves as follows:
o If we've denied and disabled all compression protocols, stay
  in ST_INITIAL and do an LCP protocol reject if we receive any
  CCP packets.
o If we've disabled all compression protocols, go to ST_STOPPED
  and wait for the other side to ask for something.
o If we've got anything enabled, start REQing as soon as the auth
  layer is up.
o If we're in multilink mode, than the link level CCP goes
  straight to ST_STOPPED irrespective of what's configured so that
  we never try to compress compressed stuff by default.
1998-06-30 23:04:17 +00:00
Brian Somers
3a2e4f621c o Fix remaining sizeof problems for 64 bit machines.
o Allow ``set ....'' when we have multiple links but aren't in
  multilink mode.
o Do a TLS when we receive a ``Open'' event in ``Closed'' state,
  despite the rfc state transition table.  This is clearly an
  error in the RFC as TLS cannot have yet been called (without
  TLF) in the ``Closed'' state.
  I've posted a message to comp.protocols.ppp for confirmation.
1998-06-27 23:48:54 +00:00
Brian Somers
2d42ffabf1 More u_long -> u_int32_t 1998-06-27 16:24:52 +00:00
Brian Somers
6163841150 I find it *really* irritating that you can't ``cvs rm''
things without removing them first.
1998-06-27 15:33:17 +00:00
Brian Somers
10a9be1e88 Remove redundant includes 1998-06-27 14:18:15 +00:00
Brian Somers
615ad4f957 Don't dlopen()/dlsym() libalias, use it in the same way
as the rest of the world uses libraries.
1998-06-27 14:17:28 +00:00
Brian Somers
3f06c5995f Don't assume ``sizeof(u_long) == 4''
Submitted by: Theo
1998-06-27 12:03:50 +00:00
Brian Somers
7d81ddf5bd Cast void * to char * for log_Printf(). 1998-06-27 12:03:46 +00:00
Brian Somers
032d427689 ``struct tunnel_header'' -> u_int32_t in OpenBSD.
struct tunnel_header is going soon.

Suggested by: Theo
1998-06-27 12:03:43 +00:00
Brian Somers
d9823e8a6d Don't depend on sizeof(u_long) == 4. 1998-06-26 19:02:40 +00:00
Brian Somers
3132bc1efe DISTRIBUTION=des 1998-06-26 18:50:29 +00:00
Brian Somers
897f9429f9 Add `ipcp'' as an optional argument to `open'', and make
open capable of re-negotiatiating the various layers.

It is now possible to change various link options and then
re-open the relevant layer, making the changes effective -
for example, switching off VJ compression or starting ECHO
LQRs on-the-fly.
1998-06-25 22:33:31 +00:00
Brian Somers
141b3b7817 Oops - forgot these with the last commit. 1998-06-24 19:36:37 +00:00
Brian Somers
1af29a6e96 o If we come out of select() with only write descriptors that
end up writing zero bytes, sleep for 1/10 of a second so that
  we don't end up using up too much cpu.
  This should only ever happen on systems that wrongly report a
  descriptor as writable despite the tty buffer being full.
  Discussed with: Jeff Evarts

o Do an initial run-time check to see if select() alters the passed
  timeval.  This knowledge isn't yet used, but will be soon.
1998-06-24 19:33:36 +00:00
Brian Somers
8901e74902 Suggest the use of `accept dns'', not `enable dns'' in
server mode.
1998-06-21 11:14:50 +00:00
Brian Somers
74d14b4cc9 Do an InitRestartCounter when we get a TerminateReq
in Opened state.....  I have no idea why this never
caused problems in the past - maybe the restart
counter was bogusly initialised somewhere else :-/
1998-06-20 01:55:28 +00:00
Brian Somers
d2a69fc3ba Re-initialise our timer service after fork()ing
to lose our terminal session.  Is this a bug in
setitimer() ? - it must be called again in the
child !
1998-06-20 01:36:38 +00:00
Brian Somers
09206a6f2a Create & use fsm2initial(), a function to bring a
state machine back to ST_INITIAL without going
through any unnecessary TLS/TLF pairs.
1998-06-20 00:19:42 +00:00
Brian Somers
ad5b0e8be6 Make sure our recvmsg() is a SCM_RIGHTS message when
we receive a link from another ppp.
1998-06-18 23:38:04 +00:00
Brian Somers
1181eb8216 Don't assume that all ttys support carrier detect. If we're
passing our controlling terminal, always record our pid so
that the receiving ppp knows who to HUP.
1998-06-18 22:43:18 +00:00