Justin Huff wrote :
> I have a program that wait for an OBEX put from a palm, does some quick
> processing and then OBEX puts another file back to the palm.  Most of the
> time this second put fails.  If I wait 12seconds before it tries it again
> it works.  12seconds happens to be the default link timeout, right?  During
> this time Linux is sending RR_CMD frames but the Palm never responds.
> 
> What *seems* to be happening is that Palm sends a RR_RSP that was never
> asked for with a RR_CMD.   RR frames also don't seem to fly between I_CMDs
> and I_RSP, but that seems to be OK.
> 
> Here is the interesting part of the irdadump log:
[...]
> 02:43:25.380193 i:cmd  > ca=a6 pf=1 nr=2 ns=2 LM slsap=1b dlsap=00 DISC (6)
> 
> 02:43:25.389727 rr:rsp < ca=a6 pf=1 nr=3 (2)
>                 <=========??????
> 02:43:25.389842 i:cmd  > ca=a6 pf=1 nr=2 ns=3 LM slsap=1c dlsap=02 CONN_CMD
> TTP credits=0(7) 

        That's perfectly normal. After disconnecting the IAP socket,
Linux give control of the channel to the Palm. The Palm has nothing to
say, so give back the channel to Linux (through the RR). As the Palm
is secondary, it can only send RSP messages. Then, Linux open the Obex
socket.
        Nothing wrong. Happens all the time.

> 02:43:25.579431 i:rsp  < ca=a6 pf=1 nr=7 ns=5 LM slsap=02 dlsap=1c TTP
> credits=1 
>         OBEX SUCCESS len=3 (8) 
> 02:43:25.580524 i:cmd  > ca=a6 pf=1 nr=6 ns=7 LM slsap=1c dlsap=02 DISC (6)
> 
> 02:43:26.079471 rr:cmd > ca=a6 pf=1 nr=6 (2) 
> 02:43:26.579462 rr:cmd > ca=a6 pf=1 nr=6 (2) 
> 02:43:27.079460 rr:cmd > ca=a6 pf=1 nr=6 (2) 
> 02:43:27.579520 rr:cmd > ca=a6 pf=1 nr=6 (2) 

        This is here that things go wrong. Linux, as the primary, try
to poll the Palm for more data. For some reason, the Palm never answer
back. If you try between two Linux, you would see that the second box
reply to the rr:cmd (with some rr:rsp).
        I suspect a bug in the Palm stack. It handle only a single
Obex session and shut down the IrDA port after that without
warning. Either the Palm should keep its port open, or it should send
a DISC (disc:rsp).

        Jean
_______________________________________________
Linux-IrDA mailing list  -  [EMAIL PROTECTED]
http://www.pasta.cs.UiT.No/mailman/listinfo/linux-irda

Reply via email to