diff options
author | Marcel Holtmann <marcel@holtmann.org> | 2007-08-24 01:21:33 +0000 |
---|---|---|
committer | Marcel Holtmann <marcel@holtmann.org> | 2007-08-24 01:21:33 +0000 |
commit | eb4d49890ca8a4d8f567e81fdf82b6903d30f326 (patch) | |
tree | e6b410172659468ab6ea07a89e373a24dbb9c55f | |
parent | 853c689f23985da36de72d8c4be33f64fc00496d (diff) |
Move the extended inquiry response creation into the SDP code
-rw-r--r-- | hcid/device.c | 15 | ||||
-rw-r--r-- | sdpd/sdpd.h | 1 | ||||
-rw-r--r-- | sdpd/service.c | 17 |
3 files changed, 21 insertions, 12 deletions
diff --git a/hcid/device.c b/hcid/device.c index 983071d0..c80f5875 100644 --- a/hcid/device.c +++ b/hcid/device.c @@ -45,6 +45,7 @@ #include "dbus-helper.h" #include "hcid.h" +#include "sdpd.h" #include "logging.h" #include "textfile.h" @@ -218,18 +219,8 @@ static void update_ext_inquiry_response(int dd, struct hci_dev *dev) memset(data, 0, sizeof(data)); - if (dev->ssp_mode > 0) { - int len; - - len = strlen((char *) dev->name); - if (len > 48) { - len = 48; - data[1] = 0x08; - } else - data[1] = 0x09; - data[0] = len + 1; - memcpy(data + 2, dev->name, len); - } + if (dev->ssp_mode > 0) + create_ext_inquiry_response((char *) dev->name, data); if (hci_write_ext_inquiry_response(dd, fec, data, 2000) < 0) error("Can't write extended inquiry response: %s (%d)", diff --git a/sdpd/sdpd.h b/sdpd/sdpd.h index ad7a2d4f..0a2bccf4 100644 --- a/sdpd/sdpd.h +++ b/sdpd/sdpd.h @@ -91,3 +91,4 @@ typedef void (*service_classes_callback_t) (const bdaddr_t *bdaddr, uint8_t valu uint8_t get_service_classes(const bdaddr_t *bdaddr); void set_service_classes_callback(service_classes_callback_t callback); +void create_ext_inquiry_response(const char *name, uint8_t *data); diff --git a/sdpd/service.c b/sdpd/service.c index 7f8296f4..bbc7fcc8 100644 --- a/sdpd/service.c +++ b/sdpd/service.c @@ -139,6 +139,23 @@ void set_service_classes_callback(service_classes_callback_t callback) service_classes_callback = callback; } +void create_ext_inquiry_response(const char *name, uint8_t *data) +{ + if (name) { + int len = strlen(name); + + if (len > 48) { + len = 48; + data[1] = 0x08; + } else + data[1] = 0x09; + + data[0] = len + 1; + + memcpy(data + 2, name, len); + } +} + void register_public_browse_group(void) { sdp_list_t *browselist; |