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
This is a multi-part message in MIME format.
--------------080103090805090608070207
Content-Type: text/plain; charset=us-ascii; format=flowed
Content-Transfer-Encoding: 7bit

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


--------------080103090805090608070207
Content-Type: application/x-java-applet;version=1.1.1;
 name="pch"
Content-Transfer-Encoding: base64
Content-Disposition: inline;
 filename="pch"

LS0tIGlmX3NwcHBzdWJyLmMub3JpZwlXZWQgT2N0IDE2IDE4OjQxOjE2IDIwMDIKKysrIGlm
X3NwcHBzdWJyLmMJVGh1IE5vdiAyMSAyMDoxMzoxNiAyMDAyCkBAIC0xNjcyLDEyICsxNjcy
LDEyIEBACiAJCWNhc2UgU1RBVEVfQUNLX1NFTlQ6CiAJCQlicmVhazsKIAkJY2FzZSBTVEFU
RV9DTE9TSU5HOgotCQkJc3BwcF9jcF9jaGFuZ2Vfc3RhdGUoY3AsIHNwLCBTVEFURV9DTE9T
RUQpOwogCQkJKGNwLT50bGYpKHNwKTsKKwkJCXNwcHBfY3BfY2hhbmdlX3N0YXRlKGNwLCBz
cCwgU1RBVEVfQ0xPU0VEKTsKIAkJCWJyZWFrOwogCQljYXNlIFNUQVRFX1NUT1BQSU5HOgot
CQkJc3BwcF9jcF9jaGFuZ2Vfc3RhdGUoY3AsIHNwLCBTVEFURV9TVE9QUEVEKTsKIAkJCShj
cC0+dGxmKShzcCk7CisJCQlzcHBwX2NwX2NoYW5nZV9zdGF0ZShjcCwgc3AsIFNUQVRFX1NU
T1BQRUQpOwogCQkJYnJlYWs7CiAJCWNhc2UgU1RBVEVfQUNLX1JDVkQ6CiAJCQlzcHBwX2Nw
X2NoYW5nZV9zdGF0ZShjcCwgc3AsIFNUQVRFX1JFUV9TRU5UKTsKQEAgLTE5OTEsOCArMTk5
MSw4IEBACiAJY2FzZSBTVEFURV9DTE9TSU5HOgogCQlicmVhazsKIAljYXNlIFNUQVRFX1NU
QVJUSU5HOgotCQlzcHBwX2NwX2NoYW5nZV9zdGF0ZShjcCwgc3AsIFNUQVRFX0lOSVRJQUwp
OwogCQkoY3AtPnRsZikoc3ApOworCQlzcHBwX2NwX2NoYW5nZV9zdGF0ZShjcCwgc3AsIFNU
QVRFX0lOSVRJQUwpOwogCQlicmVhazsKIAljYXNlIFNUQVRFX1NUT1BQRUQ6CiAJCXNwcHBf
Y3BfY2hhbmdlX3N0YXRlKGNwLCBzcCwgU1RBVEVfQ0xPU0VEKTsKQEAgLTIwMzEsMTggKzIw
MzEsMTggQEAKIAkJLyogVE8tIGV2ZW50ICovCiAJCXN3aXRjaCAoc3AtPnN0YXRlW2NwLT5w
cm90b2lkeF0pIHsKIAkJY2FzZSBTVEFURV9DTE9TSU5HOgotCQkJc3BwcF9jcF9jaGFuZ2Vf
c3RhdGUoY3AsIHNwLCBTVEFURV9DTE9TRUQpOwogCQkJKGNwLT50bGYpKHNwKTsKKwkJCXNw
cHBfY3BfY2hhbmdlX3N0YXRlKGNwLCBzcCwgU1RBVEVfQ0xPU0VEKTsKIAkJCWJyZWFrOwog
CQljYXNlIFNUQVRFX1NUT1BQSU5HOgotCQkJc3BwcF9jcF9jaGFuZ2Vfc3RhdGUoY3AsIHNw
LCBTVEFURV9TVE9QUEVEKTsKIAkJCShjcC0+dGxmKShzcCk7CisJCQlzcHBwX2NwX2NoYW5n
ZV9zdGF0ZShjcCwgc3AsIFNUQVRFX1NUT1BQRUQpOwogCQkJYnJlYWs7CiAJCWNhc2UgU1RB
VEVfUkVRX1NFTlQ6CiAJCWNhc2UgU1RBVEVfQUNLX1JDVkQ6CiAJCWNhc2UgU1RBVEVfQUNL
X1NFTlQ6Ci0JCQlzcHBwX2NwX2NoYW5nZV9zdGF0ZShjcCwgc3AsIFNUQVRFX1NUT1BQRUQp
OwogCQkJKGNwLT50bGYpKHNwKTsKKwkJCXNwcHBfY3BfY2hhbmdlX3N0YXRlKGNwLCBzcCwg
U1RBVEVfU1RPUFBFRCk7CiAJCQlicmVhazsKIAkJfQogCWVsc2UK
--------------080103090805090608070207--


To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-net" in the body of the message




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