diff options
author | Johan Hedberg <johan.hedberg@nokia.com> | 2007-08-03 13:09:40 +0000 |
---|---|---|
committer | Johan Hedberg <johan.hedberg@nokia.com> | 2007-08-03 13:09:40 +0000 |
commit | ba268bfe5652e348450b10dbc9981e9bcd6a55d5 (patch) | |
tree | d4e978d80dc0a508fdeeb117e463c6caab710b71 /hcid/storage.c | |
parent | 0ffdac3e37977d4db9fb42832b95a6fd1f3a4100 (diff) |
Implement Adapter.ListTrusts method
Diffstat (limited to 'hcid/storage.c')
-rw-r--r-- | hcid/storage.c | 29 |
1 files changed, 29 insertions, 0 deletions
diff --git a/hcid/storage.c b/hcid/storage.c index 19b13777..68f3470c 100644 --- a/hcid/storage.c +++ b/hcid/storage.c @@ -608,3 +608,32 @@ gboolean read_trust(bdaddr_t *local, const char *addr, const char *service) return ret; } + +struct trust_list { + GSList *trusts; + const char *service; +}; + +static void append_trust(char *key, char *value, void *data) +{ + struct trust_list *list = data; + + if (strstr(value, list->service)) + list->trusts = g_slist_append(list->trusts, g_strdup(key)); +} + +GSList *list_trusts(bdaddr_t *local, const char *service) +{ + char filename[PATH_MAX + 1]; + struct trust_list list; + + create_filename(filename, PATH_MAX, local, "trusts"); + + list.trusts = NULL; + list.service = service; + + if (textfile_foreach(filename, append_trust, &list) < 0) + return NULL; + + return list.trusts; +} |