Hi Marcel On Tue, Jan 20, 2009 at 12:02 PM, Marcel Holtmann <marcel@xxxxxxxxxxxx> wrote: > Hi, > >>>>> why do you wanna set AUTH_PENDING again. That is not needed we only >>>>> wanna know once encryption comes back on. If no in time, then we just >>>>> disconnect the link. That simple. >>>>> >>>>>> b) I also see that we are not clearing the timer and hence after >>>>>> RFCOMM_AUTH_TIMEOUT period expires we bring down the RFCOMM connection >>>>>> even though the encryption has been established. >>>>> >>>>> Good catch. Fixed it. >>>> >>>> Cool. Can you upload it to bluetooth-testing git ? I saw a related >>>> problem while looking at the timer issue and wanted to see if the fix >>>> takes care of it. >>> >>> I am in the process in doing so, but there are other important things >>> that need to be done first. >> >> Sorry to push you on this, is this patch been uploaded ? > > since a few days now. Check the bluetooth-testing.git and it is even rebased > against 2.6.29-rc2. > > Regards > > Marcel > > I applied the patches and I see that we actually don't pause the RFCOMM tx traffic because we don't check on the RFCOMM_SEC_PENDING flag when sending the tx packets in rfcomm_process_dlcs. I verified this using the "attest" command - we keep sending RFCOMM traffic even though encryption is off. Please look at the patch attached. Also should we drop the "rx" packets too when the encryption is dropped ? Thanks Jaikumar
From 574f3943808b249fdb89ac47e18ae9bed0d09330 Mon Sep 17 00:00:00 2001 From: Jaikumar Ganesh <jaikumar@xxxxxxxxxx> Date: Tue, 20 Jan 2009 16:26:31 -0800 Subject: [PATCH] Bluetooth: When encryption is off, do not send RFCOMM tx packets. Signed-off-by: Jaikumar Ganesh <jaikumar@xxxxxxxxxx> --- net/bluetooth/rfcomm/core.c | 3 +++ 1 files changed, 3 insertions(+), 0 deletions(-) diff --git a/net/bluetooth/rfcomm/core.c b/net/bluetooth/rfcomm/core.c index ae2ecaa..e8aaf78 100644 --- a/net/bluetooth/rfcomm/core.c +++ b/net/bluetooth/rfcomm/core.c @@ -1754,6 +1754,9 @@ static inline void rfcomm_process_dlcs(struct rfcomm_session *s) continue; } + if (test_bit(RFCOMM_SEC_PENDING, &d->flags)) + continue; + if (test_bit(RFCOMM_TX_THROTTLED, &s->flags)) continue; -- 1.5.4.5