Return-Path: Message-ID: <540718F0.3070506@tieto.com> Date: Wed, 03 Sep 2014 15:34:40 +0200 From: Tyszkowski Jakub MIME-Version: 1.0 To: linux-bluetooth@vger.kernel.org Subject: Re: [PATCH 5/8] emulator/btdev: Overwrite default feature mask when SPP is toggled References: <1409734969-10716-1-git-send-email-jakub.tyszkowski@tieto.com> <1409734969-10716-5-git-send-email-jakub.tyszkowski@tieto.com> <20140903093938.GA23986@t440s.lan> In-Reply-To: <20140903093938.GA23986@t440s.lan> Content-Type: text/plain; charset=windows-1252; format=flowed Sender: linux-bluetooth-owner@vger.kernel.org List-ID: Hi Johan, On 09/03/2014 11:39 AM, Johan Hedberg wrote: > Hi Jakub, > > On Wed, Sep 03, 2014, Jakub Tyszkowski wrote: >> Without this we cannot test the legacy HID Device reconnection, as L2Cap >> connection is refused when SSP is reported in remote device's features. >> --- >> emulator/btdev.c | 7 +++++++ >> 1 file changed, 7 insertions(+) >> >> diff --git a/emulator/btdev.c b/emulator/btdev.c >> index 86fd3d9..8aebb8f 100644 >> --- a/emulator/btdev.c >> +++ b/emulator/btdev.c >> @@ -2332,6 +2332,13 @@ static void default_cmd(struct btdev *btdev, uint16_t opcode, >> goto unsupported; >> wspm = data; >> btdev->simple_pairing_mode = wspm->mode; >> + >> + /* set SSP feature mask */ >> + if (wspm->mode) >> + btdev->features[6] |= 0x08; >> + else >> + btdev->features[6] &= ~0x08; >> + > > This looks suspicious to me. The only thing that should matter is > whether the host features bit is set on or not. That already looks > correct to me in the btdev_get_host_features() function. I.e. isn't your > problem with some piece of code higher up in the stack that's not > keeping SSP properly disabled? (since what you're now doing is not just > disabling SSP but making it look like SSP was never supported to begin > with as soon as you disable it). > > Johan > I'm trying to mimic reconnecting legacy HID device (which was previously paired with PIN) to check if security level will be raised when keyboard subclass is being found in remotes SDP records. To get the SDP records we need to trigger SDP search when remote connects the control channel. But we block such incoming connection with 'security block'. If I get the emulator code right, host and remote uses the same array of features which is reason for this patch. When emulated remote tries to connect l2cap on PSM other than the SDP one, it's being rejected if it reports SSP in features. Regards, Jakub