From owner-cvs-src@FreeBSD.ORG Fri Apr 23 13:21:17 2004 Return-Path: Delivered-To: cvs-src@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id CCC6516A4CE; Fri, 23 Apr 2004 13:21:17 -0700 (PDT) Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115]) by mx1.FreeBSD.org (Postfix) with ESMTP id C779043D45; Fri, 23 Apr 2004 13:21:17 -0700 (PDT) (envelope-from emax@FreeBSD.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.12.10/8.12.10) with ESMTP id i3NKLHGe053508; Fri, 23 Apr 2004 13:21:17 -0700 (PDT) (envelope-from emax@repoman.freebsd.org) Received: (from emax@localhost) by repoman.freebsd.org (8.12.10/8.12.10/Submit) id i3NKLHPJ053507; Fri, 23 Apr 2004 13:21:17 -0700 (PDT) (envelope-from emax) Message-Id: <200404232021.i3NKLHPJ053507@repoman.freebsd.org> From: Maksim Yevmenkin Date: Fri, 23 Apr 2004 13:21:17 -0700 (PDT) To: src-committers@FreeBSD.org, cvs-src@FreeBSD.org, cvs-all@FreeBSD.org X-FreeBSD-CVS-Branch: HEAD Subject: cvs commit: src/sys/netgraph/bluetooth/socket ng_btsocket_rfcomm.c X-BeenThere: cvs-src@freebsd.org X-Mailman-Version: 2.1.1 Precedence: list List-Id: CVS commit messages for the src tree List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 23 Apr 2004 20:21:18 -0000 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 Revision Changes Path 1.5 +6 -3 src/sys/netgraph/bluetooth/socket/ng_btsocket_rfcomm.c