aboutsummaryrefslogtreecommitdiff
path: root/usr.sbin/ppp/datalink.c
diff options
context:
space:
mode:
authorBrian Somers <brian@FreeBSD.org>1998-06-30 23:04:17 +0000
committerBrian Somers <brian@FreeBSD.org>1998-06-30 23:04:17 +0000
commit06337856e1be7d3d39edde48b17464558f185976 (patch)
tree6d6c787fe7c2122eb82b48768a9eb4882b62d9f9 /usr.sbin/ppp/datalink.c
parent38cf631922ce0cf126592748400f670a5760133e (diff)
downloadsrc-06337856e1be7d3d39edde48b17464558f185976.tar.gz
src-06337856e1be7d3d39edde48b17464558f185976.zip
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.
Notes
Notes: svn path=/head/; revision=37320
Diffstat (limited to 'usr.sbin/ppp/datalink.c')
-rw-r--r--usr.sbin/ppp/datalink.c10
1 files changed, 6 insertions, 4 deletions
diff --git a/usr.sbin/ppp/datalink.c b/usr.sbin/ppp/datalink.c
index d3d6a34e0a9b..fc2a84140fee 100644
--- a/usr.sbin/ppp/datalink.c
+++ b/usr.sbin/ppp/datalink.c
@@ -23,7 +23,7 @@
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
* SUCH DAMAGE.
*
- * $Id: datalink.c,v 1.13 1998/06/25 22:33:17 brian Exp $
+ * $Id: datalink.c,v 1.14 1998/06/27 14:18:04 brian Exp $
*/
#include <sys/types.h>
@@ -460,7 +460,7 @@ datalink_GotAuthname(struct datalink *dl, const char *name, int len)
void
datalink_AuthOk(struct datalink *dl)
{
- ccp_SetOpenMode(&dl->physical->link.ccp);
+ int ccpok = ccp_SetOpenMode(&dl->physical->link.ccp);
if (dl->physical->link.lcp.want_mrru && dl->physical->link.lcp.his_mrru) {
/* we've authenticated in multilink mode ! */
@@ -491,8 +491,10 @@ datalink_AuthOk(struct datalink *dl)
auth_Select(dl->bundle, dl->peer.authname, dl->physical);
}
- fsm_Up(&dl->physical->link.ccp.fsm);
- fsm_Open(&dl->physical->link.ccp.fsm);
+ if (ccpok) {
+ fsm_Up(&dl->physical->link.ccp.fsm);
+ fsm_Open(&dl->physical->link.ccp.fsm);
+ }
datalink_NewState(dl, DATALINK_OPEN);
bundle_NewPhase(dl->bundle, PHASE_NETWORK);
(*dl->parent->LayerUp)(dl->parent->object, &dl->physical->link.lcp.fsm);