Module Name:    src
Committed By:   plunky
Date:           Wed Nov 17 20:19:25 UTC 2010

Modified Files:
        src/sys/netbt: l2cap_signal.c rfcomm_session.c

Log Message:
do not produce an error when connections are closed normally

for L2CAP sockets, this solves an irritating error message from sdpd(8),
which can now differentiate between normal closure and error.


To generate a diff of this commit:
cvs rdiff -u -r1.10 -r1.11 src/sys/netbt/l2cap_signal.c
cvs rdiff -u -r1.16 -r1.17 src/sys/netbt/rfcomm_session.c

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.

Modified files:

Index: src/sys/netbt/l2cap_signal.c
diff -u src/sys/netbt/l2cap_signal.c:1.10 src/sys/netbt/l2cap_signal.c:1.11
--- src/sys/netbt/l2cap_signal.c:1.10	Fri Sep 25 19:44:57 2009
+++ src/sys/netbt/l2cap_signal.c	Wed Nov 17 20:19:25 2010
@@ -1,4 +1,4 @@
-/*	$NetBSD: l2cap_signal.c,v 1.10 2009/09/25 19:44:57 plunky Exp $	*/
+/*	$NetBSD: l2cap_signal.c,v 1.11 2010/11/17 20:19:25 plunky Exp $	*/
 
 /*-
  * Copyright (c) 2005 Iain Hibbert.
@@ -31,7 +31,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: l2cap_signal.c,v 1.10 2009/09/25 19:44:57 plunky Exp $");
+__KERNEL_RCSID(0, "$NetBSD: l2cap_signal.c,v 1.11 2010/11/17 20:19:25 plunky Exp $");
 
 #include <sys/param.h>
 #include <sys/kernel.h>
@@ -814,7 +814,7 @@
 				sizeof(rp), &rp);
 
 	if (chan->lc_state != L2CAP_CLOSED)
-		l2cap_close(chan, ECONNRESET);
+		l2cap_close(chan, 0);
 }
 
 /*

Index: src/sys/netbt/rfcomm_session.c
diff -u src/sys/netbt/rfcomm_session.c:1.16 src/sys/netbt/rfcomm_session.c:1.17
--- src/sys/netbt/rfcomm_session.c:1.16	Sun Jan  3 16:38:15 2010
+++ src/sys/netbt/rfcomm_session.c	Wed Nov 17 20:19:25 2010
@@ -1,4 +1,4 @@
-/*	$NetBSD: rfcomm_session.c,v 1.16 2010/01/03 16:38:15 plunky Exp $	*/
+/*	$NetBSD: rfcomm_session.c,v 1.17 2010/11/17 20:19:25 plunky Exp $	*/
 
 /*-
  * Copyright (c) 2006 Itronix Inc.
@@ -32,7 +32,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: rfcomm_session.c,v 1.16 2010/01/03 16:38:15 plunky Exp $");
+__KERNEL_RCSID(0, "$NetBSD: rfcomm_session.c,v 1.17 2010/11/17 20:19:25 plunky Exp $");
 
 #include <sys/param.h>
 #include <sys/kernel.h>
@@ -389,6 +389,13 @@
 
 	DPRINTF("Disconnected\n");
 
+	/*
+	 * If we have any DLCs outstanding in the unlikely case that the
+	 * L2CAP channel disconnected normally, close them with an error
+	 */
+	if (err == 0)
+		err = ECONNRESET;
+
 	rs->rs_state = RFCOMM_SESSION_CLOSED;
 
 	while (!LIST_EMPTY(&rs->rs_dlcs)) {
@@ -816,7 +823,7 @@
 		return;
 	}
 
-	rfcomm_dlc_close(dlc, ECONNRESET);
+	rfcomm_dlc_close(dlc, 0);
 	rfcomm_session_send_frame(rs, RFCOMM_FRAME_UA, dlci);
 }
 

Reply via email to