From 1cb7d5d359881443a53e1859c1dfbf8f947e702b Mon Sep 17 00:00:00 2001 From: Claudio Takahasi Date: Thu, 1 Jun 2006 20:31:11 +0000 Subject: SetRemoteAlias:Added unknown address verification --- hcid/dbus-adapter.c | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) (limited to 'hcid/dbus-adapter.c') diff --git a/hcid/dbus-adapter.c b/hcid/dbus-adapter.c index ace0b32e..86a43c81 100644 --- a/hcid/dbus-adapter.c +++ b/hcid/dbus-adapter.c @@ -1303,10 +1303,11 @@ static DBusHandlerResult handle_dev_get_remote_alias_req(DBusConnection *conn, D static DBusHandlerResult handle_dev_set_remote_alias_req(DBusConnection *conn, DBusMessage *msg, void *data) { + char filename[PATH_MAX + 1]; struct hci_dbus_data *dbus_data = data; DBusMessage *reply, *signal; DBusError err; - char *str_ptr, *addr_ptr; + char *str_ptr, *addr_ptr, *find_ptr; bdaddr_t bdaddr; int ecode; @@ -1327,6 +1328,16 @@ static DBusHandlerResult handle_dev_set_remote_alias_req(DBusConnection *conn, D return error_invalid_arguments(conn, msg); } + /* check if it is a unknown address */ + snprintf(filename, PATH_MAX, "%s/%s/lastseen", STORAGEDIR, dbus_data->address); + + find_ptr = textfile_get(filename, addr_ptr); + + if (!find_ptr) + return error_unknown_address(conn, msg); + + free(find_ptr); + str2ba(addr_ptr, &bdaddr); ecode = set_device_alias(dbus_data->dev_id, &bdaddr, str_ptr); -- cgit