Commit Graph

382 Commits

Author SHA1 Message Date
Brian Somers
3732c71b01 Print errors correctly (don't adjust
argc/argv for commands).
1997-09-09 23:23:24 +00:00
Brian Somers
ff9d952578 Don't start an interactive shell from a
telnet prompt.
1997-09-09 23:13:31 +00:00
Brian Somers
d40f8a5a61 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 Somers
506474c87a Document the use of PAP/CHAP properly. 1997-09-09 21:01:53 +00:00
Brian Somers
881a8bbf54 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 Somers
8742662039 Use __libalias_version to derive the name to
pass to dlopen().
1997-09-06 11:16:02 +00:00
Brian Somers
683cef3c33 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 Somers
5b4c5b0055 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 Somers
b6d7b1e061 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 Somers
afc7fa2c18 Cosmetic: Make LogPrintf() calls consistent. 1997-08-31 22:59:49 +00:00
Brian Somers
021352282c Make ppp owner root.ppp, mode 4550
Suggested by: guido
Condoned by: eivind
1997-08-31 20:18:03 +00:00
Brian Somers
709db7fbee Remove use of login_progok()
Suggested by: guido
1997-08-31 20:07:03 +00:00
Brian Somers
ce28475da5 Use login_progok(). 1997-08-27 20:11:16 +00:00
Brian Somers
4e752f44f0 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 Somers
f525ead3dd Lose a couple of extraneous backslashes. 1997-08-25 01:52:11 +00:00
Brian Somers
944f709824 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 Somers
81816fc583 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 Somers
e47c8739d5 Update version number to 1.02 so that I can tell what
people are running
1997-08-21 17:20:00 +00:00
Brian Somers
c16615aa8b Update doc to use MYADDR in ppp.conf. 1997-08-21 17:16:21 +00:00
Brian Somers
1d205e1313 Allow the use of HISADDR & MYADDR in ppp.conf. 1997-08-21 17:07:30 +00:00
Brian Somers
de451c685c 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 Somers
91fc7145dc Correct online usage message for "set ? stopped" 1997-08-21 16:18:07 +00:00
Brian Somers
cb611434af 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
Daniel O'Callaghan
d053d1b926 Spelling police. 1997-08-19 11:27:00 +00:00
Daniel O'Callaghan
441de788b1 Typo fixes. 1997-08-19 11:18:34 +00:00
Brian Somers
3f6fd9230e 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 Somers
b48dfe09c7 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 Somers
eb53eaa30b Fix possible buffer overrun while "expect"ing
something that's "nearly" what it wants.
1997-08-17 22:47:07 +00:00
Brian Somers
0444761561 Typo police 1997-08-17 22:45:25 +00:00
Brian Somers
71144dc552 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 Somers
5b9b04192a 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 Somers
868cddb5fa Use libalias.so.2.3. 1997-08-11 22:07:57 +00:00
Brian Somers
cad5afb077 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 Somers
05dce3eefc Use libalias.so.2.2 1997-08-03 20:21:22 +00:00
Brian Somers
bfbee26298 Remove extraneous prototypes. 1997-08-01 02:02:28 +00:00
Brian Somers
4eb8b1640d Set up the alias address before executing
the contents of ppp.linkup.
1997-07-29 22:37:04 +00:00
Brian Somers
6614d8c5f3 Fix file descriptor leaks. 1997-07-28 01:02:27 +00:00
Brian Somers
9ed2f0484a 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 Somers
e9eb6d7aa4 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 Somers
c09be724d6 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 Somers
7cc60a7478 Allow service names in "set server" 1997-07-12 19:22:34 +00:00
Poul-Henning Kamp
177c95e45a Reset all LQR variables when we start over. 1997-07-02 19:18:42 +00:00
Brian Somers
873725cc51 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 Somers
01ec25112c Allow specification of a umask for local socket
creation in "set server" command.
1997-06-30 03:03:38 +00:00
Brian Somers
76c5241d63 Fix HUP handling while dialing.
Pointed out by:	ache
1997-06-29 13:54:31 +00:00
Brian Somers
186d0be47e 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 Somers
4ef16f24f2 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 Somers
2126fb65a3 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 Somers
030d3ce62a Fix ~? output in "term" mode.
Spotted by: Harry Starr <starr@gccs.com.au>
1997-06-24 21:25:06 +00:00
Brian Somers
368aee2ba3 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 Somers
c3a83f6777 Typo police.
Submitted by: Chuck Robey <chuckr@glue.umd.edu>
1997-06-23 23:08:23 +00:00
Brian Somers
a6ae823cc3 Fix "set parity"
PR:		3881
Actual problem found by:	shocking@mailbox.uq.edu.au
1997-06-23 19:18:13 +00:00
Brian Somers
9b5a20e10a Fix "delete all".
PR:		3913
1997-06-20 23:43:35 +00:00
Brian Somers
3b80c31921 Cosmetic: Fix help syntax. 1997-06-17 02:04:51 +00:00
Brian Somers
712ae38782 Handle redial tries correctly under -ddial 1997-06-17 01:46:05 +00:00
Brian Somers
55a8cdea92 Put TCP/IP logs back on one line. 1997-06-16 21:20:00 +00:00
Brian Somers
cc39a98fd5 Set netfd to STDOUT_FILENO rather than STDIN_FILENO. 1997-06-16 19:59:41 +00:00
Brian Somers
fd59deba96 Correct filter docs.
PR:		3464
Submitted by:	Stephen J. Roznowski <sjr1@flash.net>
1997-06-16 13:52:10 +00:00
Brian Somers
d656a4c582 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
Andrey A. Chernov
687ee69a2a Remove srandomdev fallback code 1997-06-14 00:27:03 +00:00
Brian Somers
e696ee3b80 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 Somers
94b3022ec7 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 Somers
582691713e Fix "show ?" alignment.
PR:		3830
Submitted by:	Josh Gilliam <josh@quick.net>
1997-06-13 00:09:54 +00:00
Brian Somers
6ea261e21d Document ppp over tcp (how to tunnel) 1997-06-13 00:04:58 +00:00
Brian Somers
0706ff3806 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 Somers
e979ce388b 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 Somers
927145be97 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 Somers
0e6f6af18d Remove mis-leading version info. 1997-06-03 00:35:03 +00:00
Brian Somers
8f2fa0eeaf 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 Somers
ceb1cfa497 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 Somers
0d8fb00071 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 Somers
1f3dee4c22 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 Somers
da2b73b1ee 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 Somers
e81574b54b 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 Somers
e83481f965 Correct the return of DialModem()
Suggested by:	kfurge <kfurge@worldnet.att.net>
1997-05-29 02:29:13 +00:00
Brian Somers
6ed9fb2fc9 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 Somers
dcb1c20021 Include <alias.h>, not "alias.h" 1997-05-25 19:49:44 +00:00
Brian Somers
25aa96ac6c Fix the reconnect option, and add an explanation to vars.h 1997-05-24 17:32:42 +00:00
Brian Somers
f82fd8286c Finish updating for the latest alias code.
Submitted by:	Charles Mott <cmott@srv.net>
1997-05-23 05:34:15 +00:00
Brian Somers
c9bf343a4f 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 Somers
6db75539f1 Use the latest alias engine - now in libalias.
Submitted by:	Charles Mott <cmott@srv.net>
1997-05-23 04:54:03 +00:00
Brian Somers
80e37c722b Output exit status description of child in background mode. 1997-05-19 03:02:36 +00:00
Brian Somers
6efd9292f6 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 Somers
220e07d455 Make openmode active by default (for both client/server).
Requested by:	The masses.
1997-05-17 16:08:48 +00:00
Brian Somers
298091dacd 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 Somers
ce72881634 Don't attempt to ioctl(modem...) when modem is
closed.  Just DownConnection().
1997-05-14 01:14:32 +00:00
Brian Somers
a85412b4a5 Correct the files section for tunX.pid and ttyXX.if 1997-05-13 09:31:05 +00:00
Brian Somers
f2d6d31a91 Correct sample file name. 1997-05-12 11:54:12 +00:00
Brian Somers
aefd026afb 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
Andrey A. Chernov
06d8e8d3f3 Cosmetique 1997-05-11 00:44:37 +00:00
Andrey A. Chernov
b1c4e61441 Print out reject masks on "show lcp" 1997-05-11 00:41:30 +00:00
Andrey A. Chernov
8706374189 Use random() for GenerateMagic() 1997-05-11 00:16:00 +00:00
Andrey A. Chernov
290281edbd Cosmetique fixes:
shorten help message to fit the screen
return to prompt from "show ipcp"
1997-05-10 23:46:29 +00:00
Brian Somers
057df964f4 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 Somers
41c6c54314 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 Somers
274e766c99 Tidy up the code - bounds checking, return
value checking etc.

