Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 21 Nov 2002 20:52:39 +0300
From:      Roman Kurakin <rik@cronyx.ru>
To:        Joerg Wunsch <joerg_wunsch@uriah.heep.sax.de>, freebsd-net@FreeBSD.org
Subject:   sppp patch's
Message-ID:  <3DDD1D67.4050905@cronyx.ru>
References:  <000901c1134b$827a69a0$48b5ce90@crox> <3BDABF7B.4060808@cronyx.ru> <3BE24EE4.2020506@cronyx.ru> <20011102192916.A43204@uriah.heep.sax.de> <3BE3ED17.3060603@cronyx.ru> <20011231165245.B73897@uriah.heep.sax.de>

next in thread | previous in thread | raw e-mail | index | archive | help

[-- Attachment #1 --]
Hi,

    Sppp still have a quantity of bugs. Here is one of them:

--- if_spppsubr.c.orig    Wed Oct 16 18:41:16 2002
+++ if_spppsubr.c    Thu Nov 21 20:13:16 2002
@@ -1672,12 +1672,12 @@
         case STATE_ACK_SENT:
             break;
         case STATE_CLOSING:
-            sppp_cp_change_state(cp, sp, STATE_CLOSED);
             (cp->tlf)(sp);
+            sppp_cp_change_state(cp, sp, STATE_CLOSED);
             break;
         case STATE_STOPPING:
-            sppp_cp_change_state(cp, sp, STATE_STOPPED);
             (cp->tlf)(sp);
+            sppp_cp_change_state(cp, sp, STATE_STOPPED);
             break;
         case STATE_ACK_RCVD:
             sppp_cp_change_state(cp, sp, STATE_REQ_SENT);
@@ -1991,8 +1991,8 @@
     case STATE_CLOSING:
         break;
     case STATE_STARTING:
-        sppp_cp_change_state(cp, sp, STATE_INITIAL);
         (cp->tlf)(sp);
+        sppp_cp_change_state(cp, sp, STATE_INITIAL);
         break;
     case STATE_STOPPED:
         sppp_cp_change_state(cp, sp, STATE_CLOSED);
@@ -2031,18 +2031,18 @@
         /* TO- event */
         switch (sp->state[cp->protoidx]) {
         case STATE_CLOSING:
-            sppp_cp_change_state(cp, sp, STATE_CLOSED);
             (cp->tlf)(sp);
+            sppp_cp_change_state(cp, sp, STATE_CLOSED);
             break;
         case STATE_STOPPING:
-            sppp_cp_change_state(cp, sp, STATE_STOPPED);
             (cp->tlf)(sp);
+            sppp_cp_change_state(cp, sp, STATE_STOPPED);
             break;
         case STATE_REQ_SENT:
         case STATE_ACK_RCVD:
         case STATE_ACK_SENT:
-            sppp_cp_change_state(cp, sp, STATE_STOPPED);
             (cp->tlf)(sp);
+            sppp_cp_change_state(cp, sp, STATE_STOPPED);
             break;
         }
     else

In all cases we have the same problem: at first we should call tlf that 
will changes state
and then we should set proper state. If we set some state and then call 
tlf we will get wrong
final state.

Best regards,
                        Roman Kurakin


[-- Attachment #2 --]
--- if_spppsubr.c.orig	Wed Oct 16 18:41:16 2002
+++ if_spppsubr.c	Thu Nov 21 20:13:16 2002
@@ -1672,12 +1672,12 @@
 		case STATE_ACK_SENT:
 			break;
 		case STATE_CLOSING:
-			sppp_cp_change_state(cp, sp, STATE_CLOSED);
 			(cp->tlf)(sp);
+			sppp_cp_change_state(cp, sp, STATE_CLOSED);
 			break;
 		case STATE_STOPPING:
-			sppp_cp_change_state(cp, sp, STATE_STOPPED);
 			(cp->tlf)(sp);
+			sppp_cp_change_state(cp, sp, STATE_STOPPED);
 			break;
 		case STATE_ACK_RCVD:
 			sppp_cp_change_state(cp, sp, STATE_REQ_SENT);
@@ -1991,8 +1991,8 @@
 	case STATE_CLOSING:
 		break;
 	case STATE_STARTING:
-		sppp_cp_change_state(cp, sp, STATE_INITIAL);
 		(cp->tlf)(sp);
+		sppp_cp_change_state(cp, sp, STATE_INITIAL);
 		break;
 	case STATE_STOPPED:
 		sppp_cp_change_state(cp, sp, STATE_CLOSED);
@@ -2031,18 +2031,18 @@
 		/* TO- event */
 		switch (sp->state[cp->protoidx]) {
 		case STATE_CLOSING:
-			sppp_cp_change_state(cp, sp, STATE_CLOSED);
 			(cp->tlf)(sp);
+			sppp_cp_change_state(cp, sp, STATE_CLOSED);
 			break;
 		case STATE_STOPPING:
-			sppp_cp_change_state(cp, sp, STATE_STOPPED);
 			(cp->tlf)(sp);
+			sppp_cp_change_state(cp, sp, STATE_STOPPED);
 			break;
 		case STATE_REQ_SENT:
 		case STATE_ACK_RCVD:
 		case STATE_ACK_SENT:
-			sppp_cp_change_state(cp, sp, STATE_STOPPED);
 			(cp->tlf)(sp);
+			sppp_cp_change_state(cp, sp, STATE_STOPPED);
 			break;
 		}
 	else

Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?3DDD1D67.4050905>