Commit Graph

1336 Commits

Author SHA1 Message Date
Brian Somers
2661ef38a2 Ignore ``#'' properly when told to 2000-10-28 23:56:03 +00:00
Brian Somers
7c0833500d Report the type of mbuf that couldn't be allocated before
aborting ppp.
2000-10-27 05:34:40 +00:00
Brian Somers
ba093e813d Use rad_acct_open() instead of rad_auth_open().
Suggested by: Victor Ivanov <v0rbiz@icon.bg>
2000-10-15 01:05:57 +00:00
Brian Somers
2000bfb4cd Don't define NOATM now that /usr/include/netnatm/ is created properly. 2000-10-15 00:46:58 +00:00
Brian Somers
b2c374decb If write() gives -1/ENOBUFS, keep the packet and sleep for 1/10th
of a second before attempting to write it again (unless there's
something else to do instead).
2000-10-09 22:49:44 +00:00
Brian Somers
8a52f3ecfe Create fd_sets big enough to handle getdtablesize() descriptors. 2000-10-09 21:18:23 +00:00
Brian Somers
495d24ec4a Fix some style nits 2000-09-14 22:03:13 +00:00
Brian Somers
481a4f6155 Support PPPoATM, disabled for now as /usr/include/netnatm doesn't exist
Submitted by: Jakob Stoklund Olesen <stoklund@taxidriver.dk>
2000-09-14 22:02:54 +00:00
Brian Somers
2231246bb3 Understand IPPROTO_ESP and IPPROTO_AH packets
Submitted by: Angelos D. Keromytis <angelos@dsl.cis.upenn.edu>
2000-09-14 18:01:54 +00:00
Brian Somers
1a0f89e02b Spelling police
Submitted by:	des
2000-09-06 21:02:06 +00:00
Brian Somers
57c94dd3bc libutil.h is no longer required for setproctitle() 2000-09-02 02:16:51 +00:00
Ralf S. Engelschall
573365d5ad Fix resolv.conf line hint: "name-server" -> "nameserver" 2000-08-31 11:13:20 +00:00
Brian Somers
8507c35e67 Use arc4random() instead of random() 2000-08-31 00:45:24 +00:00
Brian Somers
4c066cf9f1 Don't treat two or more whitespace followed by a comment as
an empty argument

PR:	20937 (maybe)
PR:	20938
2000-08-30 20:51:13 +00:00
Brian Somers
106ae3d065 Complain about invalid arguments passed to ``set ifaddr'' 2000-08-30 20:49:50 +00:00
Brian Somers
43df7f1485 Correct LogMAX
Broken by:	me
Submitted by:	Mark Hannon <markhannon@one.net.au>
2000-08-29 17:00:52 +00:00
Brian Somers
75fbd185a0 Use srandom() under OpenBSD
Submitted by:	Matt Behrens <matt@megaweapon.zigg.com>
2000-08-29 16:47:45 +00:00
Brian Somers
06a43ce058 Add LogFILTER logging to log packets allowed by the dial filter and
dropped by any filter.

Submitted by: Mark Hannon <markhannon@one.net.au>

with some small tweaks by me.
2000-08-28 23:24:52 +00:00
Brian Somers
794c9bbc80 Support radius accounting, and add a packet count to throughput
statistics as a side effect.

Submitted by: Marcin Cieslak <saper@system.pl>

with some tweaks to RAD_ACCT_SESSION_ID and
RAD_ACCT_MULTI_SESSION_ID generation by me.
2000-08-28 22:44:54 +00:00
Brian Somers
68602c3ee0 Make -DNOSUID (or -DPPP_NOSUID) possible to build ppp without SUID
capabilities.
2000-08-18 00:01:44 +00:00
Brian Somers
c1a6c9e21c Warn that the ``alias'' command is depricated.
We still process it for now though.
2000-08-18 00:01:30 +00:00
Brian Somers
3fd1e17c02 If we're in MP mode with a single open link, MP link level compression
isn't open and the links MRU >= our MRRU, send outbound traffic as
PROTO_IP rather than PROTO_MP.  This shaves some bytes off the front
of each packet 'till the second link is brought up.

Idea obtained from: Cisco
2000-08-17 14:14:54 +00:00
Brian Somers
242373a7ee ISDN B channels have a bandwidth of 64000, not 65536
Pointed out by: Christian Weisgerber <naddy@mips.inka.de>
2000-08-16 13:54:04 +00:00
Brian Somers
ebe96675ee setproctitle() doesn't need to be called with root privs, so move
it from id.c into defs.c
2000-08-16 09:07:23 +00:00
Brian Somers
2ceee5e9a7 Default the bandwidth of an ISDN B channel to 65536bps 2000-08-16 09:06:59 +00:00
Brian Somers
91cbd2eec0 Maintain input and output throughput averages and choose the highest
of the two when calculating the MP throughput average for the ``set
autoload'' implementation.

This makes more sense as all links I know of are full-duplex.  This
also means that people may need to adjust their autoload settings
as 100% bandwidth is now the theoretical maximum rather than 200%
(but of course, halfing the current settings is probably not the
correct answer either!).

This involves a ppp version bump as we need to pass an extra
throughput array through the MP local domain socket.
2000-08-15 10:25:42 +00:00
Brian Somers
11572abf62 Calculate the average link throughput using a counter based on the
cumulative total of all active links rather than basing it on the
total of PROTO_MP traffic.