Submitted by:	eivind
1997-05-10 01:22:19 +00:00
Brian Somers
13743c302f Don't reconnect (due to reconnect setting) after
close command.
1997-05-09 23:34:56 +00:00
Brian Somers
030340297a Set setitimer() arg correctly. 1997-05-09 20:48:21 +00:00
John Polstra
d8fa05fc47 Null commit to force version bump. 1997-05-09 16:16:31 +00:00
Brian Somers
cdc86cbc9f Allow mixed case commands.
Allow HISADDR, MYADDR, INTERFACE and ALL in mixed case.
1997-05-08 01:26:31 +00:00
Brian Somers
950c8929a7 Reset lqrsendcnt.
PR:		2449
Submitted by:	mark thompson <thompson@tgsoft.com>
1997-05-07 23:40:31 +00:00
Brian Somers
2f8fcf44da 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 Somers
e68d210e8f 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 Somers
2cd0474b47 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
Andrey A. Chernov
63202ff1e6 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 Somers
07030d97c1 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
Andrey A. Chernov
4ded859ba2 Fix typo in previous commit 1997-04-19 11:31:38 +00:00
Poul-Henning Kamp
6b5f0ac2a3 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 Somers
4f72618556 Remove osreldate. I got the number wrong anyway :( 1997-04-15 00:03:36 +00:00
Brian Somers
43ea9d19fa 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 Somers
4ed9958f49 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 Somers
c0139fb2e2 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
Andrey A. Chernov
e0d3e2336f 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 Somers
687d0cdeb3 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 Somers
568b59b9df Move uucplock into libutil and create a manual page. 1997-03-30 12:12:20 +00:00
Andrey A. Chernov
6a95b13d8d Use srandomdev() to initialize RNG 1997-03-24 16:01:46 +00:00
Andrey A. Chernov
7b50678a36 Convert srandom() arg cast to Lite2 style 1997-03-17 14:47:56 +00:00
Brian Somers
9163ee5e9d 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 Somers
6e4959f072 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 Somers
c6c740be8b 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 Somers
f5ff0f7c99 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
Andrey A. Chernov
359ceb95ec Do not re-initialize random numbers generator several times.
Use ^ getpid() to produce better initial state.
1997-03-10 08:04:15 +00:00
Andrey A. Chernov
87e63218ab 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
Andrey A. Chernov
780700e5ed 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
Andrey A. Chernov
8ea7f0577b cdefs cleanup 1997-03-09 20:09:17 +00:00
Andrey A. Chernov
bbea88d05d 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
Andrey A. Chernov
0b6828d14d 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
Andrey A. Chernov
d7f5ee41e8 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
Andrey A. Chernov
06257ca4f4 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
Andrey A. Chernov
ee5f208d63 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 Somers
c3b6ad6667 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 Somers
f51673c34f 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 Somers
2d7b9963c4 Pointed out by: Joerg
Fix broken signal.h include
1997-02-23 19:28:56 +00:00
Peter Wemm
476602a9d0 Revert $FreeBSD$ to $Id$ 1997-02-22 16:15:28 +00:00
Poul-Henning Kamp
017a5a7f59 Make it possible to substitute INTERFACE when executing commands. 1997-02-22 09:12:36 +00:00
Brian Somers
52cc0880db 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 Wunsch
47b213b1ba 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 Somers
534fe5414f 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 Somers
6b0b88d812 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
Jordan K. Hubbard
1130b656e5 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 Williams
11f1a97fce 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
Warner Losh
99c02d39bc 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
Bruce Evans
856a02a96f Updated DPADD to match LDADD. 1997-01-06 07:05:08 +00:00
Garrett Wollman
702a1d0148 Update to match changes in <net/if.h>. 1997-01-03 20:19:50 +00:00
Jordan K. Hubbard
6d14e2a8e6 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
Jordan K. Hubbard
17e762ca3d 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 Williams
66041afd67 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 Williams
3b92d2dee8 Fixed prototypes of PacketAliasIn/Out. (cosmetic)
Submitted by:	Brian Somers <brian@awfulhak.demon.co.uk>
1996-12-19 00:41:42 +00:00
Paul Traina
053edb3c0c Avoid some buffer overrun problems. 1996-12-15 20:39:30 +00:00
Jordan K. Hubbard
a9f484e520 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
Garrett Wollman
628d2ac1b0 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 Williams
680026d67a 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
Poul-Henning Kamp
fe6aa2730a typo 1996-11-19 11:08:27 +00:00
Joerg Wunsch
eea6c03c51 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
Jordan K. Hubbard
07eece26e8 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
Jordan K. Hubbard
1d3a9347a0 Turn LOCALHACK off by default (whoops!)
Noticed-By: Atsushi Murai <amurai@spec.co.jp>
1996-10-18 01:44:45 +00:00
Søren Schmidt
b08563169e 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
Jordan K. Hubbard
b0cdb3ce11 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
Søren Schmidt
45768c728b Allow shell commands in all modes.
Old behavior can be had with define SHELL_ONLY_INTERACTIVELY
1996-10-10 11:27:35 +00:00
Søren Schmidt
3d451fd3ea Add the feature to use MYADDR & HISADDR macroes as arguments to
a shell escape.
1996-10-07 10:01:17 +00:00
Jordan K. Hubbard
9f202f0cde Properly include prototypes.
Submitted-by: "Daniel O'Callaghan" <danny@panda.hilink.com.au>
1996-10-07 04:21:09 +00:00
Jordan K. Hubbard
fa79187367 Add passwdauth to list of vars.
Submitted-by: Peter Childs <pjchilds@imforei.apana.org.au>
1996-10-06 19:39:08 +00:00
Jordan K. Hubbard
d8e55738a0 Add support for the Evil Microsoft ppp extentions. Yes, they did it
on their own without even attempting to get concensus in the IETF, but
there are also lots of Win95/NT boxes out there.

CLoses PR#1494
Submitted-By: Peter Childs <pjchilds@imforei.apana.org.au>
1996-10-06 13:32:37 +00:00
Bruce Evans
552690d2b1 Moved getdtablesize() out of a loop. 1996-09-28 11:25:47 +00:00
Peter Wemm
2db86e5b74 Add RTF_STATIC to default route's flags in the hope that routed will no
longer remove it while it is running.
1996-08-13 09:19:45 +00:00
Poul-Henning Kamp
5a92765501 Reset Pred1 protocol on FCS errors. 1996-07-21 13:01:27 +00:00
Andrey A. Chernov
af83607cd1 Dump core on SIGSEGV instead of silent exiting. I saw SIGSEGV few times,
but they are VERY rare to tracking down this bug. I hope core
helps to track it down.
1996-07-09 17:40:36 +00:00
Andrey A. Chernov
113dea9127 Prepare for exec properly and check return values
Submitted by: Arjan de Vet <devet@IAEhv.nl>
1996-06-09 20:40:58 +00:00
Gary Palmer
4ecb9b64f0 Close a file descriptor leak. Possibly closes PR #1212 1996-06-03 21:35:21 +00:00
Poul-Henning Kamp
61f20a4c29 PR: bin/1194: PPP server port not initialized
Latest round of changes omitted initialization of tunnel device
unit variable.

Submitted by:	John Capo <jc@irbs.com>
1996-05-13 07:20:11 +00:00
Poul-Henning Kamp
9c749ffb8b Here is a diff of /usr/src/usr.sbin/ppp against current. The diffs
add some logging functionality which I find very useful.
'set debug link' will record just link up/down and address assignments.
'set debug connect' will record the entire chat dialog
'set debug carrier' will record just chat lines including 'CARRIER'
(so that I can be sure I'm getting a 28.8 line).

There was a global change required to permit LogPrintf to take a bit
mask instead of a bit position value (to permit logging some events
on either of two flags, so that no change in 'set debug lcp' would
result from the code supporting 'link'.  Thus the diffs are rather
long for such a small change.  The man page is also touched.

Oh, and there was a slight syntax problem in route.c

Reviewed by:	phk
Submitted by:	Tony Kimball <alk@Think.COM>
1996-05-11 20:48:42 +00:00
Mike Pritchard
9cdda9ab23 Xref chat(8) and pppd(8). Also change .It references to .Pa for file
name references in the file section.
1996-05-02 19:18:47 +00:00
Bruce Evans
93d2c1bde1 Fixed a couple of format strings to match the change of pid_t from long
to int32_t.  I only fixed the ones that I noticed the warnings for.
Perhaps most of the format strings are correct now because they were
wrong before.  Except of course if int32_t isn't compatible with `int'.
1996-04-13 15:47:43 +00:00
David Greenman
dc7c7b9221 Fix editing mistake in last commit...sorry. 1996-04-11 08:24:04 +00:00
David Greenman
a78ca332ec Bugfix based on a kernel fix:
When PPP gets an uncompressed packet, it attempts to save off the TCP/IP
header for use in decompressing subsequant packets. If PPP gets garbage
(such as what happens when there is a port speed mismatch or modem line
noise), it will occasionally mistake the packet as a valid uncompressed
packet. When it tries to save off the header, it doesn't bother to check
for the validity of the header length and will happily clobber not only
the PPP VJC data structure, but parts of other process memory that happens
to follow it...causing, ahem, undesired behavior.
1996-04-11 08:14:44 +00:00
Andrey A. Chernov
81cc95f2a7 Here is a patch for a little bug in the WaitForString routine. The problem
is when the matched string spans the end of the inbuff.  This fix allocates
twice the IBSIZE so that it can keep the last and the current text to search
in the inbuff so that the match won't fail if it gets truncated by the read.

It also warns if the search string is to long and truncates it.

Submitted by: Dough Ambrisco <ambrisco@ambrisco.roble.com>
1996-04-06 02:00:17 +00:00
Andrey A. Chernov
7a8ef19ef1 Put signal number into logfile 1996-03-30 18:27:45 +00:00
Andrey A. Chernov
043e364b86 Fix UnrawModem:
restore initial (not second level) state
not call it for DEV_SYNC
issue input flush after restoring
1996-03-29 15:24:04 +00:00
Andrey A. Chernov
e3118d3f5b Directly clear parity area because cfmakeraw not do it 1996-03-28 13:38:59 +00:00
Andrey A. Chernov
3f0f267e5d After real problem is found (flush never occurse), re-enable
software flow control, but re-enable it properly,
idea taken from taylor 'cu'
1996-03-27 22:58:21 +00:00
Andrey A. Chernov
71f99a8d0e Fix typing bug cause flushing never occurse:
TIOCFLUSH -> TCIOFLUSH
1996-03-27 22:28:19 +00:00
Andrey A. Chernov
b3f735dcfd Use cfmakeraw() instead of all those termios settings 1996-03-27 21:40:55 +00:00
Andrey A. Chernov
8cf220d53b Cleanup both raw & termianl modes termios flags settings 1996-03-27 21:16:32 +00:00
Andrey A. Chernov
38e0acf3bc Disable ^S/^Q flow control!!! 1996-03-27 20:53:03 +00:00
Andrey A. Chernov
f2fc832c4b Better fix for terminal mode 1996-03-13 12:02:16 +00:00
Andrey A. Chernov
d91680ea37 1) Open /dev/null for std* after setsid() to be shure that modem is
*not* our controlling terminal (SIGHUP can coming in other case)

2) Add HUPCL for non-dedicated lines to be shure that modem
properly resetted.

3) Correct usage string.
1996-03-09 08:18:41 +00:00
Andrey A. Chernov
a81c9c683e Prevent dial cycling on the last phone from the list, make phone list copy 1996-03-08 13:22:23 +00:00
Andrey A. Chernov
cb7fddc6fa Log phone as LOG_PHASE, it is valuable enough for multi-phone environment.
Add missing return when terminal mode can't be re-established due
to modem not opened.
1996-03-08 12:34:40 +00:00
Andrey A. Chernov
1dff3fc565 1) Add multi-phone dialing/redialing, several phones separated by ':'
2) Improve on-line help subsystem
3) Make 'term' mode works even carrier dropped (old code
close line forever here)
4) Make 'term' mode 8bit clean.
5) Improve manual page
6) #ifdef DEBUG diagnostic about missing optional files.
7) Don't put interactive dialing info to logfile
1996-03-08 09:03:09 +00:00
Andrey A. Chernov
1e6ef3cd8c Eliminate multiply uucplock.c 1996-03-04 10:38:42 +00:00
Poul-Henning Kamp
e53374eaf4 Use libmd's MD5.
inline hdlc checksum calculation.
make big tables const.
1996-01-30 20:04:34 +00:00
Mike Pritchard
4a8d02835c Fix a bunch of spelling errors in a bunch of man pages. 1996-01-30 13:52:50 +00:00
Doug Rabson
76bd0c0a9d Some patches to ppp which improve stability. I have been running a
ppp based on these patches for about 3 weeks with no downtime.

