cvs commit: src/sys/netgraph/bluetooth/socket ng_btsocket_rfcomm.c
Maksim Yevmenkin
emax at FreeBSD.org
Fri Apr 23 13:21:18 PDT 2004
emax 2004/04/23 13:21:17 PDT
FreeBSD src repository
Modified files:
sys/netgraph/bluetooth/socket ng_btsocket_rfcomm.c
Log:
Make sure RFCOMM multiplexor channel does not hang in DISCONNECTING
state. Apparently it happens when both devices try to disconnect RFCOMM
multiplexor channel at the same time.
The scenario is as follows:
- local device initiates RFCOMM connection to the remote device. This
creates both RFCOMM multiplexor channel and data channel;
- remote device terminates RFCOMM data channel (inactivity timeout);
- local device acknowledges RFCOMM data channel termination. Because
there is no more active data channels and local device has initiated
connection it terminates RFCOMM multiplexor channel;
- remote device does not acknowledges RFCOMM multiplexor channel
termination. Instead it sends its own request to terminate RFCOMM
multiplexor channel. Even though local device acknowledges RFCOMM
multiplexor channel termination the remote device still keeps
L2CAP connection open.
Because of hanging RFCOMM multiplexor channel subsequent RFCOMM
connections between local and remote devices will fail.
Reported by: Johann Hugo <jhugo at icomtek.csir.co.za>
Revision Changes Path
1.5 +6 -3 src/sys/netgraph/bluetooth/socket/ng_btsocket_rfcomm.c
More information about the cvs-src
mailing list