This fixes a problem whereby Cisco routers send PROTO_IP packets only
when there's only one link (hmm, what a good idea!).
2000-08-15 00:59:21 +00:00
Brian Somers
c837ca39c6 Don't delete sticky routes when unconfiguring the interface.
Deleting all routes that match the interface is sufficient.
2000-08-14 08:43:40 +00:00
Brian Somers
689f6effbb Index: ppp.8
===================================================================
RCS file: /home/ncvs/src/usr.sbin/ppp/ppp.8,v
retrieving revision 1.233
diff -u -r1.233 ppp.8
--- ppp.8	2000/08/10 13:26:01	1.233
+++ ppp.8	2000/08/12 19:50:41
@@ -1,8 +1,8 @@
 .\" $FreeBSD: src/usr.sbin/ppp/ppp.8,v 1.233 2000/08/10 13:26:01 brian Exp $
 .Dd 20 September 1995
 .nr XX \w'\fC00'
-.Os FreeBSD
 .Dt PPP 8
+.Os
 .Sh NAME
 .Nm ppp
 .Nd Point to Point Protocol (a.k.a. user-ppp)
2000-08-13 22:03:42 +00:00
Brian Somers
d0cd375a1d Mention that pppoe requires netgraph(4) and without it, an external
pppoe program must be used (such as pppoe(8) on OpenBSD).
2000-08-10 13:26:01 +00:00
Brian Somers
a2240f353a Allow leading ``!'' characters in authkeys and chat scripts to
be doubled up to mean a single literaly ``!''.
2000-08-09 19:29:50 +00:00
Brian Somers
4e9d6a7fc5 If the first character of the `set title'' argument is -',
put it into the format string, supporting ps's tweak to
setproctitle().
2000-08-09 10:22:48 +00:00
Brian Somers
759c81cbad Don't mis-interpret sockaddr_in6 structures as sockaddr_in structures
when purging routes.
2000-07-20 10:38:12 +00:00
Brian Somers
c8e376b582 Describe the new VERSION and COMPILATIONDATE macros and mention that the
``ident'' command will expand macros.
2000-07-19 10:14:00 +00:00
Brian Somers
1038894eb0 Support link identification from rfc1570
Two new commands are available; ``ident'' and ``sendident''.
2000-07-19 02:10:35 +00:00
Brian Somers
dd49e719c1 Permit multiple ``allow user'' lines in any given section
This avoids line length limits when large numbers of users are allowed
access to ppp.
2000-07-12 23:13:52 +00:00
Brian Somers
60498ea783 Correct ``set filter'' usage
Spotted by:	sheldonh
2000-07-12 16:31:47 +00:00
Brian Somers
cb8bd8dd72 Fix a rather nasty latency problem that occurs with single tcp sessions
thorough an MP setup with only a single link.
2000-07-12 15:08:03 +00:00
Brian Somers
0a4b6c5c5c Allow a ``timeout secs'' filter option to let specific packet types
effect the idle timer in different ways.

Submitted by: Stefan Esser <se@freebsd.org>

With adjustments by me to document the option in the man page and to
give the same semantics for outgoing traffic as incoming.

I made the style more consistent in ip.c - this should really have
been done as a separate commit.
2000-07-11 22:11:36 +00:00
Brian Somers
040cfe28d1 Fix -auto breakage introduced with the last commit. 2000-07-11 09:26:02 +00:00
Brian Somers
9825166754 o Log the (payload/size) of all packet types, not just TCP packets
o  If the new ``filter-decapsulation'' is enabled, delve into UDP packets
   that contain 0xff 0x03 as the first two bytes, and if we recognise it
   as PROTO_IP, decapsulate it for the purpose of filter checking.

   If we recognise it as PROTO_<anything else> mention this for logging
   purposes only.

This change is aimed at people running PPPoUDP where the UDP traffic is
being sent over another PPP link.  It's desireable to have the top level
link connected all the time, but to have the bottom level link capable
of decapsulating the traffic and comparing the payload against the filters,
thus allowing ``set filter dial ...'' to work in tunnelled environments.

The caveat here is that the top ppp cannot employ any compression layers
without making the data unreadable for the bottom ppp.  ``disable deflate
pred1 vj'' and ``deny deflate pred1 vj'' is suggested.
2000-07-07 14:22:08 +00:00
Brian Somers
a61800c2f3 kldload ng_ether if we need to. 2000-06-28 09:30:30 +00:00
Brian Somers
ec37734aeb Don't assign an MTU based on the peers first-link MRU in MP mode.
Use the peers MRRU as we're supposed to.
2000-06-24 23:37:14 +00:00
Brian Somers
77fc031d50 Fix a printf-style arg cast (again) 2000-06-23 09:48:26 +00:00
Brian Somers
b25838b462 e.g. -> e.g.,
Obtained from: OpenBSD
2000-06-23 09:48:02 +00:00
Brian Somers
a1bc3dccac Correct PPPoE in multi-link mode
Submitted by: jason@OpenBSD.org
2000-06-22 20:51:03 +00:00
Brian Somers
86c5e1ea4d Remove ``nat pptp'' as this is now done transparently by libalias. 2000-06-20 12:18:40 +00:00
Brian Somers
bee32c7928 Allow padding in LQR ECHO requests
Problem found by: Tomaz Borstnar <tomaz.borstnar@over.net>
2000-06-20 09:13:25 +00:00
Brian Somers
58a575135b Don't mis-match interface names in iface_Create()
Submitted by: Adrian Penisoara <ady@freebsd.ady.ro>
2000-06-19 21:43:48 +00:00
Brian Somers
669b99659d Fix a printf-style format error 2000-06-18 10:07:53 +00:00
Brian Somers
f3039b6800 A few more hard-sentence breaks. 2000-06-13 10:03:28 +00:00
Brian Somers
194750d657 Hard sentence breaks and trailing space tidy-ups
Obtained from: OpenBSD
2000-06-11 14:58:32 +00:00
Brian Somers
e97b220c8c Don't oan about padding characters 2000-06-11 12:22:06 +00:00
Brian Somers
6c1d673108 Add ``set ifqueue'' to control the size of the outgoing packet
queue.  Doing ``set ifqueue 0'' and ``set urgent none'' will allow
full use of luigi's WF2Q code.

Requested by: luigi
2000-06-11 02:30:51 +00:00
Brian Somers
4c24043766 Allow ``set urgent none'' to disable all urgent ports and IPTOS_LOWDELAY
prioritisation.

Requested by: luigi
2000-06-08 20:07:48 +00:00
Brian Somers
a339e6448b Use mp_CheckAutoloadTimer() rather than mp_StopAutoloadTimer()
when opening or closing an auto link due to the autoload
setting.

Spotted by: David Hedley <david@inty.co.uk>
2000-05-31 15:35:29 +00:00
Brian Somers
3356db52df Don't use the umask to chmod local domain server sockets, use
the mask
2000-05-31 09:06:52 +00:00
Brian Somers
962a3cbc83 If the fsm header reports a length greater than the packet size,
drop the packet rather than just whinging about it in the log.
If the fsm header has a smaller length, continue to whinge.
2000-05-26 21:11:55 +00:00
Brian Somers
07e4efad3d Remove an unused variable 2000-05-26 08:29:11 +00:00
Brian Somers
5e269efe6e When we do a `dial'' or `open'' from DATALINK_READY, go to
DATALINK_CARRIER and turn off scripting.

This should fix instances where ``term'' is used followed by ~.
and then ``dial''/``open'' (it currently just sits there looking
at you).

Reported by: Tim Vanderhoek <vanderh@ecf.utoronto.ca>
2000-05-26 08:26:56 +00:00
Brian Somers
682cb20f5d Fix a topy (if (expr); command;)
Submitted by:	Renaud Waldura <renaud@guppy.evolunet.com>
2000-05-25 16:12:55 +00:00
Brian Somers
d4c74446f7 The name /var/log/alias.log is *not* likely to change in the near
future...
2000-05-24 20:56:30 +00:00
Brian Somers
632cd66778 Mention what ``enable proxy'' actually does 2000-05-24 13:49:39 +00:00
Brian Somers
d9626e9459 Honour `set speed sync'' and `set device !program'' when
used together by creating a SOCK_DGRAM socketpair() between
the processes.

Be polite when closing !program links and send a HUP to the
process.  This makes ssh tunnels over unreliable media (such
as via httptunnel) reconnect properly.
2000-05-24 09:05:58 +00:00
Brian Somers
4518b0757f Mention it in the log file when we HUP a process that
controls a link.
2000-05-24 09:05:45 +00:00
Brian Somers
7fe0b59209 Don't attempt to fputs(NULL, fp) when ``enable dns'' is given and
there's no resolv.conf.
Use a umask of 022 when creating resolv.conf, not 0644 !
2000-05-24 01:00:24 +00:00
Brian Somers
eb598e08ff Always pass packets through libalias when NAT is enabled.
Submitted by: luoqi
Forgotten by: me
2000-05-23 14:55:08 +00:00
Brian Somers
bcff338667 Return -2 when tcp_OpenConnection() fails so that ppp doesn't
report that the device name is of an invalid format.
2000-05-22 08:23:35 +00:00
Brian Somers
7ebff0094c Be more verbose when a second link doesn't match the first because the
peer enddisc/authname is different.
2000-05-22 08:23:13 +00:00
Brian Somers
7d7b90c714 Fix a typo 2000-05-11 07:59:21 +00:00
Brian Somers
44d127bc34 Mention that the default is to let external traffic route to
the internal network when NAT is enabled.

Allow ``set target MYADDR'' to stop packets at the gateway.
2000-05-11 07:55:44 +00:00
Brian Somers
17e57a5fe3 Correct a bad bug in m_prepend()
Submitted by: luoqi
2000-05-07 10:08:24 +00:00
Brian Somers
328ecc101e Remove a rogue space 2000-04-13 00:00:46 +00:00
Brian Somers
9bf01bcb6c Add a missing ``break'' 2000-04-09 18:27:08 +00:00
Brian Somers
b42135dee3 When running ppp -background, show comfort messages showing
when we're redialing/reconnecting.

While we're here, log redial, reconnect and phone number
announcements to LogCHAT, and reduce some other logging to
LogDEBUG.
2000-04-07 23:46:14 +00:00
Brian Somers
c8f30703cd I didn't get this right the last time....
When an NCP reaches TLF, *ONLY* datalink_Close() links that are
in DATALINK_OPEN.

When the last link reaches TLD, DOWN all NCPs (as we used to in the
links TLF (which was the wrong place anyway)), as the NCPs aren't
now going to datalink_Close() us unexpectedly, we get to continue
doing what we were told to do in the first place.

The result:  When we lose a link, the IPCP layer goes down and
we actually call the stuff in ppp.linkdown !
2000-04-06 10:03:48 +00:00
Gary Jennejohn
27173c13e8 Pass me the pointy hat.
It was not a good idea to remove csu_header from struct cspace, it had
ramifications which I didn't notice.

Restore src/usr.sbin/ppp/slcompress.h to the way it was, since MAX_HDR
was already defined as 128 there and it's a user program anyway.

In sys/net/slcompress.h make MAX_HDR 128 intead of MLEN to avoid
bloat.

My apologies for any inconvenience.
2000-04-04 09:20:53 +00:00
Brian Somers
2a8e2fe669 Plug two file descriptor leaks 2000-04-03 19:56:49 +00:00
Gary Jennejohn
8810489433 Nuke csu_hdr from struct cspace. csu_hdr is not used anywhere in the
tree. This considerably reduces unnecessary bloat in struct slcompress.

I'm running with this change right now and have seen no negative
side-effects.

On my sytem this reduced kernel BSS by about 25KB.

Submitted by:	bde
Approved by:	brian for user-ppp
2000-04-03 19:54:33 +00:00
Brian Somers
e9d0dd0a1b Allow authname to be changed at any phase, just emit a warning
if it's not DEAD or ESTABLISH
2000-03-31 21:08:43 +00:00
Brian Somers
804e0a12f2 Use INADDR_NONE with PacketAliasSetTarget() if no args are given to
``nat target'', and suggest the use of ``nat target default'' as an
interesting possibility.
2000-03-31 20:42:24 +00:00
Brian Somers
4c2b812c39 Undo the damage done to this file in my last commit 2000-03-31 14:31:36 +00:00
Brian Somers
b7d8533c16 Add the ``nat target'' command. 2000-03-31 14:26:23 +00:00
Brian Somers
9962fa3956 Correct address parsing
Pointed out by: Maxim Sobolev <sobomax@altavista.net>
2000-03-30 10:46:20 +00:00
Brian Somers
b565321aa1 Log information about packets being dropped (probably due to
``nat deny_incoming yes'') by libalias.
2000-03-29 09:31:52 +00:00
Brian Somers
6578fcf3f3 Allow the use of hostnames instead of (and as well as) IP
numbers in all commands.
If people use hostnames and have dodgy resolvers or try to resolve
the hostname before the link is up, they get what they deserve....

Requested by: ru
2000-03-29 09:31:27 +00:00
Brian Somers
0e20b8777c Mention the value of the unexpected return code in nat_LayerPull() 2000-03-29 00:14:24 +00:00
Brian Somers
f3a0d054fe don't treat # specially if PARSE_NOHASH is passed 2000-03-28 15:14:15 +00:00
Brian Somers
effc341fe3 Don't treat # specially here 2000-03-28 15:11:38 +00:00
Brian Somers
5a83ad1eb1 Correct the parent notification diagnostic emitted from the child
process in -background mode (it should report failure if appropriate).
2000-03-22 03:02:01 +00:00
Brian Somers
5a8b6a98df If a links LCP FSM has reached TLF and it's the last link,
don't bother to re-initialise the NCPs.  Instead wait for
bundle_LinkClosed() to be called - IFF it actually is called.

By initialising the NCPs at this point, ppp was recursing
back into the fsm_Down() routing for the link, and losing
track of the reason that the link was being brought down.
The end result was that ``set reconnect'' would never do
anything.

Patiently pointed out by: ru
2000-03-22 03:02:00 +00:00
Brian Somers
4b567bf209 Don't bother setting the dial timer if we've closed a
background/foreground/direct and zero'd the redial/reconnect
counts.
2000-03-22 03:01:56 +00:00
Brian Somers
3ce91245fc Do some vfork() trickery so that the parent can determine
if the childs exec() has succeeded or failed by taking advantage
of the fact that both processes share the same memory.

FWIW:
  I tried to implement this by doing a pipe(), setting the
  write desciptors close-on-exec flag in the child and writing
  errno to the descriptor if the exec() fails.  The parent can
  then ``if (read()) got errno else exec worked''.

  This didn't work though - the child could write() to fd[1] on
  exec failure, but the parent got 0 trying to read() from fd[0] !
  Is this a bug in execve() ?
2000-03-22 03:01:53 +00:00
Brian Somers
0cd8e9020a Call bundle_CleanDatalinks() after UpdateSet() in case we're
dropping out of background/foreground/direct mode.

This avoids either having to wait for the redial timer before
exiting or jaming up in select() waiting for something that'll
never happen.
2000-03-22 03:01:48 +00:00
Brian Somers
a1f961d3a3 Add some diagnostics to prove that incoming IP fragments are
being dealt with correctly.
2000-03-19 12:37:27 +00:00
Brian Somers
311a9da249 Move a comment to make things a bit more readable.
Suggested by: sheldonh
Forgotten by: me
2000-03-16 16:28:27 +00:00
Brian Somers
2793563fc4 Increase bit fields to allow for new values 2000-03-14 20:11:45 +00:00
Brian Somers
959d90ef1d ppps -> ppp's; suggested by sheldonh
.Nm ppp -> .Nm; overlooked by me
Microsofts -> Microsoft's; OpenBSD
2000-03-14 20:04:32 +00:00
Brian Somers
a60f44db18 Understand -DNOINET6 2000-03-14 19:33:13 +00:00
Brian Somers
2a30e2ac0b Understand environment variables in commands
Submitted by: Mark Knight <markk@knigma.org>
2000-03-14 01:47:31 +00:00
Brian Somers
d568d6c405 Add the ``resolv'' command for telling ppp how to deal with resolv.conf.
You can now ``resolv restore'' in ppp.linkdown !
Add DNS0 and DNS1 macros.
2000-03-14 01:47:27 +00:00
Brian Somers
574a3ffd78 Refresh the NAT IP pointer after a potential mbuf reallocation. This
caused frequent lock-ups for individual sessions over a NAT'd ppp link
when MTU sizes ended up more or less exactly wrong.
2000-03-14 01:47:21 +00:00
Brian Somers
209dc10239 Fix some printf-style argument bugs 2000-03-14 01:47:19 +00:00
Brian Somers
ceecaea3de Fix some typos
Obtained from: OpenBSD
2000-03-14 01:47:13 +00:00
Brian Somers
499640f195 Adjust whitespace 2000-03-14 01:47:11 +00:00
Brian Somers
b9fa960d93 Don't include netinet6/in6.h directly. 2000-03-14 01:47:09 +00:00
Brian Somers
8e7bd08ea4 Correct some typos introduced in the descriptor -> fdescriptor change. 2000-03-14 01:47:07 +00:00
Brian Somers
10e629b937 Introduce LOCALNAT and LOCALRAD defines so that the sources can stay
exactly the same in FreeBSD & OpenBSD despite libalias and libradius
being local to the ppp sources under OpenBSD.
2000-03-14 01:47:02 +00:00
Brian Somers
f84f2c0057 Correct UN_SIZE definition
Submitted by: Ben Smithurst <ben@scientia.demon.co.uk>
2000-03-14 01:46:58 +00:00
Brian Somers
24731321e6 Don't ``break'' when we come accross a non-RTM_IFINFO type
entry in the block returned by the NET_RT_IFLIST mib,
``continue''

Broken a few minutes ago by: me
2000-03-14 01:46:56 +00:00
Brian Somers
d6d3eeab46 When ppp can't identify the relevant name, don't use "???", use
<nnn> or <0xxxx> instead.
2000-03-14 01:46:54 +00:00
Brian Somers
52c9ca1968 Add ``set log dns'' to log DNS QUERY packets.
This is invaluable for dial-on-demand connections...
In ppp.linkup:

  set log -dns -tcp/ip

and in ppp.linkdown

  set log +dns +tcp/ip

giving a much better account of why the link came up.
2000-03-14 01:46:49 +00:00
Brian Somers
6b4579784c The interface list that comes back from the PF_ROUTE/NET_RT_IFLIST mib
is aligned.  Teach this to ``show route''.

Clean up some of the sockaddr parsing routines.
2000-03-14 01:46:44 +00:00
Brian Somers
6b38466448 Support IP6 addresses in ``show route''
Also, don't try to output routing entries if either the
RTA_DST or RTA_GATEWAY sockaddrs aren't present.
2000-03-14 01:46:38 +00:00
Brian Somers
76ce2d4bcb When adjusting timer::rest, round to the closest TICKUNIT usecs
value.

This has minimal impact here, but if ppp ever needs to frequently
remove timers before they've timed out, it can badly skew the next
item in the timer list without this change.

The correct fix would be to store usecs in `rest' rather than
TICKUNITs, but the math is easier if we just round...
2000-03-14 01:46:34 +00:00
Brian Somers
e722aa17f8 When we stop a timer that's the first in the timer list, ensure
that we adjust that timers `rest' value (with the current getitimer()
values) before using that to adjust the next items `rest' value.
After adjusting that value, restart the timer service so that we've
now got the correct setitimer() values.
2000-03-14 01:46:31 +00:00
Brian Somers
f013f33ee2 To avoid namespace polution in NetBSD:
``struct descriptor'' -> ``struct fdescriptor''
2000-03-14 01:46:09 +00:00
Kris Kennaway
38e1809ae3 Remove the last vestiges of libRSAglue now that it's an empty stub.
This should fix the buildworld problems some people were seeing.

Approved by:	jkh
2000-03-11 22:34:10 +00:00
Kris Kennaway
bb49f794f5 Buildworld fixes for NO_OPENSSH and NO_OPENSSL
Approved by:	jkh
2000-03-09 06:29:05 +00:00
Sheldon Hearn
4e86fcacf6 Remove more single-space hard sentence breaks. 2000-03-02 14:54:02 +00:00
Mark Murray
ec81a4cee3 Update DISTRIBUTION for new crypto world order 2000-02-29 11:44:18 +00:00
Mark Murray
512182f3ff Use libcrypto instead of libdes. 2000-02-24 21:10:28 +00:00
Ruslan Ermilov
dfd9528b30 Unbroke the reference to libalias(3). 2000-02-05 15:25:15 +00:00
Brian Somers
cda4644c28 Remove MAINTAINER=
I don't claim to own the code and certainly don't want to discourage
people from fixing or updating it.

[I know it's the 29th, but the FREEZE hasn't yet been posted to committers]
2000-01-29 11:08:00 +00:00
Brian Somers
225e259db9 If we're in callback mode, don't forget this fact when we
get into datalink_Down().

Submitted by: David Hedley <david@inty.co.uk>
2000-01-27 00:40:25 +00:00
Brian Somers
d81cf7d011 Actually ignore comments at the end of lines - broken with the commit
that made ppp *not* treat #s in quoted arguments as comments.
2000-01-27 00:40:10 +00:00
Brian Somers
3a7b6d76a7 Handle the availability of TUNSIFHEAD. If it's there, use it.
For the moment this is just overhead, but it'll be used for INET6
support later.
2000-01-23 01:48:19 +00:00
Brian Somers
06b47306d1 Use TUNSIFPID when we change our PID (if it exists). 2000-01-21 00:33:27 +00:00
Brian Somers
82de8666e1 Use AUTHLEN for the length of authname 2000-01-17 12:27:29 +00:00
Brian Somers
278657c32d Don't set ifaddr::in_addrs to 1 after an ``iface clear'' on an interface
with no addresses.
2000-01-07 03:47:12 +00:00
Brian Somers
35099b5d17 include stdlib.h (setproctitle() is prototyped there in OpenBSD) 2000-01-07 03:23:38 +00:00
Brian Somers
ff36f30c56 Call serial devices `cuaXX'' instead of `cuaaX'' (in line
with OpenBSD conventions).
2000-01-07 03:11:56 +00:00
Brian Somers
bb8ec81ec9 .Bl -tag requires -width too
Obtained from: OpenBSD
2000-01-07 03:11:42 +00:00
Brian Somers
57f0cd1068 Remove an unused #define 2000-01-07 03:11:31 +00:00
Brian Somers
323b15a1c0 Ensure that there's a bit of extra space in our buffer when it's
passed to libalias.  If there's not enough space, things like ftp
PORT commands start failing....

