444 Commits

Author SHA1 Message Date
brian
3c804940dc o If there's a session leader left running for a descriptor
that we're now closing, manually HUP that session leader
  so that the tty is fully released.
o Always restart our carrier detect timer in the receiving
  process if it was running in the sending process (as we
  now *always* pass the descriptor).
o Tweak argv when we go into pause() mode to keep our session
  so that ps can see what's going on (without checking for a
  `pause' state in `ps -l').
1998-05-29 18:33:10 +00:00
brian
c77a86dfe8 Some documentation corrections & typo fixes.... 1998-05-29 18:32:41 +00:00
brian
36b1e9c4f0 o Make modes consistent throughout ppp. The same strings are used
in `set mode', `allow modes', on the command line and when
  outputting mode names.  The strings are matched so that only
  enough characters to uniquely identify the string are required,
  so you can now

    ppp -a mylabel  (for auto mode)
    ppp -b mylabel  (for background mode)
    ppp -dd mylabel (for direct dial mode)

  etc.
o Make -ddial dial when specified on the command line (oops).
  Pointed out by: Alex <garbanzo@hooked.net>
1998-05-29 18:32:11 +00:00
brian
cc4f503663 srandomdev() isn't available in all 2.* versions. Only
use it for version 3 (-current) & up.
1998-05-29 00:03:00 +00:00
brian
e0d8cc391d o #define the name "tun" in defs.h against the future possibility
of supporting architectures with different device names.
o Close /dev/tunX when destroying the bundle.
o Don't forget to close the parent end of the pipe in the child
  process when exec'ing a program from a chat script.
o If we close our controlling terminal, ditch the current session
  with it, allowing getty(8) (or whatever) to regain control.
o After transferring our controlling terminal descriptor to another
  ppp instance, we now fork a new ppp to continue where we left off,
  transferring ownership of all uucp locks and the /var/run/tunX.pid
  file.  Meanwhile the parent closes all file descriptors, defaults
  all signals and does a pause() to wait for a HUP after the
  transferred descriptor is finally closed.
  We don't run /bin/cat any more (again!).

  Suggested by: bde

TODO: It seems clocal devices need their pause()d session leader
      to be given a manual HUP, as closing the last open descriptor
      doesn't do the job.
1998-05-28 23:17:51 +00:00
brian
f0bbc1adc5 o Don't forget to close our transfer socket if we cannot
generate the data to transfer.
o Transfer uucp lock ownership for the transferred device.
o Don't assume we know the correct values of dev_is_modem and
  mbits after the transfer.
1998-05-28 23:15:40 +00:00
brian
8001e72fd3 Don't assume stdout is a tty in interactive mode
Analyzed by: dmaddox@scsn.net (Donald J. Maddox)
1998-05-27 22:43:37 +00:00
brian
bf79f2c5a4 o Only do the /bin/cat bit when we're transferring our ctty. 1998-05-25 10:37:02 +00:00
brian
02218556c6 o Don't try to transfer tty device descriptors as there's no way of
transferring session rights with them.  Instead, create two
  `/bin/cat' processes.  A new child is spawned and disassociated from
  the terminal and the parent, which continues with the rest of the ppp
  process.  Meanwhile, the parent spawns another child, and both the
  parent and child exec the `/bin/cat' commands with the appropriate
  descriptors.  This way, the session is owned by the parent, and the
  tty is held open.
o Close LCPs that have done a TLF and are now in ST_STOPPED before
  calling Down.  This prevents them from trying to come back up again
  after the peer has shut them down (it seems a bit strange that the
  rfc says that a Down in ST_STOPPED will cause a TLS etc).
o Don't try to set the physical link name pointer when we're receiving
  and renaming a datalink.  The physical hasn't been created yet, and as
  it happens, the garbage physical pointer happens to be the value of another
  physical - so we're pointing that other physical name at ourselves.
  yeuck.
o Re-arrange the order of things in main (DoLoop()).  We now handle
  signals only after the select and not before the UpdateSet.  It's
  possible that either a signal (FSM timeout) or a descriptor_Read()
  brings a link down, after which we'd better tidy up any dead direct
  and 1off descriptors before calling UpdateSet() again.
o Mention when we detect a PPP packet when we see one before the link
  is up (then start LCP as before).
