diff options
Diffstat (limited to 'src/storage.c')
| -rw-r--r-- | src/storage.c | 39 | 
1 files changed, 33 insertions, 6 deletions
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 <bluetooth/sdp_lib.h>  #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;  | 
