From 506c95298346d318304aa7e2211dfba5dbe6e3e0 Mon Sep 17 00:00:00 2001 From: Claudio Takahasi Date: Wed, 27 Aug 2008 17:13:41 -0300 Subject: Storage cleanup --- src/storage.c | 39 +++++++++++++++++++++++++++++++++------ 1 file changed, 33 insertions(+), 6 deletions(-) (limited to 'src/storage.c') diff --git a/src/storage.c b/src/storage.c index 7a9c5989..3cdc9113 100644 --- a/src/storage.c +++ b/src/storage.c @@ -45,7 +45,6 @@ #include #include "textfile.h" -#include "hcid.h" static inline int create_filename(char *buf, size_t size, const bdaddr_t *bdaddr, const char *name) { @@ -56,6 +55,35 @@ static inline int create_filename(char *buf, size_t size, const bdaddr_t *bdaddr return create_name(buf, size, STORAGEDIR, addr, name); } +int read_device_alias(const char *src, const char *dst, char *alias, size_t size) +{ + char filename[PATH_MAX + 1], *tmp; + int err; + + create_name(filename, PATH_MAX, STORAGEDIR, src, "aliases"); + + tmp = textfile_get(filename, dst); + if (!tmp) + return -ENXIO; + + err = snprintf(alias, size, "%s", tmp); + + free(tmp); + + return err; +} + +int write_device_alias(const char *src, const char *dst, const char *alias) +{ + char filename[PATH_MAX + 1]; + + create_name(filename, PATH_MAX, STORAGEDIR, src, "aliases"); + + create_file(filename, S_IRUSR | S_IWUSR | S_IRGRP | S_IROTH); + + return textfile_put(filename, dst, alias); +} + int write_discoverable_timeout(bdaddr_t *bdaddr, int timeout) { char filename[PATH_MAX + 1], str[32]; @@ -270,15 +298,14 @@ int write_device_name(bdaddr_t *local, bdaddr_t *peer, char *name) return textfile_put(filename, addr, str); } -int read_device_name(bdaddr_t *local, bdaddr_t *peer, char *name) +int read_device_name(const char *src, const char *dst, char *name) { - char filename[PATH_MAX + 1], addr[18], *str; + char filename[PATH_MAX + 1], *str; int len; - create_filename(filename, PATH_MAX, local, "names"); + create_name(filename, PATH_MAX, STORAGEDIR, src, "names"); - ba2str(peer, addr); - str = textfile_get(filename, addr); + str = textfile_get(filename, dst); if (!str) return -ENOENT; -- cgit