* [Bluez-devel] [PATCH] bluez-libs UUID-128 support for Protocol Descriptor List
@ 2006-08-21 12:28 Markus Becker
2006-08-23 17:35 ` Marcel Holtmann
0 siblings, 1 reply; 5+ messages in thread
From: Markus Becker @ 2006-08-21 12:28 UTC (permalink / raw)
To: bluez-devel
[-- Attachment #1: Type: TEXT/PLAIN, Size: 1486 bytes --]
Hello Marcel et al.,
I've created a patch for bluez-libs/src/sdp.c to support the finding of
UUID128 encoded protocols. So that also kdebluetooth and others can
recognize those protocols. It changes the display of the Protocol
Descriptor List for example from:
Service Name: ATEmulator
Service RecHandle: 0x10010
Service Class ID List:
"Error: This is UUID-128" (0x7dd6b763-99a9-4a92-87b5-bc8efe565c37)
"Error: This is UUID-128" (0x00001101-0000-1000-8000-00805f9b34fb)
Protocol Descriptor List:
"Error: " (0x00000100-0000-1000-8000-00805f9b34fb)
"Error: " (0x00000003-0000-1000-8000-00805f9b34fb)
Channel: 25
to:
Service Name: ATEmulator
Service RecHandle: 0x10010
Service Class ID List:
UUID 128: 7dd6b763-99a9-4a92-87b5-bc8efe565c37
UUID 128: 00001101-0000-1000-8000-00805f9b34fb
Protocol Descriptor List:
"L2CAP" (0x00000100-0000-1000-8000-00805f9b34fb)
"RFCOMM" (0x00000003-0000-1000-8000-00805f9b34fb)
Channel: 25
Please consider it for integration into mainline bluez-libs.
Best regards,
Markus Becker
P.S.: When replying please CC me, because I'm not subscribed to the list.
------------------------------------------------
| Dipl.-Ing. Markus Becker
| Communication Networks
| University Bremen
| Germany
------------------------------------------------
| web: http://www.comnets.uni-bremen.de/~mab/
| mailto: mab@comnets.uni-bremen.de
| telephone: +49 421 218 2287
| building: NW1 room: N2260
------------------------------------------------
[-- Attachment #2: Type: TEXT/PLAIN, Size: 1055 bytes --]
diff -u bluez-libs-3.2/src/sdp.c bluez-libs-3.2.mod/src/sdp.c
--- bluez-libs-3.2/src/sdp.c 2006-07-27 06:36:59.000000000 +0200
+++ bluez-libs-3.2.mod/src/sdp.c 2006-08-21 13:45:46.000000000 +0200
@@ -208,6 +208,25 @@
return "";
}
+static char *string_lookup128(struct tupla *pt0, uint128_t index)
+{
+ struct tupla *pt;
+
+ int i_index = index.data[0];
+ i_index = i_index <<8;
+ i_index += index.data[1];
+ i_index = i_index <<8;
+ i_index += index.data[2];
+ i_index = i_index <<8;
+ i_index += index.data[3];
+
+ for (pt = pt0; pt->index; pt++) {
+ if (pt->index == i_index)
+ return pt->str;
+ }
+ return "";
+}
+
/*
* Prints into a string the Protocol UUID
* coping a maximum of n characters.
@@ -231,7 +250,8 @@
snprintf(str, n, str2);
break;
case SDP_UUID128:
- snprintf(str, n, "Error: This is UUID-128");
+ str2 = string_lookup128(message, uuid->value.uuid128);
+ snprintf(str, n, str2);
return -4;
default:
snprintf(str, n, "Type of UUID (%x) unknown.", uuid->type);
[-- Attachment #3: Type: text/plain, Size: 373 bytes --]
-------------------------------------------------------------------------
Using Tomcat but need to do more? Need to support web services, security?
Get stuff done quickly with pre-integrated technology to make your job easier
Download IBM WebSphere Application Server v.1.0.1 based on Apache Geronimo
http://sel.as-us.falkag.net/sel?cmd=lnk&kid=120709&bid=263057&dat=121642
[-- Attachment #4: Type: text/plain, Size: 164 bytes --]
_______________________________________________
Bluez-devel mailing list
Bluez-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/bluez-devel
^ permalink raw reply [flat|nested] 5+ messages in thread* Re: [Bluez-devel] [PATCH] bluez-libs UUID-128 support for Protocol Descriptor List 2006-08-21 12:28 [Bluez-devel] [PATCH] bluez-libs UUID-128 support for Protocol Descriptor List Markus Becker @ 2006-08-23 17:35 ` Marcel Holtmann 2006-08-24 10:35 ` Markus Becker 0 siblings, 1 reply; 5+ messages in thread From: Marcel Holtmann @ 2006-08-23 17:35 UTC (permalink / raw) To: BlueZ development; +Cc: Markus Becker Hi Markus, > I've created a patch for bluez-libs/src/sdp.c to support the finding of > UUID128 encoded protocols. So that also kdebluetooth and others can > recognize those protocols. It changes the display of the Protocol > Descriptor List for example from: > > Service Name: ATEmulator > Service RecHandle: 0x10010 > Service Class ID List: > "Error: This is UUID-128" (0x7dd6b763-99a9-4a92-87b5-bc8efe565c37) > "Error: This is UUID-128" (0x00001101-0000-1000-8000-00805f9b34fb) > Protocol Descriptor List: > "Error: " (0x00000100-0000-1000-8000-00805f9b34fb) > "Error: " (0x00000003-0000-1000-8000-00805f9b34fb) > Channel: 25 > > to: > > Service Name: ATEmulator > Service RecHandle: 0x10010 > Service Class ID List: > UUID 128: 7dd6b763-99a9-4a92-87b5-bc8efe565c37 > UUID 128: 00001101-0000-1000-8000-00805f9b34fb > Protocol Descriptor List: > "L2CAP" (0x00000100-0000-1000-8000-00805f9b34fb) > "RFCOMM" (0x00000003-0000-1000-8000-00805f9b34fb) > Channel: 25 > > Please consider it for integration into mainline bluez-libs. the patch is wrong. Before you are doing a lookup against the short UUIDs of Bluetooth you should check if the base UUID is the Bluetooth base UUID. Otherwise you can't do the lookup. Regards Marcel ------------------------------------------------------------------------- Using Tomcat but need to do more? Need to support web services, security? Get stuff done quickly with pre-integrated technology to make your job easier Download IBM WebSphere Application Server v.1.0.1 based on Apache Geronimo http://sel.as-us.falkag.net/sel?cmd=lnk&kid=120709&bid=263057&dat=121642 _______________________________________________ Bluez-devel mailing list Bluez-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/bluez-devel ^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: [Bluez-devel] [PATCH] bluez-libs UUID-128 support for Protocol Descriptor List 2006-08-23 17:35 ` Marcel Holtmann @ 2006-08-24 10:35 ` Markus Becker 2006-08-24 14:43 ` Marcel Holtmann 0 siblings, 1 reply; 5+ messages in thread From: Markus Becker @ 2006-08-24 10:35 UTC (permalink / raw) To: Marcel Holtmann; +Cc: BlueZ development [-- Attachment #1: Type: TEXT/PLAIN, Size: 1707 bytes --] Hi Marcel. On Wed, 23 Aug 2006, Marcel Holtmann wrote: > Hi Markus, > > > I've created a patch for bluez-libs/src/sdp.c to support the finding of > > UUID128 encoded protocols. So that also kdebluetooth and others can > > recognize those protocols. It changes the display of the Protocol > > Descriptor List for example from: > > > > Service Name: ATEmulator > > Service RecHandle: 0x10010 > > Service Class ID List: > > "Error: This is UUID-128" (0x7dd6b763-99a9-4a92-87b5-bc8efe565c37) > > "Error: This is UUID-128" (0x00001101-0000-1000-8000-00805f9b34fb) > > Protocol Descriptor List: > > "Error: " (0x00000100-0000-1000-8000-00805f9b34fb) > > "Error: " (0x00000003-0000-1000-8000-00805f9b34fb) > > Channel: 25 > > > > to: > > > > Service Name: ATEmulator > > Service RecHandle: 0x10010 > > Service Class ID List: > > UUID 128: 7dd6b763-99a9-4a92-87b5-bc8efe565c37 > > UUID 128: 00001101-0000-1000-8000-00805f9b34fb > > Protocol Descriptor List: > > "L2CAP" (0x00000100-0000-1000-8000-00805f9b34fb) > > "RFCOMM" (0x00000003-0000-1000-8000-00805f9b34fb) > > Channel: 25 > > > > Please consider it for integration into mainline bluez-libs. > > the patch is wrong. Before you are doing a lookup against the short > UUIDs of Bluetooth you should check if the base UUID is the Bluetooth > base UUID. Otherwise you can't do the lookup. > OK. I attached a patch that does the whole String_lookup differently and using sdp_uuid128_to_uuid for 128 bit UUIDs. Unfortunately I had to change the interface in sdp_lib.h because of "const" not being fulfilled by sdp_uuid128_to_uuid. I hope this patch is more to your liking. If not, contact me. > Regards > > Marcel Bye, Markus [-- Attachment #2: Type: TEXT/PLAIN, Size: 3197 bytes --] diff -u bluez-libs-3.2/src/sdp.c bluez-libs-3.2.mod/src/sdp.c --- bluez-libs-3.2/src/sdp.c 2006-07-27 06:36:59.000000000 +0200 +++ bluez-libs-3.2.mod/src/sdp.c 2006-08-24 12:29:31.000000000 +0200 @@ -208,11 +208,36 @@ return ""; } +static char *string_lookup16(struct tupla *pt0, uuid_t* uuid) +{ + return string_lookup(pt0, uuid->value.uuid16); +} + +static char *string_lookup32(struct tupla *pt0, uuid_t* uuid) +{ + return string_lookup(pt0, uuid->value.uuid32); +} + +static char *string_lookup128(struct tupla *pt0, uuid_t* uuid) +{ + if (sdp_uuid128_to_uuid(uuid)) { + if (uuid->type == SDP_UUID16) { + return string_lookup(pt0, uuid->value.uuid16); + } else if (uuid->type == SDP_UUID32) { + return string_lookup(pt0, uuid->value.uuid32); + } else { + return ""; + } + } else { + return ""; + } +} + /* * Prints into a string the Protocol UUID * coping a maximum of n characters. */ -static int uuid2str(struct tupla *message, const uuid_t *uuid, char *str, size_t n) +static int uuid2str(struct tupla *message, uuid_t *uuid, char *str, size_t n) { char *str2; @@ -223,15 +248,16 @@ switch (uuid->type) { case SDP_UUID16: - str2 = string_lookup(message, uuid->value.uuid16); + str2 = string_lookup16(message, uuid); snprintf(str, n, str2); break; case SDP_UUID32: - str2 = string_lookup(message, uuid->value.uuid32); + str2 = string_lookup32(message, uuid); snprintf(str, n, str2); break; case SDP_UUID128: - snprintf(str, n, "Error: This is UUID-128"); + str2 = string_lookup128(message, uuid); + snprintf(str, n, str2); return -4; default: snprintf(str, n, "Type of UUID (%x) unknown.", uuid->type); @@ -241,17 +267,17 @@ return 0; } -int sdp_proto_uuid2strn(const uuid_t *uuid, char *str, size_t n) +int sdp_proto_uuid2strn(uuid_t *uuid, char *str, size_t n) { return uuid2str(Protocol, uuid, str, n); } -int sdp_svclass_uuid2strn(const uuid_t *uuid, char *str, size_t n) +int sdp_svclass_uuid2strn(uuid_t *uuid, char *str, size_t n) { return uuid2str(ServiceClass, uuid, str, n); } -int sdp_profile_uuid2strn(const uuid_t *uuid, char *str, size_t n) +int sdp_profile_uuid2strn(uuid_t *uuid, char *str, size_t n) { return uuid2str(Profile, uuid, str, n); } diff -u bluez-libs-3.2/include/sdp_lib.h bluez-libs-3.2.mod/include/sdp_lib.h --- bluez-libs-3.2/include/sdp_lib.h 2006-01-03 13:56:09.000000000 +0100 +++ bluez-libs-3.2.mod/include/sdp_lib.h 2006-08-24 12:25:36.000000000 +0200 @@ -438,9 +438,9 @@ #define MAX_LEN_PROFILEDESCRIPTOR_UUID_STR 28 int sdp_uuid2strn(const uuid_t *uuid, char *str, size_t n); -int sdp_proto_uuid2strn(const uuid_t *uuid, char *str, size_t n); -int sdp_svclass_uuid2strn(const uuid_t *uuid, char *str, size_t n); -int sdp_profile_uuid2strn(const uuid_t *uuid, char *str, size_t n); +int sdp_proto_uuid2strn(uuid_t *uuid, char *str, size_t n); +int sdp_svclass_uuid2strn(uuid_t *uuid, char *str, size_t n); +int sdp_profile_uuid2strn(uuid_t *uuid, char *str, size_t n); /* * In all the sdp_get_XXX(handle, XXX *xxx) functions below, ^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: [Bluez-devel] [PATCH] bluez-libs UUID-128 support for Protocol Descriptor List 2006-08-24 10:35 ` Markus Becker @ 2006-08-24 14:43 ` Marcel Holtmann 2006-08-24 13:51 ` Markus Becker 0 siblings, 1 reply; 5+ messages in thread From: Marcel Holtmann @ 2006-08-24 14:43 UTC (permalink / raw) To: Markus Becker; +Cc: BlueZ development [-- Attachment #1: Type: text/plain, Size: 1883 bytes --] Hi Markus, > > > I've created a patch for bluez-libs/src/sdp.c to support the finding of > > > UUID128 encoded protocols. So that also kdebluetooth and others can > > > recognize those protocols. It changes the display of the Protocol > > > Descriptor List for example from: > > > > > > Service Name: ATEmulator > > > Service RecHandle: 0x10010 > > > Service Class ID List: > > > "Error: This is UUID-128" (0x7dd6b763-99a9-4a92-87b5-bc8efe565c37) > > > "Error: This is UUID-128" (0x00001101-0000-1000-8000-00805f9b34fb) > > > Protocol Descriptor List: > > > "Error: " (0x00000100-0000-1000-8000-00805f9b34fb) > > > "Error: " (0x00000003-0000-1000-8000-00805f9b34fb) > > > Channel: 25 > > > > > > to: > > > > > > Service Name: ATEmulator > > > Service RecHandle: 0x10010 > > > Service Class ID List: > > > UUID 128: 7dd6b763-99a9-4a92-87b5-bc8efe565c37 > > > UUID 128: 00001101-0000-1000-8000-00805f9b34fb > > > Protocol Descriptor List: > > > "L2CAP" (0x00000100-0000-1000-8000-00805f9b34fb) > > > "RFCOMM" (0x00000003-0000-1000-8000-00805f9b34fb) > > > Channel: 25 > > > > > > Please consider it for integration into mainline bluez-libs. > > > > the patch is wrong. Before you are doing a lookup against the short > > UUIDs of Bluetooth you should check if the base UUID is the Bluetooth > > base UUID. Otherwise you can't do the lookup. > > > OK. I attached a patch that does the whole String_lookup differently and > using sdp_uuid128_to_uuid for 128 bit UUIDs. Unfortunately I had to change > the interface in sdp_lib.h because of "const" not being fulfilled by > sdp_uuid128_to_uuid. > > I hope this patch is more to your liking. If not, contact me. your patch is a little bit too complex and the coding style is wrong and changing the prototypes is not a good idea. Please test the attached patch. This is how I would do it. Regards Marcel [-- Attachment #2: patch --] [-- Type: text/x-patch, Size: 1081 bytes --] Index: src/sdp.c =================================================================== RCS file: /cvsroot/bluez/libs/src/sdp.c,v retrieving revision 1.42 diff -u -r1.42 sdp.c --- src/sdp.c 23 Aug 2006 15:05:30 -0000 1.42 +++ src/sdp.c 24 Aug 2006 12:40:53 -0000 @@ -208,6 +208,24 @@ return ""; } +static char *string_lookup_uuid(struct tupla *pt0, const uuid_t* uuid) +{ + uuid_t tmp_uuid; + + memcpy(&tmp_uuid, uuid, sizeof(tmp_uuid)); + + if (sdp_uuid128_to_uuid(&tmp_uuid)) { + switch (tmp_uuid.type) { + case SDP_UUID16: + return string_lookup(pt0, tmp_uuid.value.uuid16); + case SDP_UUID32: + return string_lookup(pt0, tmp_uuid.value.uuid32); + } + } + + return ""; +} + /* * Prints into a string the Protocol UUID * coping a maximum of n characters. @@ -231,8 +249,9 @@ snprintf(str, n, str2); break; case SDP_UUID128: - snprintf(str, n, "Error: This is UUID-128"); - return -4; + str2 = string_lookup_uuid(message, uuid); + snprintf(str, n, str2); + break; default: snprintf(str, n, "Type of UUID (%x) unknown.", uuid->type); return -1; [-- Attachment #3: Type: text/plain, Size: 373 bytes --] ------------------------------------------------------------------------- Using Tomcat but need to do more? Need to support web services, security? Get stuff done quickly with pre-integrated technology to make your job easier Download IBM WebSphere Application Server v.1.0.1 based on Apache Geronimo http://sel.as-us.falkag.net/sel?cmd=lnk&kid=120709&bid=263057&dat=121642 [-- Attachment #4: Type: text/plain, Size: 164 bytes --] _______________________________________________ Bluez-devel mailing list Bluez-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/bluez-devel ^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: [Bluez-devel] [PATCH] bluez-libs UUID-128 support for Protocol Descriptor List 2006-08-24 14:43 ` Marcel Holtmann @ 2006-08-24 13:51 ` Markus Becker 0 siblings, 0 replies; 5+ messages in thread From: Markus Becker @ 2006-08-24 13:51 UTC (permalink / raw) To: Marcel Holtmann; +Cc: BlueZ development On Thu, 24 Aug 2006, Marcel Holtmann wrote: > Hi Markus, > > > > > I've created a patch for bluez-libs/src/sdp.c to support the finding of > > > > UUID128 encoded protocols. So that also kdebluetooth and others can > > > > recognize those protocols. It changes the display of the Protocol > > > > Descriptor List for example from: > > > > > > > > Service Name: ATEmulator > > > > Service RecHandle: 0x10010 > > > > Service Class ID List: > > > > "Error: This is UUID-128" (0x7dd6b763-99a9-4a92-87b5-bc8efe565c37) > > > > "Error: This is UUID-128" (0x00001101-0000-1000-8000-00805f9b34fb) > > > > Protocol Descriptor List: > > > > "Error: " (0x00000100-0000-1000-8000-00805f9b34fb) > > > > "Error: " (0x00000003-0000-1000-8000-00805f9b34fb) > > > > Channel: 25 > > > > > > > > to: > > > > > > > > Service Name: ATEmulator > > > > Service RecHandle: 0x10010 > > > > Service Class ID List: > > > > UUID 128: 7dd6b763-99a9-4a92-87b5-bc8efe565c37 > > > > UUID 128: 00001101-0000-1000-8000-00805f9b34fb > > > > Protocol Descriptor List: > > > > "L2CAP" (0x00000100-0000-1000-8000-00805f9b34fb) > > > > "RFCOMM" (0x00000003-0000-1000-8000-00805f9b34fb) > > > > Channel: 25 > > > > > > > > Please consider it for integration into mainline bluez-libs. > > > > > > the patch is wrong. Before you are doing a lookup against the short > > > UUIDs of Bluetooth you should check if the base UUID is the Bluetooth > > > base UUID. Otherwise you can't do the lookup. > > > > > OK. I attached a patch that does the whole String_lookup differently and > > using sdp_uuid128_to_uuid for 128 bit UUIDs. Unfortunately I had to change > > the interface in sdp_lib.h because of "const" not being fulfilled by > > sdp_uuid128_to_uuid. > > > > I hope this patch is more to your liking. If not, contact me. > > your patch is a little bit too complex and the coding style is wrong and > changing the prototypes is not a good idea. > > Please test the attached patch. This is how I would do it. Tested and works for me. Thanks. > > Regards > > Marcel > > ^ permalink raw reply [flat|nested] 5+ messages in thread
end of thread, other threads:[~2006-08-24 14:43 UTC | newest] Thread overview: 5+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2006-08-21 12:28 [Bluez-devel] [PATCH] bluez-libs UUID-128 support for Protocol Descriptor List Markus Becker 2006-08-23 17:35 ` Marcel Holtmann 2006-08-24 10:35 ` Markus Becker 2006-08-24 14:43 ` Marcel Holtmann 2006-08-24 13:51 ` Markus Becker
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox