Commit Graph

423 Commits

Author SHA1 Message Date
ache
2ac9673aae Restore back non-interruptable sleep/usleep just redefine them to not
mix with standard library functions
1997-10-23 21:32:48 +00:00
ache
39156922f6 Remove private sleep/usleep hacks 1997-10-23 20:11:01 +00:00
brian
b8215996d7 Fix various filter problems
PR:		4727
Submitted by:	Chiharu Shibata <chi@bd.mbn.or.jp>
1997-10-23 10:09:35 +00:00
brian
9060aacb1c Fix HDLC logging (actually LogDumpBp()). It was only
outputting the first mbuf in the chain.
1997-10-22 01:22:51 +00:00
brian
b066166467 Ask for VJ slot id compression by default. 1997-10-17 00:20:30 +00:00
brian
d134eaa71d cosmetic:
o  Log client connection commands when "set log +command"
o  Don't display PAP password in the log unless we're
   "set log +debug".
1997-10-16 23:55:19 +00:00
brian
d651f50b27 Initialise LCP, IPCP and CCP as soon as LCP is down.
Without this, in -auto mode, we stay in ST_STOPPING
and never check our dial filters to see if it's time
to bring the line up again.

This may make "set stopped" redundant.
1997-10-15 01:01:17 +00:00
brian
6643d67546 Un-spam ip_sum (arrgh - I don't know how this made
it into my patches :()
1997-10-12 21:43:55 +00:00
brian
be5e3ab6be Cosmetic: Mention that ppp is suspending before
executing a "shell" command.
1997-10-12 01:49:37 +00:00
brian
5d5b867579 Support VJ maximum slot identifiers != 15.
Support VJ slot id compression.

Previously, ppp would negotiate a max slot between 2 & 15
(if asked), and would agree to slot id compression (if asked).
It would then proceed to use 16 slots and no compression
anyway.  The result was a rather unusable connection.
1997-10-07 00:56:58 +00:00
brian
e5021654d0 Change things around a bit when bringing down the layers.
o LcpLayerDown() no longer does a NewPhase(PHASE_TERMINATE).
  Instead, it's done in LcpLayerFinish().  LayerFinish() gets
  called by the FSM after the LCP FSM goes through the Stopping
  and Stopped states.

o -direct and -background mode exit at PHASE_TERMINATE, not
  PHASE_DEAD.

The result is that LCP, CCP & IPCP are brought down cleanly on both
sides of the link (not just our side).  Killing ppp rather than just
closing it still makes it get out after the LCP SendTerminateReq().
I'll have a look at that soon.  We're probably not actually sending
the REQ :-(
1997-10-05 15:00:10 +00:00
brian
1f236d536d Refer a bit to pppctl.
Suggested (far to subtly for his own good) by:	joerg
1997-10-05 14:27:08 +00:00
brian
c627948926 Cosmetic: Be specific about using TABs in syslog.conf. 1997-10-05 10:29:32 +00:00
brian
56229906e0 Cosmetic: Log a strerror(errno) when failing to write to
the tun device.
1997-10-04 00:14:39 +00:00
brian
4ab28dc74b If "set mtu" is used, *and* the mtu is less than the
value requested by the peer, NAK using this value
rather than silently just changing the interface
mtu.
1997-09-29 19:40:16 +00:00
brian
4ffbb78e97 Test for the existence of ../../secure rather
than /usr/include/des.h before building with MSChap.
support.  Also allow -DNOCRYPT (as well as -DNOSECURE)
as an override
sbin/init example pointed out by: bde
1997-09-28 20:17:59 +00:00
brian
889a2eb5e6 Don't depend on time.h including sys/types.h 1997-09-27 19:41:40 +00:00
brian
eba31c6066 Don't login twice when using passwdauth
Suggested by:	Peter Childs <pjchilds@imforei.apana.org.au>
Merge the whole module into a few lines in pap.c
1997-09-27 19:11:43 +00:00
brian
72603302dc #define RECON_ENVOKED as 4 (not 3, like RECON_UNKNOWN)
Pointed out by:	tom@tomqnx.com (Tom Torrance at home)
1997-09-26 00:23:36 +00:00
brian
a54a976476 Do the MSChap encryption.
Submitted by:	Gabor Kincses <gabor@acm.org>
1997-09-25 00:58:20 +00:00
brian
4c4910184f Allow Microsoft CHAP authentication.
This is a combination of MD4 & DES.
Submitted by:	Gabor Kincses <gabor@acm.org>
1997-09-25 00:52:37 +00:00
brian
c73c4cd778 Don't luse uu_lock in -direct mode. It conflicts w/
hylafax & the like.
Get the CD bit right at last - now that I've got
my second modem back - loss of carrier makes ppp exit.
1997-09-23 22:07:51 +00:00
brian
8403100dd5 Undo botched commit (local changes got in) 1997-09-23 19:52:14 +00:00
brian
3884570228 Don't allow accept/deny when it's not appropriate.
Log PAP/CHAP users in utmp & wtmp, allowing it to
be avoided with "disable utmp"
1997-09-22 23:59:16 +00:00
brian
e74401cd50 Don't pause for one second before starting LCP
negotiation.  Instead, incrementally pause after
receiving LCPs with the same magic.  We can now
suffer a server that waits more than 1 second before
responding.  Pauses greater than a second get
hopelessly confusing as when the server eventually
starts, it sees a flood of Config Requests followed
by config NAKs and changes of magic.  This causes the
server to change its magic over and over.....
1997-09-22 02:51:24 +00:00
brian
ed62efbf2d Use the correct device name in "show modem" 1997-09-22 00:55:46 +00:00
brian
5e4ed6c854 Correct the way the uucp lock file and the ttyXX.if lock
file get created.  We don't create lock files over non-tty
connections, but we *do* create lock files in -direct mode.
This leaves us capable of adding utmp/wtmp support for
successful pap & chap logins (coming soon).
1997-09-22 00:46:56 +00:00
brian
2a712aab9b Sleep for a second before sending the first LCP
config request.  This stops us from squirting stuff
down a line that still has ECHO turned on because the
peer hasn't had a chance to start yet.
Lead to the cause by:	Greg Lehey <grog@lemis.com>
1997-09-21 23:01:34 +00:00
brian
89c06caf59 It turns out that the following:
close(1);
  close(2);
  x = open(ctermid(NULL), O_RDWR|O_NONBLOCK);
  close(0)
on a tty causes select() to return an exception for descriptor x !
This is the case in RELENG_2_2, but not in 2.2.2.  I'm not sure why.
Instead of doing the x=open() and close(0), we just do x=0 now.
Problem pointed out by: Greg Lehey <grog@lemis.com>
                        Tomi Vainio <tomppa@fidata.fi>
1997-09-21 20:26:47 +00:00
brian
2f99a3221a Typo police
Submitted by:	Mark Cammidge <mark@gmtunx.ee.uct.ac.za>
1997-09-21 13:08:00 +00:00
brian
131579bb6f Add a pppctl(8) xref.
Suggested by:	joerg
1997-09-21 13:06:43 +00:00
brian
109ba0ca66 Don't close(1) in direct mode and then proceed to
isatty(1) !  Keep 0 open for this till the modem's
been set up by either dup()ing 0 or by opening
ctermid(NULL) (if isatty(0)).

Discussed problem with: Tomi Vainio <tomppa@fidata.fi>
Made it finally dawn on me: Angelo Turetta <ATuretta@stylo.it>
1997-09-18 00:15:25 +00:00
brian
af684d2595 Support CHAP using MD4
Suggested by: jordan
1997-09-17 23:17:57 +00:00
brian
aaae64c991 o Fix two unlikely descriptor leaks.
o Output the correct device for "show modem"
  while in -direct mode.
o Cosmetic:  Moan a bit more when we can't open
  the [modem] device.
o Call OpenModem() in a more "natural" way.
o Add some LogDEBUG in OpenModem().
1997-09-16 23:15:16 +00:00
brian
93e97af991 Get rid of missing-prototype-warning 1997-09-10 23:55:35 +00:00
brian
5d60a9a46b PRED1 => TY_PRED1 (oops) 1997-09-10 21:36:54 +00:00
brian
49b883a1dd o Initialize the PRED1 input queue when we
receive the ResetAck, NOT when we send the
   ResetReq (as per the rfc).
o  SILENTLY ignore CCPs that arrive *before*
   the network phase (as per the rfc).
o  Check that we've actually negotiated PRED1
   before sending PRED1 output.
   This bug has been around for a *VERY* long
   time !  We shouldn't need to explicitly disable
   PRED1 now :-)
1997-09-10 21:33:32 +00:00
brian
74b863965c Cosmetic: Remove unused variables and build on OpenBSD. 1997-09-10 02:20:35 +00:00
brian
2acb5315cb Allow dial to work in non-interactive mode. 1997-09-09 23:56:29 +00:00
brian
2c906ef2d4 Print errors correctly (don't adjust
argc/argv for commands).
1997-09-09 23:23:24 +00:00
brian
fab65993a1 Don't start an interactive shell from a
telnet prompt.
1997-09-09 23:13:31 +00:00
brian
0791c3c050 Correct ppp authentication defaults in interactive
mode.  We don't want to be forced to type a password
here :-(
Pointed out by: mouth@ibm.net (John Kelly)

While I'm there, don't allow a "set server" in
interactive mode.
1997-09-09 21:51:39 +00:00
brian
4939f4fc06 Document the use of PAP/CHAP properly. 1997-09-09 21:01:53 +00:00
brian
f35ea9c661 Disable LQR by default. It causes too many problems
with too many ISPs to be a good default.  LQR is still
accepted by default.
1997-09-07 01:00:06 +00:00
brian
1a2595c181 Use __libalias_version to derive the name to
pass to dlopen().
1997-09-06 11:16:02 +00:00
brian
01052674bd Install as group ``network''
Insist that uid == 0 for client ppp
Disallow client sockets if no password is specified
Don't exit on failure to open client socket for listening
Allow specification of null local password
Use reasonable size (smaller) ``vector''s in auth.c
Fix "passwd ..." usage message
Insist on "all" as arg to "quit" (if any)
Drop client socket connection before Cleanup() when "quit all"
1997-09-04 00:38:22 +00:00
brian
a5b9ae2959 Bring CCP and IPCP layers down properly when LCP
comes down.  Give a count of bytes sent/received
in IPCP log.
1997-09-03 02:08:20 +00:00
brian
42c1dbe984 Allow the transition from an idle timeout value
of zero (no timeout) while IPCP is up.
Move some prototypes into .h files and re-order
some includes.
1997-09-03 00:40:51 +00:00
brian
c9a9461a21 Cosmetic: Make LogPrintf() calls consistent. 1997-08-31 22:59:49 +00:00
brian
56d1dd4b53 Make ppp owner root.ppp, mode 4550
Suggested by: guido
Condoned by: eivind
1997-08-31 20:18:03 +00:00
brian
4ac4d60bc7 Remove use of login_progok()
Suggested by: guido
1997-08-31 20:07:03 +00:00
brian
05f54f9377 Use login_progok(). 1997-08-27 20:11:16 +00:00
brian
7b68941df9 Check the "prog.deny" login.conf capability and
refuse to run if "ppp" is in the list.
Suggested by:	"Daniel O'Callaghan" <danny@panda.hilink.com.au>
1997-08-26 23:20:16 +00:00
brian
60c2d3cd19 Lose a couple of extraneous backslashes. 1997-08-25 01:52:11 +00:00
brian
1a67d25725 Make the code format more in line with style(9).
Update loadalias to use the new libalias api.
Update to version 1.1.
1997-08-25 00:29:32 +00:00
brian
c6012f5875 Phone the number after the ``|'' whether the dial
OR login script fails.

Catch a small typo in the man page.
1997-08-23 23:14:24 +00:00
brian
c894cfa736 Update version number to 1.02 so that I can tell what
people are running
1997-08-21 17:20:00 +00:00
brian
3645067038 Update doc to use MYADDR in ppp.conf. 1997-08-21 17:16:21 +00:00
brian
225778b10c Allow the use of HISADDR & MYADDR in ppp.conf. 1997-08-21 17:07:30 +00:00
brian
263a0e79cc Add "set loopback on|off", defaulting to "on".
This tells ppp to loopback packets addressed to
the ppp interface IP coming *from* the tun
device.

This means that you can ping the tun interface IP
from inside :-)
1997-08-21 16:21:39 +00:00
brian
4d5bf5e750 Correct online usage message for "set ? stopped" 1997-08-21 16:18:07 +00:00
brian
ee30a80360 Expand the "set stopped" command so that it can
idependently time out any of the FSMs.

Split LCP logging into LCP, IPCP and CCP logging,
and make room in "struct fsm" for the log level
that the state machine should use.
1997-08-20 23:47:53 +00:00
danny
4a385bedd7 Spelling police. 1997-08-19 11:27:00 +00:00
danny
f39fffdd46 Typo fixes. 1997-08-19 11:18:34 +00:00
brian
f4cc1c3403 Correct the forth arg to "set ifaddr". If specified,
it gives the IP number that should be used for initial
IPCP config requests, irrespective of MYADDR.
1997-08-19 01:10:24 +00:00
brian
0aabeac276 Introduce the "bg" command. It's pretty
much the same as "shell", but it's in the
background.
1997-08-18 20:15:10 +00:00
brian
a88afd3bf2 Fix possible buffer overrun while "expect"ing
something that's "nearly" what it wants.
1997-08-17 22:47:07 +00:00
brian
bea84654b4 Typo police 1997-08-17 22:45:25 +00:00
brian
48abae6115 Allow the use of a "stopped" timeout via the
"set stopped" directive.  If the timeout occurs
it will cause a "Down" event, hanging up the line
if it's still up.  This *isn't* part of the FSM
diagram, but I consider it ok as a "higher level
implementation specific timeout" as specified in
the rfc ;-}

