Module Name: src Committed By: plunky Date: Sun Feb 23 20:16:10 UTC 2020
Modified Files: src/sys/netbt: rfcomm_session.c Log Message: fix reversed logic for Remote Port Negotiation, pointed out by maxv@ To generate a diff of this commit: cvs rdiff -u -r1.25 -r1.26 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/rfcomm_session.c diff -u src/sys/netbt/rfcomm_session.c:1.25 src/sys/netbt/rfcomm_session.c:1.26 --- src/sys/netbt/rfcomm_session.c:1.25 Sat Dec 22 14:28:57 2018 +++ src/sys/netbt/rfcomm_session.c Sun Feb 23 20:16:10 2020 @@ -1,4 +1,4 @@ -/* $NetBSD: rfcomm_session.c,v 1.25 2018/12/22 14:28:57 maxv Exp $ */ +/* $NetBSD: rfcomm_session.c,v 1.26 2020/02/23 20:16:10 plunky Exp $ */ /*- * Copyright (c) 2006 Itronix Inc. @@ -32,7 +32,7 @@ */ #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: rfcomm_session.c,v 1.25 2018/12/22 14:28:57 maxv Exp $"); +__KERNEL_RCSID(0, "$NetBSD: rfcomm_session.c,v 1.26 2020/02/23 20:16:10 plunky Exp $"); #include <sys/param.h> #include <sys/kernel.h> @@ -1232,11 +1232,13 @@ rfcomm_session_recv_mcc_rpn(struct rfcom rpn.xoff_char = RFCOMM_RPN_XOFF_CHAR; if (m->m_pkthdr.len == sizeof(rpn)) { + /* negotiation request */ m_copydata(m, 0, sizeof(rpn), &rpn); - rpn.param_mask = RFCOMM_RPN_PM_ALL; + rpn.param_mask = le16toh(rpn.param_mask); } else if (m->m_pkthdr.len == 1) { + /* current settings request */ m_copydata(m, 0, 1, &rpn); - rpn.param_mask = le16toh(rpn.param_mask); + rpn.param_mask = RFCOMM_RPN_PM_ALL; } else { DPRINTF("Bad RPN length (%d)\n", m->m_pkthdr.len); return;