#
5d9e6103 |
| 08-May-1999 |
Brian Somers <brian@FreeBSD.org> |
o Redesign the layering mechanism and make the aliasing code part of the layering.
We now ``stack'' layers as soon as we open the device (when we figure out what we're dealing with). A static
o Redesign the layering mechanism and make the aliasing code part of the layering.
We now ``stack'' layers as soon as we open the device (when we figure out what we're dealing with). A static set of `dispatch' routines are also declared for dealing with incoming packets after they've been `pulled' up through the stacked layers.
Physical devices are now assigned handlers based on the device type when they're opened. For the moment there are three device types; ttys, execs and tcps.
o Increment version number to 2.2 o Make an entry in [uw]tmp for non-tty -direct invocations (after pap/chap authentication). o Make throughput counters quad_t's o Account for the absolute number of mbuf malloc()s and free()s in ``show mem''. o ``show modem'' becomes ``show physical''.
show more ...
|
Revision tags: release/3.1.0 |
|
#
972a1bcf |
| 28-Jan-1999 |
Brian Somers <brian@FreeBSD.org> |
Initial RADIUS support (using libradius). See the man page for details. Compiling with -DNORADIUS (the default for `release') removes support.
TODO: The functionality in libradius::rad_send_reques
Initial RADIUS support (using libradius). See the man page for details. Compiling with -DNORADIUS (the default for `release') removes support.
TODO: The functionality in libradius::rad_send_request() needs to be supplied as a set of routines so that ppp doesn't have to wait indefinitely for the radius server(s). Instead, we need to get a descriptor back, select() on the descriptor, and ask libradius to service it when necessary. For now, ppp blocks SIGALRM while in rad_send_request(), so it misses PAP/CHAP retries & timeouts if they occur.
Only PAP is functional. When CHAP is attempted, libradius complains that no User-Password has been specified... rfc2138 says that it *mustn't* be used for CHAP :-(
Sponsored by: Internet Business Solutions Ltd., Switzerland
show more ...
|
Revision tags: release/3.0.0, release/2.2.8 |
|
#
9b5f8ffd |
| 24-Oct-1998 |
Brian Somers <brian@FreeBSD.org> |
Loosen our restrictions on setting enddisc, mrru, shortseq, authname and authkey.
o Auth{name,key} may additionally be set in PHASE_ESTABLISH. o The others may be set in PHASE_ESTABLISH as long as n
Loosen our restrictions on setting enddisc, mrru, shortseq, authname and authkey.
o Auth{name,key} may additionally be set in PHASE_ESTABLISH. o The others may be set in PHASE_ESTABLISH as long as no links have yet reached DATALINK_LCP.
show more ...
|
#
9e8ec64b |
| 04-Sep-1998 |
Brian Somers <brian@FreeBSD.org> |
Don't cast potentially unaligned addresses to pointers to non-char types on non-i386 architectures. On Alpha and Sparc we get a bus error if we do.
|
#
5a72b6ed |
| 26-Aug-1998 |
Brian Somers <brian@FreeBSD.org> |
Put the IP buffer queues into struct ipcp. Forgotten by: me
|
#
6f8e9f0a |
| 25-Aug-1998 |
Brian Somers <brian@FreeBSD.org> |
If we've got a full output buffer queue and cannot send anything for two mintues (see ``set choked'' and ``show bundle''), nuke the ip, mp and link level buffer queues.
This should fix problems wher
If we've got a full output buffer queue and cannot send anything for two mintues (see ``set choked'' and ``show bundle''), nuke the ip, mp and link level buffer queues.
This should fix problems where ``ppp -auto'' seems to stop responding after failing to connect to the peer a few times.
show more ...
|
#
92b09558 |
| 07-Aug-1998 |
Brian Somers <brian@FreeBSD.org> |
o Support callback types NONE, E.164, AUTH and CBCP. (see the new ``set callback'' and ``set cbcp'' commands) o Add a ``cbcp'' log level and mbuf type. o Don't dump core when \T is given in ``set l
o Support callback types NONE, E.164, AUTH and CBCP. (see the new ``set callback'' and ``set cbcp'' commands) o Add a ``cbcp'' log level and mbuf type. o Don't dump core when \T is given in ``set login'' or ``set hangup''. o Allow ``*'' and blanks as placeholders in ppp.secret and allow a fifth field for specifying auth/cbcp dialback parameters. o Remove a few extraneous #includes o Define the default number of REQs (restart counter) in defs.h rather than hardcoding ``5'' all over the place. o Fix a few man page inconsistencies.
show more ...
|
Revision tags: release/2.2.7 |
|
#
06337856 |
| 01-Jul-1998 |
Brian Somers <brian@FreeBSD.org> |
The CCP layer now behaves as follows: o If we've denied and disabled all compression protocols, stay in ST_INITIAL and do an LCP protocol reject if we receive any CCP packets. o If we've disabled
The CCP layer now behaves as follows: o If we've denied and disabled all compression protocols, stay in ST_INITIAL and do an LCP protocol reject if we receive any CCP packets. o If we've disabled all compression protocols, go to ST_STOPPED and wait for the other side to ask for something. o If we've got anything enabled, start REQing as soon as the auth layer is up. o If we're in multilink mode, than the link level CCP goes straight to ST_STOPPED irrespective of what's configured so that we never try to compress compressed stuff by default.
show more ...
|
#
1af29a6e |
| 24-Jun-1998 |
Brian Somers <brian@FreeBSD.org> |
o If we come out of select() with only write descriptors that end up writing zero bytes, sleep for 1/10 of a second so that we don't end up using up too much cpu. This should only ever happen o
o If we come out of select() with only write descriptors that end up writing zero bytes, sleep for 1/10 of a second so that we don't end up using up too much cpu. This should only ever happen on systems that wrongly report a descriptor as writable despite the tty buffer being full. Discussed with: Jeff Evarts
o Do an initial run-time check to see if select() alters the passed timeval. This knowledge isn't yet used, but will be soon.
show more ...
|
#
09206a6f |
| 20-Jun-1998 |
Brian Somers <brian@FreeBSD.org> |
Create & use fsm2initial(), a function to bring a state machine back to ST_INITIAL without going through any unnecessary TLS/TLF pairs.
|
#
a33b2ef7 |
| 16-Jun-1998 |
Brian Somers <brian@FreeBSD.org> |
Change some log levels. ALERTs are only logged when something that can't happen happens or when everyone needs to know. ERRORs are only logged when something unexpected happens.
|
#
d93d3a9c |
| 15-Jun-1998 |
Brian Somers <brian@FreeBSD.org> |
o De-staticise things that don't need to be static. o Bring the static ``ttystate'' into struct prompt so that the tilde context is per prompt and not global. o Comment the remaining static variabl
o De-staticise things that don't need to be static. o Bring the static ``ttystate'' into struct prompt so that the tilde context is per prompt and not global. o Comment the remaining static variables so that it's clear why they're static. o Add some XXX comments suggesting that our interface list and our hostname should be re-generated after a signal (say SIGUSR1) so that a machine with PCCARDs has a chance.
show more ...
|
#
c9e11a11 |
| 15-Jun-1998 |
Brian Somers <brian@FreeBSD.org> |
Fix a rather nasty use of `static'. This caused a SEGV when running ``link * load label'' as we ended up recursing back into command_Interpret after nuking our command arg list.
|
#
54cd8e13 |
| 25-May-1998 |
Brian Somers <brian@FreeBSD.org> |
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 fro
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).
show more ...
|
#
0f2f3eb3 |
| 24-May-1998 |
Brian Somers <brian@FreeBSD.org> |
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
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.
show more ...
|
#
86b1f0d7 |
| 23-May-1998 |
Brian Somers <brian@FreeBSD.org> |
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 seque
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.
show more ...
|
#
1df0a3b9 |
| 23-May-1998 |
Brian Somers <brian@FreeBSD.org> |
o If all CCPs are disabled & denied, don't send a REQ - just enter STOPPED state waiting for the peer to say something.
|
#
d91d2861 |
| 21-May-1998 |
Brian Somers <brian@FreeBSD.org> |
MFMP: Make ppp multilink capable. See the file README.changes, and re-read the man page.
|
#
ea722969 |
| 15-May-1998 |
Brian Somers <brian@FreeBSD.org> |
o Call bundle_LinkClosed() when transferring a datalink so that the bundle has the opportunity to go PHASE_DEAD and cleanup the interface (if it's the last link). o Regnerate our phys_type value
o Call bundle_LinkClosed() when transferring a datalink so that the bundle has the opportunity to go PHASE_DEAD and cleanup the interface (if it's the last link). o Regnerate our phys_type value when we transfer the link. o Always clean up the interface when destroying our bundle in case we're abending. o Always clean up our interface when the last link is gone rather than delaying things 'till exit time in the -direct case (the interface is useless anyway). Do this *after* slamming down our NCPs (if they're still around). o Our MP server descriptor now clears the relevent device descriptor from our descriptor [fd]sets when a datalink is on death-row (to be transferred to another running ppp), thus avoiding the possibility of passing a bum descriptor to select() and having ppp abend. o Handle the MP socket descriptor functions from within the bundle descriptor functions. Now we ensure that the MP socket descriptor functions see the descriptor sets *after* they've been seen by our datalinks. o Add/fix a few more comments.
show more ...
|
#
0a1b5c9d |
| 15-May-1998 |
Brian Somers <brian@FreeBSD.org> |
o Activate link-level CCPs in multilink mode, by bringing them into the ST_STOPPED state. o Allow an optional ccp|lcp argument to `down'. The default is still lcp (as before). You can now call
o Activate link-level CCPs in multilink mode, by bringing them into the ST_STOPPED state. o Allow an optional ccp|lcp argument to `down'. The default is still lcp (as before). You can now call down with no context in multilink mode, in which case it'll down the multilink ccp or the entire bundle (*very* rude). o Allow an optional `!' after `close ccp' (close ccp!) to tell ccp to stay in the CLOSED state after the terminate ACK. The default is now to re-enter STOPPED so that the peer can bring the layer back up if desired. o Always handle proto-compressed packets, even if we've agreed (in LCP) that the peer will not send us 1 byte protocols. If the peer violates the LCP agreement, log it to the HDLC log. o Fix some comments.
show more ...
|
#
24989c68 |
| 11-May-1998 |
Brian Somers <brian@FreeBSD.org> |
o Protect against expected NULL fdset pointers. o Log FD_SET()s in LogTIMER. o Identify the descriptor that causes an EBADF from select() if LogTIMER is enabled (then exit). o Call the MP server Up
o Protect against expected NULL fdset pointers. o Log FD_SET()s in LogTIMER. o Identify the descriptor that causes an EBADF from select() if LogTIMER is enabled (then exit). o Call the MP server UpdateSet() function after calling the UpdateSet() for all links - the link may enter PHASE_TERMINATE and bring down the MP server - breaking the imminent select().
show more ...
|
#
b7c5748e |
| 08-May-1998 |
Brian Somers <brian@FreeBSD.org> |
o Rename datalinks as soon as the name has been received so that LQM and HDLC timer diagnostics come out with the correct name. o Don't send an LQR immediately upon reviving a datalink. Leave it
o Rename datalinks as soon as the name has been received so that LQM and HDLC timer diagnostics come out with the correct name. o Don't send an LQR immediately upon reviving a datalink. Leave it 'till the next timeout. o Add the link name to some more LQR diagnostics. o Break out of the main loop when a descriptor exception is seen in select(). o Remove the evil nointr_[u]sleep() functions. Timers should be (and are) used instead. o Treat a read() of 0 bytes as an error that's fatal to the link on which the read() is done. We should never read() 0 after select() says there's something there - not unless the link has been closed by the other side. o Write the data seen before a HDLC header to the terminal in `term' mode, *not* back to the modem :-/ o Initialise our transmitted file descriptor before starting any timers. o Only send data links that have *no* pending output data. This means that our final ACK will be written rather than being nuked with the datalink transmission.
show more ...
|
#
b4b280ab |
| 07-May-1998 |
Brian Somers <brian@FreeBSD.org> |
o Behave correctly when short sequence numbers are denied. o Determine if one seq is less than the other correctly, given the point at which they wrap (again).
|
#
1bc9b5ba |
| 06-May-1998 |
Brian Somers <brian@FreeBSD.org> |
o Make sure we don't dereference NULL when we've lost all our links. o Use srandomdev() for __FreeBSD__ >= 2, not just >2. o Use srandom((time(NULL)^getpid())+random()), random() when we haven't go
o Make sure we don't dereference NULL when we've lost all our links. o Use srandomdev() for __FreeBSD__ >= 2, not just >2. o Use srandom((time(NULL)^getpid())+random()), random() when we haven't got srandomdev().
show more ...
|
#
1bcced10 |
| 04-May-1998 |
Brian Somers <brian@FreeBSD.org> |
Allow a 1000 fragment sliding window when placing a new fragment in our inbound multilnk queue. This fixes wrapping problems when something arrives out-of-sequence.
|