Discussed briefly with:	joerg
1997-08-17 20:45:50 +00:00
brian
6f340c20e5 Allow specification of fallback phone numbers to
be used only if the dial script fails.
PR:		4262
1997-08-17 20:38:45 +00:00
brian
4777af062a Use libalias.so.2.3. 1997-08-11 22:07:57 +00:00
brian
2be4b0d434 Correct default log file name.
PR:		4065
Prompted by:	Steve Price <sprice@hiwaay.net>
Submitted by:	sjr1@flash.net
1997-08-10 22:03:20 +00:00
brian
60c55d628f Use libalias.so.2.2 1997-08-03 20:21:22 +00:00
brian
e54335d741 Remove extraneous prototypes. 1997-08-01 02:02:28 +00:00
brian
f15b8d152a Set up the alias address before executing
the contents of ppp.linkup.
1997-07-29 22:37:04 +00:00
brian
4af16ddc99 Fix file descriptor leaks. 1997-07-28 01:02:27 +00:00
brian
789c3c7d29 Count the "proto" arg after a single address,
Check correctly for "deny" packets.
Submitted by:	Dave Bodenstab <imdave@mcs.net>
1997-07-27 23:26:23 +00:00
brian
55aac7e4ff Don't try to ioctl(,TIOCOUTQ,) on a closed
descriptor.
Reported by:	Stephane Raimbault <stephane@cybersurf.net>
1997-07-24 02:42:34 +00:00
brian
e3faa34d53 Allow a "hangup" capability.
You can now "ATZ" your modem when it's closed.