1998-05-25 02:22:38 +00:00
brian
400d0bfad1 Show the link mode in `show links'. 1998-05-23 22:28:19 +00:00
brian
b18cb274a1 Oops - patch failed in last commit ???? 1998-05-23 22:27:53 +00:00
brian
7f9f3d4b00 o Move our prompt descriptor list outside of the bundle.
It's now dealt with by the `server' object.  This simplifies
  things as we only have one list of prompt descriptors and
  the log_ routines check prompt::logactive to determine
  whether it should be used for output.
o Include the MP socket UpdateSet() result in bundle::UpdateSet().
o Don't select on the tun device unless we're in NETWORK
  phase or AUTO mode.
o Stop the idle timer when we go to DEAD phase.  We may
  have transferred a link and not had a chance to kill
  it.
o Don't fail when trying to unlink our transferred datalink
  from our descriptor lists just before the transfer.
o Add our link descriptor to the write set if we got a short
  write the last time (physical::out is set).
o Log the connection source address when a connection is closed.
o Remove descriptor::next field.  Descriptor lists are not required
  any more.
1998-05-23 22:24:50 +00:00
brian
3d5a66dff7 o Make sure we adjust our min seq and process any outstanding queued
incoming fragments when a link goes down.
o Don't use the minimum sequence numbers of links that aren't open.
o Understand sequence number wrapping when determining the minimum
  sequence number.
o Add & adjust a few comments.
1998-05-23 17:05:28 +00:00
brian
35a7434e26 o If all CCPs are disabled & denied, don't send a REQ - just enter
STOPPED state waiting for the peer to say something.
1998-05-23 13:38:09 +00:00
brian
c67977d380 Don't give .It too many args. 1998-05-21 23:45:10 +00:00
brian
513467478d Remove -Wpointer-arith 1998-05-21 23:38:08 +00:00
brian
dc0ae5e7bf o Add some missing #includes
o Calculate base device name correctly.
1998-05-21 22:55:08 +00:00
brian
56df88b778 MFMP: Make ppp multilink capable.
See the file README.changes, and re-read the man page.
1998-05-21 21:49:08 +00:00
brian
a3d6984f73 Close forgotten descriptor.
PR: 6690
Submitted by: Ruslan Ermilov <ru@ucb.crimea.ua>
1998-05-19 21:49:54 +00:00
brian
dff8855500 Quieten gcc-2.8.1 1998-04-25 09:16:23 +00:00
brian
42fda990ad Fix diagnostic typo. 1998-04-25 00:20:23 +00:00
brian
b3e0fb3e16 Cosmetic: .Dq -> .It 1998-03-16 07:33:57 +00:00
brian
302c593c3a Correct #ifdef for __FreeBSD__ < 3 1998-03-13 03:24:05 +00:00
brian
92beba7e57 Add missing include 1998-03-13 01:55:47 +00:00
brian
95c31de535 Add extraneous braces to stiffle warnings from gcc-2.8 1998-03-13 01:36:10 +00:00
brian
016c85730a MFMP: Don't send LQRs when the peer has LCP REJ'd them. Send
ECHO LQRs instead.
1998-03-13 00:55:16 +00:00
brian
a847940420 o Fix a few comment typos.
o Fix ``set timeout'' usage message and documentation.
o Change ifOutPackets, ifOutOctets and ifOutLQRs to `u_int32_t's
  so that they wrap correctly.
o Put the LQR in network byte order using the correct struct size
  (sizeof u_int32_t, not sizeof u_long).
o Wrap LQR ECHO counters correctly.
o Don't increment OutLQR count if the last LQR hasn't been replied
  to.
o Initialise HisLqrData (last received LQR) in StartLqm.
o Don't start the LQR timer if we're `disabled' and `accepted'.
o Generate LQR responses when both sides are using a timer and
  we're not going to send our next LQR before the peers max timeout.

