From owner-freebsd-hackers Wed Sep 29 8:10:34 1999 Delivered-To: freebsd-hackers@freebsd.org Received: from etinc.com (et-gw.etinc.com [207.252.1.2]) by hub.freebsd.org (Postfix) with ESMTP id AB46514D62; Wed, 29 Sep 1999 08:10:30 -0700 (PDT) (envelope-from dennis@etinc.com) Received: from dbsys (dbsys.etinc.com [207.252.1.18]) by etinc.com (8.9.3/8.9.3) with SMTP id LAA07913; Wed, 29 Sep 1999 11:07:09 -0400 (EDT) Message-Id: <199909291507.LAA07913@etinc.com> X-Sender: dennis@etinc.com X-Mailer: QUALCOMM Windows Eudora Pro Version 4.0 Date: Wed, 29 Sep 1999 10:05:16 -0400 To: "Daniel Hilevich" , , From: Dennis Subject: Re: A bug in the sppp driver? In-Reply-To: <033a01bf0a92$8fe1b4e0$2e00a8c0@nt46daniel> Mime-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Sender: owner-freebsd-hackers@FreeBSD.ORG Precedence: bulk X-Loop: FreeBSD.ORG At 04:51 PM 9/29/99 +0100, Daniel Hilevich wrote: >While trying to use the sppp, I came across this situation and I think it's >a bug: >When you trying to establish connection from one peer (local) to another >(remote), you sent a CONF_REQ message to the remote peer. The remote peer >should answer with a CONF_ACK message. In the code of the sppp driver >(net/if_spppsubr.c, lines 1321 - 1357) you can see that the remote peer >send's a CONF_ACK message to the local peer >(in the line: rv = (cp->RCR)(sp, h, len);) but doesn't change it state to >STATE_ACK_SENT (as I think it should do) . Further more, you can see that >after a few lines, there are these strange lines: > case STATE_ACK_SENT: > case STATE_REQ_SENT: > sppp_cp_change_state(cp, sp, rv? > STATE_ACK_SENT: STATE_REQ_SENT); > break; > >Question: if you are in the STATE_ACK_SENT why change the state to the same >one according to the value of rv? > >As I understand, the state should be changed according to the value of rv, >but it should be done right after the call to cp->RCR. The it is implemented >now, the state won't be changed. the state is dependent on what state you are in, given the event. Have you verified that you are in ack_sent? doing state machines with switch statements is a big mess. Dennis To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe freebsd-hackers" in the body of the message