Commit Graph

47 Commits

Author SHA1 Message Date
Brian Somers 81b6b8982d Merge LcpOpen functionality into datalink_LoginDone 1998-02-17 19:29:14 +00:00
Brian Somers d585f8f51b Cosmetic: Group configuration items in struct physical. 1998-02-17 19:29:03 +00:00
Brian Somers 73a13b5c4d Cosmetic: Group configuration items in struct datalink. 1998-02-17 19:28:49 +00:00
Brian Somers c7cc50305f Add datalink state DATALINK_READY to indicate when the datalink
is available, but LCP hasn't yet been started.  We get to this
state in ``term'' mode.
Remove PacketMode().  LCP startup and shutdown is now controlled
by the datalink.
Add ``show links'' command.
Make ``close'' capable of running with and without a context.
Make ``down'' require a context.
Make ``set parity'' and ``set rtscts'' use the correct context.
1998-02-17 19:28:35 +00:00
Brian Somers 1b35f8f703 Keep a handle on our current ``term'' in struct prompt
so that the `term' command works on the correct link.
1998-02-17 19:28:13 +00:00
Brian Somers aef795cc3b Introduce the ``link'' command for controlling
individual links.
1998-02-17 19:28:01 +00:00
Brian Somers c5a5a6ca93 Sort out (fix) the `term' command.
datalink_Up() can now be told to skip the dial/login/hangup
scripts and can be told whether to enter packet mode when
entering the DATALINK_OPENED state.
1998-02-17 01:05:47 +00:00
Brian Somers eaf65a3609 Remove some unused stuff from pppVars. 1998-02-17 01:05:22 +00:00
Brian Somers e718d1d7d8 Move the redial timeouts and max tries into struct datalink. 1998-02-16 19:11:10 +00:00
Brian Somers abff9bae14 Move the reconnect timeout and max tries into struct datalink. 1998-02-16 19:10:44 +00:00
Brian Somers 5b8b8060c1 Move the dial, login and hangup scripts into struct datalink.
Don't set these scripts in -direct mode.
Always set reconnect_tries to zero for -direct mode.
1998-02-16 19:10:03 +00:00
Brian Somers 310c3bab77 Cosmetic: Stop a warning 1998-02-16 00:18:52 +00:00
Brian Somers 3006ec67fe Create struct datalink.
This is a type of physical link that can chat and talk
LCP & CCP.  A bundle contains a list of these (only one
in the list for the moment).

The datalink is a type of descriptor, and dials, enters
LCP (& does CCP), kicks the bundle when its FSMs do
something interesting and does the hangup chat script
on the way down.  It also handles redials and reconnects.

There are lots of loose ends, and probably lots of bugs,
but the data structures are getting there !
1998-02-16 00:01:12 +00:00
Brian Somers c78db105b5 Remove some unused variables. 1998-02-13 05:31:03 +00:00
Brian Somers b6dec9f07f Update to version 2.0-beta
Allow for NULL fd_sets in descriptor_UpdateSet()
Reimplement the entire chat module, creating
`struct chat' - a `type' of struct descriptor.
Remove CARRIER logging.
CONNECT logging now only logs "CONNECT" lines.  CHAT logging
masks it with an entire log of the conversation.

Modem dialing is now asynchronous, including pauses
and timeouts :-)

