Re: Where in the code is a BLE connection accepted?

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Arman,

2014-11-21 20:12 GMT+01:00 Arman Uguray <armansito@xxxxxxxxxxxx>:
> Hi Gilles,
>
>> On Fri, Nov 21, 2014 at 12:03 AM, Gilles Grégoire <gilles.gregoire@xxxxxxxxx> wrote:
>> Hi,
>>
>> I am trying to understand how a BLE connection is established between
>> my embedded system and an Android phone. I am using bluez 5.9 on a
>> 3.12 kernel on this embedded system; with a CSR chipset.
>>
>> I set up bluetooth using:
>> hciconfig hci0 reset
>> hciconfig hci0 noscan
>>
>> Then, I use hcitool to set the advertisement and scan data, and I
>> enable a connectable advertisement with
>> hcitool -i hci0 cmd 0x08 0x000a 01
>>
>> I am _not_ using bluetoothd.
>>
>> With this simple setup, I can connect with an Android phone to my
>> embedded system.
>> I check it with:
>> hcitool -i hci0 con
>>
>> Which reports one active connection.
>>
>> I had a look at the hciconfig and hcitool source code (the only tools
>> I used to setup bluetooth), but could not find where a connection is
>> accepted.
>>
>> My question is: where (in the code) is the connection accepted in the
>> first place?
>>
>> Thanks!
>>
>> -- Gilles
>>
>> PS: my excuses for this repost. I realized that I forgot to set a
>> subject for the initial version of this e-mail sent on this list
>> yesterday.
>> --
>> To unsubscribe from this list: send the line "unsubscribe linux-bluetooth" in
>> the body of a message to majordomo@xxxxxxxxxxxxxxx
>> More majordomo info at  http://vger.kernel.org/majordomo-info.html
>
> If you're using just hcitool (and someone correct me if I'm wrong)
> then the kernel will accept the connection but won't magically hand it
> over to userland unless someone is listening for incoming connections.
> For that you would have to create an L2CAP socket and listen on it.
> Once a connection is accepted then you can use the returned socket
> just as you would with any UNIX socket over which you can exchange
> data.

This is exactly the kind of answer I was looking for. I could not find
this information anywhere.

I still find this a bit surprising: when using an l2capSocket, I still
have to listen() and accept() the connection. One would expect that
without anyone accept()'ing, the connection is not accepted!

Thanks a lot,
-- Gilles
--
To unsubscribe from this list: send the line "unsubscribe linux-bluetooth" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html




[Index of Archives]     [Bluez Devel]     [Linux Wireless Networking]     [Linux Wireless Personal Area Networking]     [Linux ATH6KL]     [Linux USB Devel]     [Linux Media Drivers]     [Linux Audio Users]     [Linux Kernel]     [Linux SCSI]     [Big List of Linux Books]

  Powered by Linux