Reported by: Gianmarco Giovannelli <gmarco@giovannelli.it>
2000-01-03 20:09:23 +00:00
Brian Somers
a40fdd98b0 Increase M_MAXLEN from 2048 - sizeof struct mbuf to
4096 - sizeof struct mbuf, and set MAX_MRU and MAX_MTU
back to 2048.

2048 is big enough as an MTU/MRU, but we need to be able
to allocate larger mbufs after reassembling IP fragments.
1999-12-30 13:27:15 +00:00
Brian Somers
e7d008b4bd Add a few missing #includes 1999-12-30 03:40:29 +00:00
Brian Somers
a19a5c023d Correct usages of getuid() and geteuid()
Pointed out by: billf
1999-12-30 03:36:11 +00:00
Brian Somers
bb7d10c9c5 Mention that it's only necessary to escape the '-' in chat scripts
twice (once for the arg parsing and once to make it a normal character).
Make the man page example consistent.

Reminded by: Bryan Liesner <bleez@netaxs.com>
1999-12-29 22:31:10 +00:00
Brian Somers
182c898a22 Add a bunch of `const's and fix a typo.
Submitted by: Rich Neswold <rneswold@MCS.Net>
1999-12-27 11:54:57 +00:00
Brian Somers
5b78bdf8aa Don't allowt '#' as a comment when it's embedded in quotes:
set something "xxx yyy # zzz" aaa

shouldn't be interpreted as

  set something "xxx yyy" aaa
1999-12-27 11:43:31 +00:00
Brian Somers
e62ce959d0 Don't bother fork()ing after closing a ctty if ppp is about to
terminate anyway.
1999-12-23 21:43:25 +00:00
Brian Somers
1bbd8362c7 Understand double-quotes anywhere on a command line in the same
way that a shell does.  The previous way ppp did it just didn't
make any sense.
1999-12-23 21:43:12 +00:00
Brian Somers
90e7fb01df Correct warning about unindented commands when the unindented command
is actually a new label with a comment at the end of the line.
1999-12-23 21:43:00 +00:00
Brian Somers
abab7303b5 Don't munge ``set dial|login|logout|hangup'' arguments before
ExpandString() has a chance to do its own substitutions.
1999-12-22 21:48:12 +00:00
Brian Somers
1b365e7039 Fix my '#'-at-end-of-lines change, spammed by a subsequent commit. 1999-12-20 20:47:58 +00:00
Brian Somers
687d9f5709 Use getpwuid()->pw_dir instead of $HOME when expanding ``~''. 1999-12-20 20:30:47 +00:00
Brian Somers
8b50b30fa7 Use getpwuid() instead of getlogin() in ``allow users''. 1999-12-20 20:30:40 +00:00
Brian Somers
ef0a48491b Add missing linefeed. 1999-12-20 20:30:35 +00:00
Brian Somers
dbde41c0b7 Cosmetic: clean up some parenthesis confusion 1999-12-20 20:30:30 +00:00
Brian Somers
9409953d84 Handle comments at the end of lines. 1999-12-20 20:30:25 +00:00
Brian Somers
c39aa54ec8 Notice and warn about unterminated quoted strings in commands.
The entire command is ignored if the syntax is invalid...
1999-12-20 20:30:02 +00:00
Brian Somers
dae8dd31bf Implement mbuf allocation internally by maintaining 8 buckets of
different sized mbufs, and mallocing them in chunks of 20 mbufs
at a time.

This improves back-to-back throughput by between 7 and 8%
1999-12-20 20:29:51 +00:00
Brian Somers
26af0ae966 Cosmetic: Make struct mbuf more like kernel mbufs. 1999-12-20 20:29:47 +00:00
Brian Somers
aa4e734249 Learn to do pointer arithmatic (doh!) 1999-12-18 02:31:36 +00:00
Brian Somers
9acc846078 Handle PPPoPTY correctly. 1999-12-13 18:45:21 +00:00
Brian Somers
ffcfaec721 Be careful not to re-initialise `struct stat' while it still has
a running timer.  This fixes a problem where a dial is manually
aborted, the hangup script kicks in and the chat timer ends up
on the timer queue twice (tick tick tick tick *boom*)
1999-12-03 06:33:10 +00:00
Brian Somers
cbee975442 Change the way we transfer links (again). The previous
method avoided all race conditions, but suffered from
sometimes running out of buffer space if enough clients
were piled up at the same time.