The hooks in DoLoop() in main.c are *very* messy !  I'll have
to rewrite DoLoop fairly soon, so I don't care too much for the
moment.  This code is pretty raw.
1998-02-13 05:10:26 +00:00
Brian Somers 6b5fb63d1e Oops - put that handle_signals() call back. 1998-02-10 22:28:51 +00:00
Brian Somers 85b542cf4f Move the terminal/diagnostic socket stuff out of main.c
and into the new `prompt.c'.  struct prompt is (of course)
a `sort' of descriptor.
1998-02-10 03:23:50 +00:00
Brian Somers b77776a7f2 Pass the fdset to descriptor_Read & descriptor_Write
allowing support for the use of multiple file descriptors.
1998-02-10 03:22:05 +00:00
Brian Somers ea69f16a19 Typo police. 1998-02-10 03:21:39 +00:00
Brian Somers 77ff88ad4b Make the server descriptor into a `sort' of struct descriptor. 1998-02-09 19:24:03 +00:00
Brian Somers 42d4d39668 o Introduce struct descriptor.
This will ultimately be a member of a list of descriptors and
  their handler functions on which we need to select() in the
  main loop.
o Make struct physical into a `sort' of struct descriptor.
1998-02-09 19:21:11 +00:00
Brian Somers 68a0f0ccdd o Add bundle_Destroy().
o Don't remove routes and DOWN the interface when we're
  closed in auto mode.
o Initialize the FSMs in bundle_Create.
o Initialize ipcp::if_mine & ipcp::if_peer only once (so
  that we don't forget that we've SIOCAIFADDR'd the interface).
o Do a SIOCDIFADDR on the specific address to avoid hurting any
  other (still non-existent) NCPs.
o Fix some error/diagnostic messages.
1998-02-08 19:29:45 +00:00
Brian Somers 1afedc4b86 Create an AbortProgram() function for getting out of
ppp immediately.
1998-02-08 11:07:32 +00:00
Brian Somers aad81d1ecf Rename ccpstate to ccp, ipcpstate to ipcp and lcpstate to lcp. 1998-02-08 11:05:01 +00:00
Brian Somers 9876c443a8 Initialize RTS/CTS, speed and parity in modem_Create(). 1998-02-08 01:31:27 +00:00
Brian Somers 4a3762fbfd Remove two SIGSEGVs. 1998-02-07 22:22:45 +00:00
Brian Somers 455aabc3f8 o Hook the FSMs into our bundle.
o The FSM layering is now more sane.
o Move a lot of the NCP stuff into our ipcpstate rather than having it
  in the bundle, including control of the configured IP addresses.  We
  don't need hacks like the global `linkup' variable any more as the
  FSM decides when our ppp.link* files get run.  This is going to eventually
  be configurable based on FSM events anyway.
o Fix a few inconsistencies when both sides require authentication.
o We now have "Ppp..." and "PPp" prompts, reflecting authentication
  and network phase.  We don't print loads of spurious prompts as we
  change phases any more.
o Our phase is part of the bundle now.
o Fix a bug where the FSM wasn't calling LayerFinish.
o Close the FSM down correctly with a signal rather than slamming it
  down as if the line was dropped (the undocumented ``down'' command
  is still available though).
o Remove the forgotten `tunno' variable and fix references to it.
1998-02-07 20:50:08 +00:00
Brian Somers 83d1af558c Isolate fsm callback functions
Derive {lcp,ipcp,ccp}state structures from struct fsm
where convenient.
Create bundle_Down() and remove LcpDown()
1998-02-06 02:24:29 +00:00
Brian Somers 2289f24698 Move pppVars.physical into the bundle (for the moment). 1998-02-06 02:23:48 +00:00
Brian Somers 6f1bc4e5da Remove static phys_modem 1998-02-06 02:22:52 +00:00
Brian Somers ecd5172a68 Shuffle names and args in modem.h 1998-02-06 02:22:28 +00:00
Brian Somers 52f21f2683 Correct magic number format string
Spotted by: Bruce M. Walter <walter@fortean.com>
1998-02-04 01:03:51 +00:00
Brian Somers 1f64f3adab Parse configuration files a bit better.
Allow continuation lines ('\' as the last char on a line).
1998-02-04 01:03:36 +00:00
Brian Somers 26fe3a55f3 Comment bundle.h 1998-02-04 01:03:19 +00:00
Brian Somers 6140ba1177 Create `struct async' and make it part of `struct physical'.
This structure contains the asynchronous state of the physical
link.
Unfortunately, just about every .h file is included in every .c
file now.  Fixing this can be one of the last jobs.
1998-02-02 19:33:40 +00:00
Brian Somers 820de6eb8e Bring the routing seqno into struct bundle. 1998-02-02 19:33:02 +00:00
Brian Somers 42e91bc7b3 Cosmetic: Merge the `show vj' command into `show ipcp'
and make it prettier.
1998-02-02 19:32:31 +00:00
Brian Somers 7a6f872047 Create `struct bundle' - the top level control structure.
This structure will eventually contain a list of NCPs (currently
only IPCP is supported) and a list of physical `struct link's.
It will also derive from a struct link itself.
Make ModemTimeout() static - it's way to dangerous to be called
from outside !
Bump version to 1.9.  Our first MP release should be 2.0.
1998-02-02 19:32:16 +00:00
Brian Somers 7308ec6890 Move the global FSMs into their relevent structures.
IPCP, CCP and LCP are now just derived FSMs.
Comment each of the FSM implementations so that we can
tell what's going on.
Revise the state transitions so that CCP and IPCP actually
send terminate REQs when appropriate.

The OS & IPCP layers are still like spagetti (next job).
1998-01-31 02:48:30 +00:00
Brian Somers 8c07a7b2e0 Create `struct link' - the logical link from which
`struct physical' (and the future `struct logical')
are derived.
1998-01-30 19:46:07 +00:00
Brian Somers c8ee0d78b6 o Bring global/static data into LcpInfo.
o Parameterise LcpReportTime().
o Don't obscure the hard-coded use of LcpInfo.
o Comment on the data elements of LcpInfo.
1998-01-30 01:33:46 +00:00
Brian Somers e675fb2392 Null commit: I managed to ^c the last commit before the mail
message (with a garbage update message) and
              after the update :-(  DUH!
I meant:
Remove extraneous extern decls.
1998-01-30 01:32:55 +00:00
Brian Somers 5119c5a20c Index: ipcp.h
===================================================================
RCS file: /home/ncvs/src/usr.sbin/ppp/ipcp.h,v
retrieving revision 1.18.2.2
diff -c -r1.18.2.2 ipcp.h
*** ipcp.h	1998/01/29 23:11:37	1.18.2.2
--- ipcp.h	1998/01/30 01:24:37
***************
*** 71,81 ****
  };

  extern struct ipcpstate IpcpInfo;
