diff options
author | David Woodhouse <David.Woodhouse@intel.com> | 2008-09-14 12:24:43 -0700 |
---|---|---|
committer | David Woodhouse <David.Woodhouse@intel.com> | 2008-09-14 12:31:23 -0700 |
commit | 60af857dbc8a258eb91ef3fb6de06c17c8fb4ec2 (patch) | |
tree | 4641fcf1d053b05d3c82a550799ae2742ad64e61 /src/storage.c | |
parent | c5dd9adb104b44a4ebb9006fb3205b7c74c3beb5 (diff) |
rename get_record() to find_record_in_list() and move to storage.[ch]
Diffstat (limited to 'src/storage.c')
-rw-r--r-- | src/storage.c | 29 |
1 files changed, 28 insertions, 1 deletions
diff --git a/src/storage.c b/src/storage.c index fc0f15d4..c951f0f2 100644 --- a/src/storage.c +++ b/src/storage.c @@ -45,7 +45,7 @@ #include <bluetooth/sdp_lib.h> #include "textfile.h" - +#include "glib-helper.h" static inline int create_filename(char *buf, size_t size, const bdaddr_t *bdaddr, const char *name) { char addr[18]; @@ -854,6 +854,33 @@ sdp_list_t *read_records(const gchar *src, const gchar *dst) return rec_list.recs; } +sdp_record_t *find_record_in_list(sdp_list_t *recs, const char *uuid) +{ + sdp_list_t *seq; + + for (seq = recs; seq; seq = seq->next) { + sdp_record_t *rec = (sdp_record_t *) seq->data; + sdp_list_t *svcclass = NULL; + char *uuid_str; + + if (sdp_get_service_classes(rec, &svcclass) < 0) + continue; + + /* Extract the uuid */ + uuid_str = bt_uuid2string(svcclass->data); + if (!uuid_str) + continue; + + if (!strcasecmp(uuid_str, uuid)) { + sdp_list_free(svcclass, free); + free(uuid_str); + return rec; + } + sdp_list_free(svcclass, free); + free(uuid_str); + } + return NULL; +} int store_device_id(const gchar *src, const gchar *dst, const uint16_t source, const uint16_t vendor, |