Now, the client pushes the link descriptor, one end of a
socketpair() and the ppp version via sendmsg() at the
server.  The server replies with a pid.  The client then
transfers any link lock with uu_lock_txfr() and writev()s
the actual link contents.  The socketpair is now the only
place we need to have large socket buffers and the bind()ed
socket can keep the default 4k buffer while still handling
around 90 racing clients.
1999-11-30 23:52:37 +00:00
Brian Somers
886530ab78 depricated -> deprecated + mention the -alias flag status in README.changes 1999-11-29 18:53:43 +00:00
Brian Somers
97536b3bb8 Don't try to do a DIALOUT in -direct mode or if there's no phone
numbers set.
1999-11-28 15:50:23 +00:00
Brian Somers
f6a4e748a9 Make -foreground a proper option (allowing ``allow mode foreground'',
``set mode foreground'' etc.
1999-11-28 15:50:08 +00:00
Brian Somers
b5c3c9aeda Allow extended pap success messages by believing in the PAP headers
length field rather than the one byte message length field embedded
in the packet.  This steps slightly outside of the protocol boundaries,
but should not cause any problems.

Limitation noted by: Simon Winwood <simon@winwood.org>
1999-11-26 22:44:45 +00:00
Brian Somers
fdc29d54a4 Change ``set cd'' so that its default value is device specific. The
default is still 1 second for ttys, but is now 6 seconds for i4b (ISDN)
devices and 5 seconds for ethernet (PPPoE) devices.
1999-11-26 22:44:33 +00:00
Brian Somers
2cb305af77 Rewrite the link descriptor transfer code in MP mode.
Previously, ppp attempted to bind() to a local domain tcp socket
based on the peer authname & enddisc.  If it succeeded, it listen()ed
and became MP server.  If it failed, it connect()ed and became MP
client.  The server then select()ed on the descriptor, accept()ed
it and wrote its pid to it then read the link data & link file descriptor,
and finally sent an ack (``!'').  The client would read() the server
pid, transfer the link lock to that pid, send the link data & descriptor
and read the ack.  It would then close the descriptor and clean up.

There was a race between the bind() and listen() where someone could
attempt to connect() and fail.

This change removes the race.  Now ppp makes the RCVBUF big enough on a
socket descriptor and attempts to bind() to a local domain *udp* socket
(same name as before).  If it succeeds, it becomes MP server.  If it
fails, it sets the SNDBUF and connect()s, becoming MP client.  The server
select()s on the descriptor and recvmsg()s the message, insisting on at
least two descriptors (plus the link data).  It uses the second descriptor
to write() its pid then read()s an ack (``!'').  The client creates a
socketpair() and sendmsg()s the link data, link descriptor and one of
the socketpair descriptors.  It then read()s the server pid from the
other socketpair descriptor, transfers any locks and write()s an ack.

Now, there can be no race, and a connect() failure indicates a stale
socket file.

This also fixes MP ppp over ethernet, where the struct msghdr was being
misconstructed when transferring the control socket descriptor.

Also, if we fail to send the link, don't hang around in a ``session
owner'' state, just do the setsid() and fork() if it's required to
disown a tty.

UDP idea suggested by: Chris Bennet from Mindspring at FreeBSDCon
1999-11-25 02:47:04 +00:00
Brian Somers
be8bbe8809 Don't setuid() 'till we've called ID0setproctitle() 1999-11-23 00:14:50 +00:00
Brian Somers
31dd45c4e0 Call MkSockNode() as uid 0
Forgotten by: julian
1999-11-21 23:27:23 +00:00
Brian Somers
dc4511d5eb Don't compile NETGRAPH out of ppp for the release crunch 1999-11-20 10:55:27 +00:00
Brian Somers
83569b351c Update the time delta of the first item in TimerList before
inserting a new item.  Without this, it's possible to
mis-insert quite badly... but only by as much as the load of
the first item, which is almost always 1 second.

Initialise the timerservice with `restart' set if we're inserting
at the start of the list.
1999-11-19 23:21:13 +00:00
Brian Somers
cf0a39401d Fix ``set proctitle'' by using setproctitle(). 1999-11-17 21:12:35 +00:00
Brian Somers
02cfb3ba65 Remove some extraneous ifdefs, and don't try to put the socket in
O_NONBLOCK.  The select() is the best best as I don't want to muck
about with the send/receive thresholds.
1999-11-16 21:57:48 +00:00
Brian Somers
fdb4bb1b89 Use modfind() to check if a kld is already loaded.
Submitted mostly by: green
1999-11-16 21:57:34 +00:00
Brian Somers
e6ee5b3933 Don't insist on 4 digit umasks in ``set server''.
Pointed out by: joerg
1999-11-13 16:18:40 +00:00
Brian Somers
9b1b0fc0e0 Make the meaning of the provider part of the PPPoE device spec clearer. 1999-11-13 16:18:27 +00:00
Brian Somers
0c38fb0340 Oops, netgraph.o -> ether.o for the RELEASE build. 1999-11-11 02:25:17 +00:00
Brian Somers
772d2e0939 If dev->connected is already set to CARRIER_OK in ether_AwaitCarrier,
don't go and set it to CARRIER_LOST !
1999-11-09 23:30:59 +00:00
Brian Somers
da8b70349b Don't recurse into datalink_UpdateSet() after
doing a HangupDone().  The HangupDone() may fuel
bundle_CleanDatalinks(), and if so, the bogus
UpdateSet() ends up select()ing on a closed
descriptor.....

Change the main `do/while' loop to a `for' loop so
that any `continue's do the bundle_CleanDatalinks()
& bundle_IsDead() bit.
1999-11-09 23:21:47 +00:00
Brian Somers
9d06928d0e Correct the ``-unix X'' parsing (last time I only corrected
``-unitX''.

Pointed out twice by: Gert-Jan Vons <gert-jan@bigfoot.com>
1999-11-09 21:59:09 +00:00
Brian Somers
4012527343 Be a bit smarter when identifying a netgraph node
(don't dereference NULL).
1999-11-09 19:05:48 +00:00
Brian Somers
0d3751e7bd Don't treat -unit as a mode flag when counting mode flags.
Submitted by: Gert-Jan Vons <gert-jan@bigfoot.com>
1999-11-09 00:32:21 +00:00
Brian Somers
0f9c420717 Add an empty netgraph.o when building a release to keep the
crunch stuff happy.

Breakage spotted by: phk
1999-11-09 00:16:30 +00:00
Brian Somers
6b8b6bef1a Don't zero-pad netgraph node ids
Recommended by: julian
1999-11-07 09:03:45 +00:00
Brian Somers
87c3786e7f Support PPPoE
Help (lots) from: julian, archie
Facilities from: ahebert@pubnix.net
1999-11-06 22:50:59 +00:00
Brian Somers
c116e0c0aa Introduce ``set logout''; another chat script. This is in preparation
for the abstraction of ``set dial'' and ``set hangup''.
1999-10-25 13:49:44 +00:00
Brian Somers
bacfb041e0 Don't (unnecessarily) parse wtmp, force ID0logout() to DTRT instead. 1999-10-25 13:31:42 +00:00
Brian Somers
1a80353cd8 Manually create a correct(*) entry in wtmp when logging out a PPPoTCP or
PPPoUDP connection.

(*) This is as correct as ftp and uucp wtmp entries are - that is,
multiple concurrent connections will not record enough information
in wtmp to tell last(1) who was logged in for how long.
1999-10-21 21:55:22 +00:00
Brian Somers
f1b965c94b If we're running ppp -direct over a tcp or udp connection,
record the IP number in the `from' slot and not the tty slot.
We put ``ppp'' in the tty slot - in line with what ftp (and
probably others) does.
1999-10-21 01:19:23 +00:00
Brian Somers
1b02dfb47c Don't go from PHASE_NETWORK to PHASE_ESTABLISH when we want to
re-open a device.  The fact that we're in NETWORK phase indicates
that there are other links in DATALINK_OPEN and that we don't want
to stop using them.
1999-10-21 00:19:33 +00:00
Brian Somers
c0593e34b7 Add the -unit command line switch for specifying the tun device.
Warn about -alias being depricated (but still allow it).
Don't moan twice about failing to open any tun device.
Fix a diagnostic and add the -quiet switch to the usage message.
1999-10-19 15:21:09 +00:00
Brian Somers
53dc037c22 Correct a few diagnostics 1999-10-16 13:28:04 +00:00
Brian Somers
7ca1ffb46f Don't ntohl() the signature before printing it... it's already
been done.

Spotted by: Gert-Jan Vons <gert-jan@bigfoot.com>
1999-10-16 09:18:15 +00:00
Brian Somers
c2e1f0e3d7 When more than one timer is expired at once, allow for the possibility
that the first timer ends up doing a timer_Stop() on the second.

When this happens, remove the timer from the pending list so that
we still call any subsequent timers.

This bug has been here for several years, but has only been tickled
recently with my device layering changes.

With enormous thanks for the perseverance of: Ruslan Ermilov <ru@ucb.crimea.ua>
1999-10-15 20:44:34 +00:00
Brian Somers
d4d5d2f881 When we get the last NCP TLD, close all datalinks with CLOSE_STAYDOWN
rather than CLOSE_NORMAL.
1999-10-15 20:36:04 +00:00
Brian Somers
1d3a2f02e5 Redefine CRTS_IFLOW and CCTS_OFLOW on the mac.
Submitted by: Kazuyoshi Kato <kazk@yyy.or.jp>
1999-10-15 20:30:44 +00:00
Brian Somers
71981dcfc1 When uncompressing VJ-compressed frames, fix the ip_sum directly
in struct cstate rather than copying the stored header slot into a
potentially mis-aligned buffer then trying to update the ip_sum
without causing an exception on non-i386 hardware.

I've never been able to reproduce this problem, but it has been
reported by many people... besides, the code is now a bit cleaner.

Testing & patience by: Anthony Solovjoff <asolovjoff@hotmail.com>
1999-10-13 07:49:13 +00:00
Brian Somers
d81ecf9abf Revert the 1.44 -> 1.45 change. It doesn't work as expected. 1999-10-08 16:09:15 +00:00
Brian Somers
14e34a55c3 Don't go from datalink state opening directly to lcp, go via
carrier instead so that we can set up our carrier detect
timer and eventually notice when we lose carrier.

Honour the script.run value when coming out of carrier state.

PR:	14145
1999-10-07 07:32:12 +00:00
Brian Somers
990a543f49 Mention the received/expected magic for dodgy ECHO LQRs. 1999-10-06 23:22:54 +00:00
Brian Somers
d2f5232de3 Bring links down gently when their throughput isn't enough for
the ``set autoload'' value.  Don't just ``down'' the link.
Don't get stuck in ``ready'' the first time we ``close'' a link.
1999-10-05 05:01:44 +00:00
Brian Somers
28149effa7 Support GRE packets
Submitted by: Harry Starr <starr@gccs.com.au>
1999-09-30 07:23:13 +00:00
Brian Somers
ccd587f00f Support ``set cd off'' to tell ppp not to even look for carrier on the
device.
1999-09-26 23:02:18 +00:00