- extern struct in_range DefMyAddress;
- extern struct in_range DefHisAddress;
- extern struct iplist DefHisChoice;
- extern struct in_addr TriggerAddress;
- extern int HaveTriggerAddress;
  extern struct fsm IpcpFsm;

  extern void IpcpInit(struct physical *physical);
--- 71,76 ----
1998-01-30 01:28:35 +00:00
Brian Somers 29e275cee4 o Move global/static IPCP data into IpcpInfo.
o Use INADDR_ANY and INADDR_BROADCAST instead of 0 and 0xffffffff
  for IP addresses & masks.
o Move struct compreq into ipcp.c (it's none of anyone elses
  business).
o Rename MAX_STATES to MAX_VJ_STATES.
1998-01-29 23:11:44 +00:00
Brian Somers 247ab36d28 o Move in_algorithm and out_algorithm into CcpInfo.
o Take note of the return value of the compression layers
  init routine, and if it fails, bring the whole layer
  cleanly back down again.
o Only use srandomdev() if ``__FreeBSD__ > 2'' - this makes
  these sources buildable on 2.2 (where I'm testing).
1998-01-29 20:45:16 +00:00
Brian Somers 63b7346316 Create a new MP branch for `multilink protocol'.
Do lots of initial shuffling and grouping.
Submitted by: Eivind Eklund <perhaps@yes.no>
1998-01-29 00:49:32 +00:00
cvs2svn 1ae349f52c This commit was manufactured by cvs2svn to create branch 'MP'. 1998-01-29 00:44:16 +00:00