The original submitters comments:

Two features iijppp has over kernel ppp that I like are predictor1
compression and demand dialing.  Here are a few bug fixes.

I expanded the priority queueing scheme and discovered it was broken
due to the assignment at ip.c line 300.  All packets were being
queued at the same priority.

Fixing priority queueing broke predictor1 compression.  Packets
were compressed before being queued and predictor1 worked as long
as the packets were popped off the queue in the same order they
were pushed onto the queue.

There were a few byte order problems in IP header tests also.

There is a recursion problem in SendLqrReport().  LcpClose() is
called when "Too many echo packets are lost" which winds up in
SendLqrReport() again.  I believe the original intention was to
just stop the LQR timer with the call to StopLqr() but the side
effects hurt.

Submitted by:	John Capo <jc@irbs.com>
1996-01-30 11:08:50 +00:00
Poul-Henning Kamp
ed6a16c181 Final cleanup for now. -Wall is now silent. A couple of bogons found. 1996-01-11 17:48:59 +00:00
Peter Wemm
37d89975ab My freshly aborted 'make world' has pointed out that the wait.h include
file is <sys/wait.h>, not <wait.h> as was recently committed.
1996-01-11 05:58:59 +00:00
Poul-Henning Kamp
7b64106a9e A random bunch of cleanup changes. 1996-01-10 21:28:04 +00:00
Atsushi Murai
a9c6b5df9c 1. Add a settable redial timer and logging of the process id in a file.
A settable redial timer helps to avoid the problem where both ends
   of a link want to dial at the same time and the line winds up busy
   for both ends. The process id is logged in /var/run/PPP.system where
   system is the name of the called system.  When both ends of a link
   are running in demand dial mode, you need an easy way to get the pid
   of the ppp on the called end so it can be killed and re-started with
   -direct or pppd started to handle the incoming ppp session.

