beepd sent ECHO responses in wrong order

"Kalle Olavi Niemitalo" <[email protected]> Tue, 10 Aug 2004 17:02:22 +0300
Newsgroups gmane.network.beep.beepcore.c.general
Organization Procomp Solutions Oy
Message-ID <!~!UENERkVCMDkAAQACAAAAAAAAAAAAAAAAABgAAAAAAAAAOF1TeyqcQkSnO6bQed8gj8KAAAAQAAAA9p66hy7h1UKrXyYcXdTLNQEAAAAA@procomp.fi>
 
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

I compiled openssl 0.9.7d and beepcore-c 0.2.00 with Microsoft
Visual Studio 6 SP5 on Windows XP.  I then tried the beepd and
beepng examples on localhost.  They negotiate the ECHO profile
just fine, but when they actually transfer data, beepng detects
a "data mismatch" every now and then.

Here are the beepd.log entries relating to one of the mismatched
messages, with [...] marking omissions:

08/06 18:58:43 beepd    0.wrap <<< MSG 1 105 * 30873 1997\r
08/06 18:58:43 beepd    0.wrap <<< Content-Type: application/beep+xml\r
08/06 18:58:43 beepd    1.wrap read 1966 octets
08/06 18:58:43 beepd    0.wrap <<< \r
08/06 18:58:43 beepd    0.wrap <<< <data>aVNalVRIqqik[...]
08/06 18:58:43 beepd    0.wrap <<< 60n1diFlfbs9t29ttx[...]
08/06 18:58:43 beepd    0.wrap <<< uvJKgiQ8tq0l5NYPVx[...]
08/06 18:58:43 beepd    0.wrap <<< 1rvhro7ycaPCbBUogP[...]END\r
08/06 18:58:43 beepd    1.wrap read 24 octets
08/06 18:58:43 beepd    0.wrap <<< MSG 1 105 * 32870 2099\r
08/06 18:58:43 beepd    1.wrap read 2104 octets
08/06 18:58:43 beepd    0.wrap <<< saAA8pVcF410f2pqzL[...]
08/06 18:58:43 beepd    0.wrap <<< 4S3Hv8ebCSUavvjod0[...]
08/06 18:58:43 beepd    0.wrap <<< kEQHqezX4L7NJl8jCW[...]
08/06 18:58:43 beepd    0.wrap <<< jvXqQXJbTcq1evOfXa[...]
08/06 18:58:43 beepd    0.wrap <<< Qe70X4v nf5fVszAF5[...]END\r
08/06 18:58:43 beepd    1.wrap wrote 2128 octets
08/06 18:58:43 beepd    0.wrap >>> RPY 1 105 * 30873 2099\r
08/06 18:58:43 beepd    0.wrap >>> saAA8pVcF410f2pqzL[...]
08/06 18:58:43 beepd    0.wrap >>> 4S3Hv8ebCSUavvjod0[...]
08/06 18:58:43 beepd    0.wrap >>> kEQHqezX4L7NJl8jCW[...]
08/06 18:58:43 beepd    0.wrap >>> jvXqQXJbTcq1evOfXa[...]
08/06 18:58:43 beepd    0.wrap >>> Qe70X4v nf5fVszAF5[...]END\r
08/06 18:58:43 beepd    1.wrap wrote 2044 octets
08/06 18:58:43 beepd    0.wrap >>> SEQ 1 34969 4096\r
08/06 18:58:43 beepd    0.wrap >>> RPY 1 105 * 32972 1997\r
08/06 18:58:43 beepd    0.wrap >>> Content-Type: application/beep+xml\r
08/06 18:58:43 beepd    0.wrap >>> \r
08/06 18:58:43 beepd    0.wrap >>> <data>aVNalVRIqqik[...]
08/06 18:58:43 beepd    0.wrap >>> 60n1diFlfbs9t29ttx[...]
08/06 18:58:43 beepd    0.wrap >>> uvJKgiQ8tq0l5NYPVx[...]
08/06 18:58:43 beepd    0.wrap >>> 1rvhro7ycaPCbBUogP[...]END\r
08/06 18:58:43 beepd    1.wrap read 42 octets
08/06 18:58:43 beepd    0.wrap <<< SEQ 1 34969 2099\r
08/06 18:58:43 beepd    0.wrap <<< MSG 1 105 * 34969 4096\r
08/06 18:58:43 beepd    1.wrap read 4101 octets
08/06 18:58:43 beepd    0.wrap <<< zMxS7doWRnt9oNRVto[...]
08/06 18:58:43 beepd    0.wrap <<< RbUtklig2Ojt3trQTv[...]
08/06 18:58:43 beepd    0.wrap <<< mEGbch j2LmISiKtO1[...]
08/06 18:58:43 beepd    0.wrap <<< C5mAADJKpk6OwA 4nq[...]
08/06 18:58:43 beepd    0.wrap <<< mEFupfTv Fw jnm7cu[...]
08/06 18:58:43 beepd    0.wrap <<< Gs9yYsCMg5rmraF G7[...]
08/06 18:58:43 beepd    0.wrap <<< nm DuitQ1WUOEs6mqg[...]
08/06 18:58:43 beepd    0.wrap <<< QRGLYhHsfs8iSW31Kj[...]
08/06 18:58:43 beepd    0.wrap <<< aDLrg8i1eoZO0zWTLv[...]END\r
08/06 18:58:43 beepd    1.wrap read 18 octets
08/06 18:58:43 beepd    0.wrap <<< SEQ 1 34969 4096\r
08/06 18:58:43 beepd    1.wrap wrote 2128 octets
08/06 18:58:43 beepd    0.wrap >>> RPY 1 105 * 34969 2099\r
08/06 18:58:43 beepd    0.wrap >>> zMxS7doWRnt9oNRVto[...]
08/06 18:58:43 beepd    0.wrap >>> RbUtklig2Ojt3trQTv[...]
08/06 18:58:43 beepd    0.wrap >>> mEGbch j2LmISiKtO1[...]
08/06 18:58:43 beepd    0.wrap >>> C5mAADJKpk6OwA 4nq[...]
08/06 18:58:43 beepd    0.wrap >>> mEFupfTv Fw jnm7cu[...]END\r
08/06 18:58:43 beepd    1.wrap wrote 2044 octets
08/06 18:58:43 beepd    0.wrap >>> SEQ 1 39065 4096\r
08/06 18:58:43 beepd    0.wrap >>> RPY 1 105 * 37068 1997\r
08/06 18:58:43 beepd    0.wrap >>> RXFmQOxpzyZq3APQPk[...]
08/06 18:58:43 beepd    0.wrap >>> Esxyi0E9tm7BcEeg0v[...]
08/06 18:58:43 beepd    0.wrap >>> 5kCK5dBuJ0C8E3Iar9[...]
08/06 18:58:43 beepd    0.wrap >>> zHCkXEOtG8ucCbo5l6[...]END\r
08/06 18:58:43 beepd    1.wrap read 42 octets
08/06 18:58:43 beepd    0.wrap <<< SEQ 1 39065 4096\r
08/06 18:58:43 beepd    0.wrap <<< MSG 1 105 . 39065 2099\r
08/06 18:58:43 beepd    1.wrap read 2104 octets
08/06 18:58:43 beepd    0.wrap <<< hZLWmXbBWg4uaaYNMs[...]
08/06 18:58:43 beepd    0.wrap <<< fIxJW8RelQdV3qkLgP[...]
08/06 18:58:43 beepd    0.wrap <<< hRYaqhc5Pb1rOOelHl[...]
08/06 18:58:43 beepd    0.wrap <<< dXxg8bbu4Rhog3dbGh[...] 
08/06 18:58:43 beepd    0.wrap <<< Mh nzMvALLFH2Z6Lwo[...]</data>END\r
08/06 18:58:43 beepd    1.wrap wrote 2128 octets
08/06 18:58:43 beepd    0.wrap >>> RPY 1 105 . 39065 2099\r
08/06 18:58:43 beepd    0.wrap >>> hZLWmXbBWg4uaaYNMs[...]
08/06 18:58:43 beepd    0.wrap >>> fIxJW8RelQdV3qkLgP[...]
08/06 18:58:43 beepd    0.wrap >>> hRYaqhc5Pb1rOOelHl[...]
08/06 18:58:43 beepd    0.wrap >>> dXxg8bbu4Rhog3dbGh[...] 
08/06 18:58:43 beepd    0.wrap >>> Mh nzMvALLFH2Z6Lwo[...]</data>END\r
08/06 18:58:43 beepd    1.wrap wrote 18 octets
08/06 18:58:43 beepd    0.wrap >>> SEQ 1 41164 4096\r