Submitted by:	peter@citylink.dinoex.sub.org (Peter Much)
1997-07-14 01:41:35 +00:00
brian
aa8643ed6c Allow service names in "set server" 1997-07-12 19:22:34 +00:00
phk
1cca29c8ab Reset all LQR variables when we start over. 1997-07-02 19:18:42 +00:00
brian
067015aaae Make HUP cause an exit (as it used to), and make
INT cause a hangup - not exiting for -ddial & -auto.

HUP must exit because init sends this at system shutdown
time (why, I don't know), and we don't want to end up
redialing after the HUP (due to another dfilter packet).

Pointed out by and discussed with: ache
1997-07-01 21:31:28 +00:00
brian
ef60b19dca Allow specification of a umask for local socket
creation in "set server" command.
1997-06-30 03:03:38 +00:00
brian
ac73344ac9 Fix HUP handling while dialing.
Pointed out by:	ache
1997-06-29 13:54:31 +00:00
brian
512e26e794 Deal with HISADDR/MYADDR in filter rules.
Mostly submitted by: kfurge@worldnet.att.net

Allow MYADDR in add/delete commands to facilitate
dynamic additions of a loopback route to MYADDR.
1997-06-28 01:34:03 +00:00
brian
fef65421d3 Add "set server" to control the server socket.
Catch SIGUSR1 to re-init listening socket.
Document signal behaviour.

Add missing '\n's to LogPrintf(LogWARN,...)
Main() returns int not void.

AF_LOCAL ideal suggested a long time ago by: joerg
1997-06-25 19:30:05 +00:00
brian
082cf8524f Allow shell commands (still run as original user)
unless defined out - including while a telnet
session with a -auto ppp is in effect.  If you
don't create ppp.secrets, you deserve what you
get.

telnet connection capabilities will be configurable
per system soon.

Suggested by: Terry Dwyer <tdwyer@omen.net.au>
1997-06-25 02:04:35 +00:00
brian
3f5321d2b9 Fix ~? output in "term" mode.
Spotted by: Harry Starr <starr@gccs.com.au>
1997-06-24 21:25:06 +00:00
brian
a3c9607200 o Fix uptime for direct connections.
o Style police
o Make hangup abort the current connection, not
  necessarily exiting (-auto/-ddial).
o Trap HUP and INT during DoChat and abort the
  connection attempt.  This means you can now
  type "dial" and change your mind with ^C, or
  HUP the process to stop it dialing.

Slapped into doing it by: Chuck Robey <chuckr@glue.umd.edu>
1997-06-23 23:10:13 +00:00
brian
d1c718d9c3 Typo police.
Submitted by: Chuck Robey <chuckr@glue.umd.edu>
1997-06-23 23:08:23 +00:00
brian
78d67a98b9 Fix "set parity"
PR:		3881
Actual problem found by:	shocking@mailbox.uq.edu.au
1997-06-23 19:18:13 +00:00
brian
c74ce8e38c Fix "delete all".
PR:		3913
1997-06-20 23:43:35 +00:00
brian
374f602b4e Cosmetic: Fix help syntax. 1997-06-17 02:04:51 +00:00
brian
75122c3d71 Handle redial tries correctly under -ddial 1997-06-17 01:46:05 +00:00
brian
121bd4b70f Put TCP/IP logs back on one line. 1997-06-16 21:20:00 +00:00
brian
73d09cd540 Set netfd to STDOUT_FILENO rather than STDIN_FILENO. 1997-06-16 19:59:41 +00:00
brian
5d122ca2ef Correct filter docs.
PR:		3464
Submitted by:	Stephen J. Roznowski <sjr1@flash.net>
1997-06-16 13:52:10 +00:00
brian
95a0b5dc63 Remove call to daemon(). Just call setsid() and close
any relevent descriptors (0,2,[1]).  We've already fork()d.
PR:		3874
1997-06-16 13:24:59 +00:00
ache
66946f9305 Remove srandomdev fallback code 1997-06-14 00:27:03 +00:00
brian
328f056077 Fix "delete ...", it now only insists on
one arg too.

Discovered by:	Rikk Salamat <rikks@web-impact.com>
1997-06-13 03:59:36 +00:00
brian
1fd5f260cd Add ppp.linkdown file to compliment ppp.linkup.
Submitted by:	Forgotten
Passed on by:	Terry Dwyer 61 8 9491 5161 <tdwyer@io.telstra.com.au>

Also remove extraneous setuid(0) - it's only undone by
the subsequent call to SelectSystem().
1997-06-13 02:07:32 +00:00
brian
e6dedeb7e4 Fix "show ?" alignment.
PR:		3830
Submitted by:	Josh Gilliam <josh@quick.net>
1997-06-13 00:09:54 +00:00
brian
747720e64d Document ppp over tcp (how to tunnel) 1997-06-13 00:04:58 +00:00
brian
5d18065463 Sort out ppp over tcp:
o Allow "set var" with no args to blank var (don't req "").
  o Zero VarTerm ASAP if not in interactive mode.
  o Never print anything to stdout in -direct mode.
  o Count redial when failing to open modem.
  o Increase device size to 40 characters (for host:port).
  o Remove missed "if (fd == 0) fd = 1;".
  o Don't give up on incoming non-terminal connections.
1997-06-11 03:57:51 +00:00
brian
84d5b39da1 Make the man page a little more detailed.
Update the version number to 1.00.
Increase the predictor-1 buffer by 2 bytes.
1997-06-09 23:38:38 +00:00
brian
94d661ac8c Overhaul ppp:
o Use syslog
  o Remove references to stdout/stderr (incl perror())
  o Introduce VarTerm - the interactive terminal or zero
  o Allow "set timeout" to affect current session
  o Change "set debug" to "set log"
  o Allow "set log [+|-]flag"
  o Make MSEXT and PASSWDAUTH stuff the default
  o Move all #ifdef DEBUG stuff into the code - this
    shouldn't be too much overhead.  It's now controlled
    with "set log +debug"
  o Add "set log command, debug, tun, warn, error, alert"
  o Remove cdefs.h, and assume an ansi compiler.
  o Improve all diagnostic output
  o Don't trap SIGSEGV
  o SIGHUP now terminates again (log files are controlled
    by syslog)
  o Call CloseModem() when changing devices
  o Fix parsing of third arg of "delete"

I think this fixes the "magic is same" problems that some
people have been experiencing.
The man page is being rewritten.  It'll follow soon.
1997-06-09 03:27:43 +00:00
brian
9256ed6239 Remove mis-leading version info. 1997-06-03 00:35:03 +00:00
brian
e28b617f4a Back out last change (which in fact breaks rfc1661)
and modify the behaviour so that a timer is started
and the restart counter is zeroed (as per the State
Machine Diagram).

Pointed-out-by:	joerg
1997-06-02 00:04:40 +00:00
brian
5992baf27d Go directly to ST_STOPPED when a TerminateReq is
received and after the TerminateAck is sent (as
per rfc1661) rather than to ST_STOPPING.  Going
to ST_STOPPING will leave us in a state where
we're waiting for the other side to do something -
not a good idea, especially as the client side sends
a TerminateReq then exits on idle timeout.
1997-06-01 14:37:19 +00:00
brian
a58162b8e7 Reduce MAX_M[RT]U back to 2048. Even on a null-modem
ppp link, we gain nothing with a larger mtu.

Suggested by:	joerg

Fix pred1 buffer size (must be == MAX_MTU)
1997-06-01 11:35:04 +00:00
brian
e39002afc2 Remove initial startup printf's in -direct mode.
Make "same magic" error send a NAK (as per rfc).
1997-06-01 03:43:26 +00:00
brian
0e77953308 Implement "set mtu" command to allow the client to
reduce the interface mtu.
Allow max mru spec of 16k.
Add "show m[rt]u" ability.
1997-06-01 01:13:04 +00:00
brian
ea3d6b0743 Remove "set mtu ..." ability. Currently, this is an
"alias" for "set mru ...", but there's no such thing
as setting your mtu in the ppp protocol (rfc1661).
1997-05-31 16:37:19 +00:00
brian
ba44f8b683 Correct the return of DialModem()
Suggested by:	kfurge <kfurge@worldnet.att.net>
1997-05-29 02:29:13 +00:00
brian
12b254e316 De-couple ppp from libalias. If libalias isn't there, the
alias commands simply won't work.  Only root may specify the
location of the alias lib (otherwise, it's hard-coded).

Make logprintf silently fail if LogOpen hasn't been called.

Suggested by:	eivind
1997-05-26 00:44:10 +00:00
brian
8089164d6f Include <alias.h>, not "alias.h" 1997-05-25 19:49:44 +00:00
brian
81067cb46e Fix the reconnect option, and add an explanation to vars.h 1997-05-24 17:32:42 +00:00
brian
a62138d5f0 Finish updating for the latest alias code.
Submitted by:	Charles Mott <cmott@srv.net>
1997-05-23 05:34:15 +00:00
brian
33deb302fe Add SO_REUSEADDR socket opt in case the last telnet
connection is in a time_wait.

Submitted by:	Brian Campbell <brianc@pobox.com>
1997-05-23 05:22:48 +00:00
brian
6d0cdc4cfb Use the latest alias engine - now in libalias.
Submitted by:	Charles Mott <cmott@srv.net>
1997-05-23 04:54:03 +00:00
brian
d13ad90ef4 Output exit status description of child in background mode. 1997-05-19 03:02:36 +00:00
brian
ee01b28050 Mega update to sort out bad implementations
of reconnect & -background.

o   Fix reconnect anomolies.
o   Make reconnect apply to failed LQR hangups (& mention in man page).
o   Make reconnect effective in -background mode.
o   Listen on socket in -background mode.
o   Try all phone numbers in -background mode.
o   Insist on system arg in -background mode.
o   Make a control-connection close command exit in -background mode.
o   Output status message to stdout on exit of parent in -background mode.
o   Don't notify parent of success too soon.
o   Describe termination EX_* code.
o   Miscelaneous diagnostic corrections.
o   Remove redundant connect_time from modem.c.
o   Don't repeatedly DownConnection().
1997-05-19 02:00:16 +00:00
brian
3d81388ebf Make openmode active by default (for both client/server).
Requested by:	The masses.
1997-05-17 16:08:48 +00:00
brian
82b9d3453b Build pid_filename without a double slash.
Make ``Dial attempt'' diagnostics consistent.

Reset lostCarrier when it has reached max.
Suggested by:	Kevin Street <street@iName.com>
1997-05-14 01:18:51 +00:00
brian
0a48c2a0e8 Don't attempt to ioctl(modem...) when modem is
closed.  Just DownConnection().
1997-05-14 01:14:32 +00:00
brian
f362842283 Correct the files section for tunX.pid and ttyXX.if 1997-05-13 09:31:05 +00:00
brian
a61579672e Correct sample file name. 1997-05-12 11:54:12 +00:00
brian
665a2c9ba9 Create ttyXX.if and tunX.pid irrespective of
whether we're -dedicated.

Required by:	David Nugent <davidn@labs.usn.blaze.net.au>
1997-05-11 10:23:16 +00:00
ache
1639d4d9ce Cosmetique 1997-05-11 00:44:37 +00:00
ache
6b0a735ac3 Print out reject masks on "show lcp" 1997-05-11 00:41:30 +00:00
ache
2f32718791 Use random() for GenerateMagic() 1997-05-11 00:16:00 +00:00
ache
36ab59d4ff Cosmetique fixes:
shorten help message to fit the screen
return to prompt from "show ipcp"
1997-05-10 23:46:29 +00:00
brian
1a9ed5bd57 Refuse to negotiate HISADDR of 0.0.0.0 (NAK it)
Submitted by:	NAKAMURA Motonori <motonori@econ.kyoto-u.ac.jp>
1997-05-10 15:37:40 +00:00
brian
625e8802da Add a ttyXX.if file in /var/run that points to
the tunX.pid file.  Change the ppp.tunX.pid name
to tunX.pid

Requested by:	Daniel O Callaghan <danny@panda.hilink.com.au>
1997-05-10 03:39:57 +00:00
brian
82bac13560 Tidy up the code - bounds checking, return
value checking etc.

Submitted by:	eivind
1997-05-10 01:22:19 +00:00
brian
1da867bda7 Don't reconnect (due to reconnect setting) after
close command.
1997-05-09 23:34:56 +00:00
brian
6bf24e13fb Set setitimer() arg correctly. 1997-05-09 20:48:21 +00:00
jdp
fa7109d49f Null commit to force version bump. 1997-05-09 16:16:31 +00:00
brian
049664f16a Allow mixed case commands.
Allow HISADDR, MYADDR, INTERFACE and ALL in mixed case.
1997-05-08 01:26:31 +00:00
brian
2441d7631d Reset lqrsendcnt.
PR:		2449
Submitted by:	mark thompson <thompson@tgsoft.com>
1997-05-07 23:40:31 +00:00
brian
2d9bc1f640 Only compress tcp packets. Calculate size of
logbuff rather than guessing at 2000.

PR:		2046
Submitted by:	torii@tcd.hitachi.co.jp
1997-05-07 23:30:50 +00:00
brian
c0df205f61 Allow up to 40 args in the chat script (was 20).
Ignore subsequent args rather than scribbling.

PR:		1952
Submitted by:	Mikael Hybsch <micke@free.dynas.se>
1997-05-07 23:01:25 +00:00
brian
7394cdac99 Make ppp exit on loss of carrier in -background mode.
Submitted by:	Jim Carroll <jim@carroll.com>
1997-05-05 23:45:15 +00:00
ache
027d471e28 Log each ppp line to separate /var/log/ppp.tunX.log instead mixing of
all lines into single /var/log/ppp.log
1997-05-04 02:39:04 +00:00
brian
ad4ab18793 Add a reconnect capability directing ppp to re-establish
the connection after an unexpected loss of carrier:

    set reconnect timer ntries

The man page warns against using this command when your
timeout value is slightly more than the other sides :{}

Suggested by: burton@bsampley.vip.best.com (Burton Sampley)
1997-04-21 01:02:02 +00:00
ache
2b13c9e076 Fix typo in previous commit 1997-04-19 11:31:38 +00:00
phk
0bbcc047cf Unceremoneously discard HDLC frames with less than two bytes in them.
XXX: real fix: this could should check the number of bytes in the packet
before accessing them.

Found by: phkmalloc
1997-04-19 09:25:58 +00:00
brian
dfe24302ec Remove osreldate. I got the number wrong anyway :( 1997-04-15 00:03:36 +00:00
brian
aebb5d896e Make the next number redial ability configurable. The
"set redial pause [times]" command becomes
"set redial end-pause[.next-pause] [times]" and next-pause
defaults to 3 seconds.  This keeps things backwards
compatable.

Suggested by:	ache
1997-04-14 23:48:20 +00:00
brian
b2533fba6f Make -background option attempt each phone number at most
once.  Make -background ignore redial.  Output exit value
to syslog with "PPP Terminated" message.
1997-04-13 00:54:45 +00:00
brian
24892f8103 Only wait for the redial timeout when the last phone number in the
list has been dialed.  Alternate number dialing has no "pause".

Suggested by: joerg

Document this behaviour.  Document that the number of dial attempts
applies to the number of phone calls rather than the number of times
each number is dialed.  Add a missing .El.  Give a decent description
of how to connect to an ISP.
1997-04-12 22:58:41 +00:00
ache
9949bd676e Ignore SIGPIPE or any user can quit ppp just telnetting to it
and quitting telnet immediately (while phone number dialed)
Log client connection/disconnection with PHASE_BIT now.
Add more error recovery on client disconnection
1997-04-09 17:35:54 +00:00
brian
cb7f5ad555 Remove the syslog stuff, and allow various return values
in uu_lock().  Add uu_lockerr() for turning the results of
uu_lock into something printable.  Remove bogus section in man page
about race conditions allowing both processes to get the lock.
Include libutil.h and use uu_lock() correctly  where it should.

Suggested by:	ache@freebsd.org
1997-03-31 22:51:00 +00:00
brian
10839f0219 Move uucplock into libutil and create a manual page. 1997-03-30 12:12:20 +00:00
ache
b2a735bded Use srandomdev() to initialize RNG 1997-03-24 16:01:46 +00:00
ache
15ac7eb201 Convert srandom() arg cast to Lite2 style 1997-03-17 14:47:56 +00:00
brian
a7c87d03a0 Oops - forgot to document the new -HUP action.
This should make 2.2 if the HUP stuff (earlier today) does.
1997-03-13 21:39:41 +00:00
brian
d14412c59d Closes pr 2711
Fix -background option.  Parent returns after the line is established
(or not established).
Definitely a candidate for 2.2
1997-03-13 21:22:09 +00:00
brian
ccae52be0e Requested by: Harlan Stenn <Harlan.Stenn@pfcs.com>
Accept SIGHUP as a "re-open logfile" signal.  As ppp
doesn't set it's serial line to it's controlling terminal,
we can use HUP :)

This is a candidate for 2.2.  The log.[ch] changes won't
conflict, but the main.c changes will.  We just want to change the
kill(...,SIGHUP) to a SIGTERM and change the signal(SIGHUP,Hangup)
to a pending_signal(SIGHUP,LogReOpen).
1997-03-13 14:53:55 +00:00
brian
db1507dc21 Reviewed by: ache@freebsd.org
These changes should fix the signal "problems" in ppp.
The signal changes should really be put into 2.2 too !
The following patches should do it.  There were some other
changes made by Andrey recently that havn't been brought
into 2.2, it may be worth doing them now.
1997-03-13 12:45:35 +00:00
ache
78da0d5742 Do not re-initialize random numbers generator several times.
Use ^ getpid() to produce better initial state.
1997-03-10 08:04:15 +00:00
ache
8a8c723f8e Detect failure open condition for direct mode now
Don't assume that modem descriptor must be >=3 in CloseModem,
just assume it is any valid descriptor >=0
1997-03-10 06:54:58 +00:00
ache
e9a946ef3e Don't waste time scanning tun_in+10 descriptors, scan exactly what
we need now.
Don't assume that file descriptor can't be 0 (many places)
Protect FD_* macros from being used with negative descriptors
Shorten MS EXT show help to fit 80 cols
1997-03-10 06:21:02 +00:00
ache
03e7c0c645 cdefs cleanup 1997-03-09 20:09:17 +00:00
ache
6a6c22b3a8 I remove pending signals completely, they are not useless, they are
dangerous! Signal handlers themself must be fixed to not call malloc,
but no pended handlers, it will be correct fix. In finite case each signal
handler can set some variable which will be analized later, but calling
handler functions manually is too dangerous (f.e. signals not blocked while
the handler or handlers switch executed in this case). Of course this
code can be fixed instead of removing, but it not worth fixing in any case.

Should go into 2.2

In addition sig.c code shows following dangerous fragments (there can be more,
but I stop after two):

This fragment

    if (fn == SIG_DFL || fn == SIG_IGN) {
	handler[sig-1] = (sig_type)0;
	<------------- here
        signal(sig,fn);
    } else {

cause NULL pointer reference when signal comes
"here", but more worse fragment is below:

void handle_signals() {
    int sig;

    if (caused)
       for (sig=0; sig<__MAXSIG; sig++, caused>>=1)
           if (caused&1)
               (*handler[sig])(sig+1);
}

caused is bitmask which set corresponding bit on each signal coming.
And now imagine, what happens when some signal comes (bit sets) while loop
is executed (see caused>>=1 !!!)

In this light carrier drop situation was (as gdb shows)
1. SIGSEGV in handle_signals because some junk called as *handler reference.
2. Since SIGSEGV was pended too (== never happens),
it can cause various range of disasters.
1997-03-09 20:03:51 +00:00
ache
61ad3a8aa4 Unpend all signals before execv, it not makes any sense to pend them here
Should go into 2.2
1997-03-08 12:15:58 +00:00
ache
92533e08e9 Unpend fault signals like SIGSEGV, etc
It is too dangerous to continue with them in any case

Should go into 2.2
1997-03-08 12:11:26 +00:00
ache
e33ad1e9d5 Unpend all killing signals to shut down this thing immediately,
or it is impossible to kill it in some situations.
Unpend yet one SIGARLM (see timer.c commit)

Should go into 2.2
1997-03-08 10:04:21 +00:00
ache
cd4948fc0c Don't pend SIGALRM (Timer Service) due to
1) When carrier dropped, old variant often forget to detect it cause
unkillable loop forever (because SIGTERM pended too, but it will be
separate commit)
2) Time intervals accuracy reasons

Should go into 2.2
1997-03-08 09:55:42 +00:00
brian
4a576feefd osreldate.h stuff suggested by: Eivind Eklund
Remove #include's from sig.h and get dependant modules to include them
themselves.  Make inclusion of if_var.h depend on __FreeBSD_version so
that the -current version of ppp can be used with 2.1.*

2.2 Candidate ?
1997-02-25 14:05:17 +00:00
brian
585f595a37 Requested by: Elvind Eklund
Remove usage of __sighandler_t as it's not available in 2.1*
1997-02-23 20:01:20 +00:00
brian
ed53640007 Pointed out by: Joerg
Fix broken signal.h include
1997-02-23 19:28:56 +00:00
peter
b782f4df30 Revert $FreeBSD$ to $Id$ 1997-02-22 16:15:28 +00:00
phk
5891cb4ba7 Make it possible to substitute INTERFACE when executing commands. 1997-02-22 09:12:36 +00:00
brian
43a90c7d71 Tidy up signal handling.
All signal() calls have been changed to pending_signal() calls.
pending_signal() is defined in the new sig.c file.  It remembers
the handler and traps the signal with a function that will remember
the signal.

main.c now calls handle_signals() to actually call the required
handlers (if the above handler was called).

If this doesn't close PR2662 (was PR2347), I'll cry.

Joerg, I think this should go into 2.2, but I havn't done anything
about it because I'm bound to botch it with the new sig.[ch] files.

I've just "cvs add"'d sig.[ch] so far.... can you update to 2.2 and
tell me what you did ?  Thanks.
1997-02-19 01:14:41 +00:00
joerg
bf41099e31 Fix a benign typo (benign by now, since sizeof(VarLoginScript) ==
sizeof(VarDialScript)).

Submitted by:	Arjan.deVet@adv.IAEhv.nl (Arjan de Vet) -- or actually by imp?
1997-02-02 19:13:25 +00:00
brian
0340159e07 Check the timer request flag irrespective of wheter select() came back with
EINTR - it's possible that it happened at some other point in the loop.
1997-01-30 00:49:50 +00:00
brian
bfe2c29335 Move the call to TimerService() into main.c - just after the select()
call.  The SIGALRM just sets a flag now, preventing the possibility of
any nasty recursivness in the handler itself.
1997-01-29 01:27:58 +00:00
jkh
808a36ef65 Make the long-awaited change from $Id$ to $FreeBSD$
This will make a number of things easier in the future, as well as (finally!)
avoiding the Id-smashing problem which has plagued developers for so long.

Boy, I'm glad we're not using sup anymore.  This update would have been
insane otherwise.
1997-01-14 07:20:47 +00:00
nate
a65f04e413 The 2.2-Beta version doesn't have the brackets after the if statement.
This has the effect of making every link a "passthrough" which means the
TCP or UDP port won't be freed after link deletion -- so there could be
eventual port exhaustion if the program were allowed to operate long
enough.

Submitted by:	Charles Mott <cmott@srv.net>
1997-01-10 08:32:05 +00:00
imp
bf83493bdc Fix many buffer overruns in the code. Specifically, disallow ExpandString
to be used to expand things beyond the size of the buffer passed in.  Also
do a general cleanup of sprintf -> snprintf as well as strcpy and strncat
safety.  Also expand some buffers to allow for the largest possible data
that might be used.

This is a 2.2 candidate.  However, it needs to be vetted on -current
since little testing has been done on this due to my lack of PPP on
this machine.

Reviewed by:	Jordan Hubbard, Peter Wemm, Guido van Rooij
1997-01-10 07:53:28 +00:00
bde
ce4119983d Updated DPADD to match LDADD. 1997-01-06 07:05:08 +00:00
wollman
5972643f58 Update to match changes in <net/if.h>. 1997-01-03 20:19:50 +00:00
jkh
52623b565c For /usr/sbin/ppp, you must choose between running ppp in the background or
connecting to a host immediately in the foreground.

I would like to be able to run ppp from a script so that my script can be
sure that it is connected to the 'net before it continues running:

  # Dial up the internet.
  ppp -background myprovider || exit 1

  do-some-net-command

  # Hang up the modem.
  kill -HUP `cat /var/run/ppp.tun0.pid`

Another problem is that the current ppp calls its process id file
`/var/run/PPP.server', which may conflict if you have more than one IP
tunnel interface available.

Closes PR#1469
Submitted by:	Gord Matzigkeit <gord@enci.ucalgary.ca>
1996-12-22 17:29:33 +00:00
jkh
6ca14a89c6 Make CRTSTS selection a runtime option. Closes PR#1392
Submitted by:	Mike McGaughey <mmcg@heraclitus.cs.monash.edu.au>
1996-12-22 17:09:17 +00:00
nate
1d0c7cf264 Compute IP checksums in addition to TCP checksums when necessary in the
new 'aliased' packets.  Note, if the original packet has a bogus cksum,
we will *NOT* re-compute the cksum, therefore the new packet will also
be wrong (but passed on).

Found by:	MartinRenters@awfulhak.demon.co.uk
Reviewed by:	Brian Somers <brian@awfulhak.demon.co.uk>
Submitted by:	Charles Mott <cmott@srv.net>
1996-12-21 18:34:52 +00:00
nate
8f656e55b3 Fixed prototypes of PacketAliasIn/Out. (cosmetic)
Submitted by:	Brian Somers <brian@awfulhak.demon.co.uk>
1996-12-19 00:41:42 +00:00
pst
7f6c218474 Avoid some buffer overrun problems. 1996-12-15 20:39:30 +00:00
jkh
e9d9f1a03f The infamous IP aliasing code for ppp, modified to work as a runtime option
(otherwise ppp's behavior remains unchanged) and documented by myself,
Steve Sims, Nate Williams, Martin Renters and god-only-knows who else. :-)
Submitted by:	nate
Obtained from:	Charles Mott <cmott@srv.net>
1996-12-12 14:39:47 +00:00
wollman
d3ecee07b3 Fix up programs which expect <net/if.h> to include <sys/time.h> to instead
do it themselves.  (Some of these programs actually depended on this
beyond compiling the definition of struct ifinfo!)  Also fix up some
other #include messes while we're at it.
1996-12-10 17:11:53 +00:00
nate
8620fc8544 Added my 'ddial' patches to user-PPP. The new mode tries it's darndest
to keep the link up, so it re-dials whenever it detects the link go
down.  This is useful for 'dedicated' links who use PPP.

It's been used for over a year w/out problems at different sites.
1996-12-03 21:38:52 +00:00
phk
444e962c43 typo 1996-11-19 11:08:27 +00:00
joerg
3029e93724 Improve the sample login script now that our sh(1) understands -p.
Closes PR # docs/1383: ppp(8) man page suggests using shell script...
1996-10-31 19:55:05 +00:00
jkh
a95b9bd326 Make changes suggested in PR#1825, closing it. Removes default local
hack behavior better than previous commit.
Submitted-By: Peter Childs <pjchilds@imforei.apana.org.au>
1996-10-18 03:47:53 +00:00
jkh
4822eb7860 Turn LOCALHACK off by default (whoops!)
Noticed-By: Atsushi Murai <amurai@spec.co.jp>
1996-10-18 01:44:45 +00:00
sos
75d85a7c3c Fixed the security leek I introduced the other day, now
shell command is only executabel from command files, not
from the commandline.
1996-10-13 15:05:14 +00:00
jkh
bba6a15120 1. Room to calculate MD5 for CHAP negotiation is shorter than
required. a core is not dumped at first connecting time and
   dumped at second or third time. (patch I)
2. A routine for "show route" refers out of allocated space.
   Values pointed by "lp" should be read as CHAR, I think.
   there is also no free() for disallocation. (patch II)

Here is also a patch for an improvement: In current imprementation,
even if PPP connection is disconnected by time out, prompt of
interactive mode does not change from "PPP>" to "ppp>" to
indicate the disconnection on a terminal.
So I modified the code to do that. (patch III)

Submitted-By: NAKAMURA Motonori <motonori@econ.kyoto-u.ac.jp>
1996-10-12 16:20:34 +00:00
sos
aedb306d8b Allow shell commands in all modes.
Old behavior can be had with define SHELL_ONLY_INTERACTIVELY
1996-10-10 11:27:35 +00:00
sos
7510af99b9 Add the feature to use MYADDR & HISADDR macroes as arguments to
a shell escape.
1996-10-07 10:01:17 +00:00
jkh
e80eb7c648 Properly include prototypes.
Submitted-by: "Daniel O'Callaghan" <danny@panda.hilink.com.au>
1996-10-07 04:21:09 +00:00