can bluez dynamically allocate l2cap psm?
I want a simple client/server that operates as follows.
server listens for l2cap connections. accepts a connection, does something with it.
client discovers server by entering inquiry mode and then checking SDP records for service id of the server.
I don't want to hard-code the l2cap psm, as that seems like it defeats half the point of SDP, but I can't figure out how to request a dynamic psm. I want to be able to do somethiing like this:
int s;
struct sockaddr_l2 s_addr;
s = socket(PF_BLUETOOTH, SOCK_SEQPACKET, BTPROTO_L2CAP);
s_addr.l2_family = AF_BLUETOOTH;bacopy( &s_addr.l2_bdaddr, BDADDR_ANY );
s_addr.l2_psm = L2CAP_PSM_ANY;
bind(s, (struct sockaddr *)&s_addr, sizeof(s_addr) );
struct sockaddr_l2 local_addr;
struct socklen_t addr_len = sizeof(local_addr); getsockname( s, (struct sockaddr *)&local_addr, &addr_len); int psm = btohs( local_addr.l2_psm );
// register service with SDP using dynamic psm
Is this possible with bluez? Or do I have to do the ugly thing and pick an arbitrary psm?
thanks!
-albert
-------------------------------------------------------
This SF.Net email is sponsored by Sleepycat Software
Learn developer strategies Cisco, Motorola, Ericsson & Lucent use to deliver higher performing products faster, at low TCO.
http://www.sleepycat.com/telcomwpreg.php?From=osdnemail3
_______________________________________________
Bluez-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/bluez-devel
Hi Albert,
At the moment you have to cycle through the available PSMs trying to bind to each one. BlueZ sockets don't yet support binding to PSM_ANY.
Steve
Quoted 46 lines · Albert Huang
I want a simple client/server that operates as follows.
server listens for l2cap connections. accepts a connection, does something with it.
client discovers server by entering inquiry mode and then checking SDP records for service id of the server.
I don't want to hard-code the l2cap psm, as that seems like it defeats half the point of SDP, but I can't figure out how to request a dynamic psm. I want to be able to do somethiing like this:
int s;
structsockaddr_l2s_addr;
s =socket(PF_BLUETOOTH, SOCK_SEQPACKET, BTPROTO_L2CAP);s_addr.l2_family =
AF_BLUETOOTH;bacopy( &s_addr.l2_bdaddr, BDADDR_ANY );
s_addr.l2_psm =L2CAP_PSM_ANY;
bind(s, (struct sockaddr *)&s_addr, sizeof(s_addr) );struct
sockaddr_l2local_addr;
structsocklen_taddr_len=sizeof(local_addr);getsockname( s, (struct sockaddr *)&local_addr, &addr_len); int psm =btohs( local_addr.l2_psm );// register service with SDP using dynamic psm
Is this possible with bluez? Or do I have to do the ugly thing and pick an arbitrary psm?
thanks!
-albert-------------------------------------------------------
This SF.Net email is sponsored by Sleepycat Software
Learn developer strategies Cisco, Motorola, Ericsson & Lucent use to deliver higher performing products faster, at low TCO.
http://www.sleepycat.com/telcomwpreg.php?From=osdnemail3
_______________________________________________
Bluez-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/bluez-devel
Signature · 14 lines
Stephen Crane, Rococo Software Ltd. http://www.rococosoft.com [email protected] +353-1-6601315 (ext 209) ------------------------------------------------------- This SF.Net email is sponsored by Sleepycat Software Learn developer strategies Cisco, Motorola, Ericsson & Lucent use to deliver higher performing products faster, at low TCO. http://www.sleepycat.com/telcomwpreg.php?From=osdnemail3 _______________________________________________ Bluez-devel mailing list [email protected] https://lists.sourceforge.net/lists/listinfo/bluez-devel