LQR should now be fully functional.
1998-03-12 02:23:42 +00:00
brian
762d9b5e3c Explicitly call caused' an int'.
Sugested by: gcc-2.8
1998-03-08 23:39:33 +00:00
brian
5541d07a93 Use the correct device name in -direct mode. 1998-03-06 00:35:30 +00:00
brian
5b9c68270e MFMP: Allow 8 character login names.
Do the login()/logwtmp()/logout() as id 0.
1998-02-19 02:10:13 +00:00
brian
c30c1e89da MFMP: LogWARN rather than LogERROR when we can't create
our diagnostic socket.
1998-02-18 20:40:32 +00:00
brian
4d644306f0 Don't leak memory when the peer sends PROTO_COMPD packets
without negotiating compression first.
1998-02-18 19:38:43 +00:00
brian
78287d51b2 Move handle_signals() to before the FD_SETs. handle_signals()
may result in a our modem closing after it's made its way into
the fd_set, resulting in a program exit (with select(): bad file
descriptor) rather than a dropped link.
1998-02-10 22:33:43 +00:00
brian
939d87b65e Merge from MP branch:
Correct magic number format string
1998-02-04 01:06:23 +00:00
brian
342874fb3a Don't moan about not creating tunX.pid and ttyX.if if RELEASE_CRUNCH
is defined.
1998-01-29 00:44:15 +00:00
brian
77370f92cc Talk a bit about ongoing development. 1998-01-29 00:42:52 +00:00
brian
1c9a27b464 Cosmetic:
Don't mention the authors name at startup.  He's already credited
  in the man page.  Instead, make the message consistent with the
  one given to the diagnostic port (and fix the grammar when entering
  `term' mode).
  Don't credit the zlib author in the man page as ppp isn't linked
  directly with zlib (it's shared).
  Mention when the OpenBSD port was first made available.
1998-01-27 23:14:53 +00:00
brian
4b6b8906a0 Fix error message.
Don't complicate the test compilation mentioned at the start of
the file.
1998-01-24 00:03:14 +00:00
brian
2fa1051841 Stop bogus warnings. 1998-01-23 22:29:16 +00:00
brian
b1b36a2e87 Re-implement the proxy arp sockaddr_dl search routine (again).
It now works :-) and searches all interface aliases.
1998-01-23 21:37:27 +00:00
brian
f1d93f530b Don't allow manual dialing unless in auto or interactive mode. 1998-01-23 04:36:42 +00:00
brian
dc5134f336 Use the sockaddr_dl with the link#, not the ethernet address
when creating proxy arp entries.
1998-01-21 12:52:14 +00:00
brian
8a229af566 Remove unused #includes.
Make various bits static.
Remove unused variables.
Submitted by: eivind
1998-01-21 02:15:33 +00:00
brian
7443167983 Allow an optional delay when specifying "set openmode active".
The delay defaults to 1 sec (as it always has) unless we've done
a ~p in interactive mode or we've actually detected a HDLC frame.
This is now cleanly implemented (via async timers) so that it is
possible for LCP to come up despite the delay if an LCP REQ is
received.

This will hopefully solve situations with slow servers or slirp
scenarios (where ECHO is left on the port for a second or so before
the peer enters packet mode).

Also, ~p in interactive mode no longer changes the value of the default
openmode delay and -dedicated mode enters packet mode in the right state
according to the value of openmode.
1998-01-20 22:47:48 +00:00
brian
8c6e8375e3 dlopen(..., RTLD_NOW) rather than RTLD_LAZY.
Pointed out by: John Polstra <jdp@polstra.com>
1998-01-19 22:59:57 +00:00
brian
d93811908a sys/types.h -> sys/param.h
Pointed out by: Niklas Hallqvist <niklas@petra.appli.se>
1998-01-19 22:34:20 +00:00
brian
a4acc2b6f9 Reimplement proxy-arp address stuff using sysctl(). 1998-01-19 02:59:34 +00:00
brian
1a8fafd2d2 Allow "set vj" for changing the default number of slots
and whether slot compression is requested.
Don't show current values with "show ipcp" if IPCP isn't
"opened".
1998-01-18 20:49:22 +00:00
brian
c73933598a Remove the necessity of -ldes and -lalias etc from release/Makefile.
When building a release, RELEASE_CRUNCH is defined for a `make' of
the objects required by the crunch of each program.  The object list
is still obtained in the same way, so you must make sure that all
objects are built (empty if necessary) by this make.  ppp/Makefile
provides an example.

Reviewed by: jkh
1998-01-17 14:21:21 +00:00
brian
f2896d69aa Free our input mbuf when the FCS is good (oops, memory leak). 1998-01-14 01:47:50 +00:00