As you can see, beepd has exchanged the payloads of the first
two responses with each other.  The following table outlines
the differences.

indication        response
order (seq+size)  order (seq+size)  payload
================  ================  =================
1 (30873+1997)    2 (32972+1997)    Content-Type[...]
2 (32870+2099)    1 (30873+2099)    saAA8pVcF410[...]
3 (34969+4096)    3 (34969+2099)    zMxS7doWRnt9[...]
3 continued       4 (37068+1997)    RXFmQOxpzyZq[...]
4 (39065+2099)    5 (39065+2099)    hZLWmXbBWg4u[...]

My questions are:

* Does this indicate a bug that might also affect application-specific
profiles?

* If so, is there a fix?

* If bpc_send() puts the frame to the channel_inst->pending_send
queue, blw_start_indication() will apparently take it back out.
Will that happen in the same thread that called bpc_send()?

-----BEGIN PGP SIGNATURE-----
Version: PGP 8.1

iQA/AwUBQRjVbp/ohkKr1KoSEQKTAwCbBD4LVmjLcaXcgQfJmMzBuj6lraEAoMiK
O3iVLM90JLHH7o7DsWfbo71t
=1z/M
-----END PGP SIGNATURE-----



-------------------------------------------------------
SF.Net email is sponsored by Shop4tech.com-Lowest price on Blank Media
100pk Sonic DVD-R 4x for only $29 -100pk Sonic DVD+R for only $33
Save 50% off Retail on Ink & Toner - Free Shipping and Free Gift.
http://www.shop4tech.com/z/Inkjet_Cartridges/9_108_r285