diff options
Diffstat (limited to 'src/storage.c')
-rw-r--r-- | src/storage.c | 22 |
1 files changed, 15 insertions, 7 deletions
diff --git a/src/storage.c b/src/storage.c index d048ddb4..d99fb33c 100644 --- a/src/storage.c +++ b/src/storage.c @@ -845,15 +845,19 @@ static void create_stored_records_from_keys(char *key, char *value, rec_list->recs = sdp_list_append(rec_list->recs, rec); } -sdp_list_t *read_records(const gchar *src, const gchar *dst) +sdp_list_t *read_records(bdaddr_t *src, bdaddr_t *dst) { char filename[PATH_MAX + 1]; struct record_list rec_list; + char srcaddr[18], dstaddr[18]; - rec_list.addr = dst; + ba2str(src, srcaddr); + ba2str(dst, dstaddr); + + rec_list.addr = dstaddr; rec_list.recs = NULL; - create_name(filename, PATH_MAX, STORAGEDIR, src, "sdp"); + create_name(filename, PATH_MAX, STORAGEDIR, srcaddr, "sdp"); textfile_foreach(filename, create_stored_records_from_keys, &rec_list); return rec_list.recs; @@ -952,16 +956,17 @@ static int read_device_id_from_did(const gchar *src, const gchar *dst, return 0; } -int read_device_id(const gchar *src, const gchar *dst, +int read_device_id(const gchar *srcaddr, const gchar *dstaddr, uint16_t *source, uint16_t *vendor, uint16_t *product, uint16_t *version) { uint16_t lsource, lvendor, lproduct, lversion; sdp_list_t *recs; sdp_record_t *rec; + bdaddr_t src, dst; int err; - err = read_device_id_from_did(src, dst, &lsource, + err = read_device_id_from_did(srcaddr, dstaddr, &lsource, vendor, product, version); if (!err) { if (lsource == 0xffff) @@ -970,7 +975,10 @@ int read_device_id(const gchar *src, const gchar *dst, return err; } - recs = read_records(src, dst); + str2ba(srcaddr, &src); + str2ba(dstaddr, &dst); + + recs = read_records(&src, &dst); rec = find_record_in_list(recs, PNP_UUID); if (rec) { @@ -1004,7 +1012,7 @@ int read_device_id(const gchar *src, const gchar *dst, lversion = 0x0000; } - store_device_id(src, dst, lsource, lvendor, lproduct, lversion); + store_device_id(srcaddr, dstaddr, lsource, lvendor, lproduct, lversion); if (err) return err; |