From 60af857dbc8a258eb91ef3fb6de06c17c8fb4ec2 Mon Sep 17 00:00:00 2001 From: David Woodhouse Date: Sun, 14 Sep 2008 12:24:43 -0700 Subject: rename get_record() to find_record_in_list() and move to storage.[ch] --- src/storage.c | 29 ++++++++++++++++++++++++++++- 1 file changed, 28 insertions(+), 1 deletion(-) (limited to 'src/storage.c') 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 #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, -- cgit