2. Add secret description for "set timeout" to man.

Reviewed by:	Atsushi Murai <amurai@spec.co.jp>
Submitted by:	John Capo <jc@irbs.com>
1995-10-08 14:57:32 +00:00
Nate Williams
aca3622c3f Completely re-wrote the man-page using -mandoc macros. More cleanups in
sentence structure to include more articles, plus fix some mis-spellings
and typos.

Reviewed by:	gpalmer (Gary Paler)
1995-09-24 18:15:14 +00:00
Bruce Evans
68d2b4d6a9 Fix a comment that became wrong when it was moved in rev. 1.7. Fix nearby
indentation.  Cosmetic.
1995-09-18 12:41:52 +00:00
Atsushi Murai
f18846503d 1. All fragments (except the first one) of a fragmented packet were
dropped - devet@adv.IAEhv.nl (Arjan de Vet)
2. Will not read data from telnet connection - John Capo <jc@irbs.com>
3. Using LQM option could be drop the link due to LcpLayerDown() doesn't
   stop LQR timer. -  Brian <brian@awfulhak.demon.co.uk>
4. Allow to describe a syntax of filters that is not only port number
   but also by name in /etc/service. -  Rich Murphey <rich@lamprey.utmb.edu>

Reviewed by:	Atsushi Murai <amurai@spec.co.jp>
Submitted by:	devet@adv.IAEhv.nl, jc@irbs.com, brian@awfulhak.demon.co.uk,
		rich@lamprey.utmb.edu
1995-09-17 16:14:49 +00:00