mirror of
https://git.kernel.org/pub/scm/bluetooth/bluez.git
synced 2025-01-26 22:33:29 +08:00
Redefining adapter_get_address to take bdaddr_t as parameter.
This commit is contained in:
parent
9de95d439b
commit
2a8fb41c4c
@ -673,14 +673,13 @@ static int audio_probe(struct btd_device *device, GSList *records)
|
||||
{
|
||||
struct btd_adapter *adapter = device_get_adapter(device);
|
||||
const gchar *path = device_get_path(device);
|
||||
const char *source, *destination;
|
||||
const char *destination;
|
||||
bdaddr_t src, dst;
|
||||
struct audio_device *dev;
|
||||
|
||||
source = adapter_get_address(adapter);
|
||||
adapter_get_address(adapter, &src);
|
||||
destination = device_get_address(device);
|
||||
|
||||
str2ba(source, &src);
|
||||
str2ba(destination, &dst);
|
||||
|
||||
dev = manager_find_device(&dst, NULL, FALSE);
|
||||
@ -728,11 +727,9 @@ static struct audio_adapter *get_audio_adapter(struct btd_adapter *adapter)
|
||||
{
|
||||
struct audio_adapter *adp;
|
||||
const gchar *path = adapter_get_path(adapter);
|
||||
const char *source;
|
||||
bdaddr_t src;
|
||||
|
||||
source = adapter_get_address(adapter);
|
||||
str2ba(source, &src);
|
||||
adapter_get_address(adapter, &src);
|
||||
|
||||
adp = find_adapter(adapters, path);
|
||||
if (!adp) {
|
||||
|
@ -170,7 +170,7 @@ static int hid_device_probe(struct btd_device *device, GSList *records)
|
||||
{
|
||||
struct btd_adapter *adapter = device_get_adapter(device);
|
||||
const gchar *path = device_get_path(device);
|
||||
const char *source, *destination;
|
||||
const char *destination;
|
||||
struct hidp_connadd_req hidp;
|
||||
bdaddr_t src, dst;
|
||||
|
||||
@ -178,10 +178,9 @@ static int hid_device_probe(struct btd_device *device, GSList *records)
|
||||
|
||||
memset(&hidp, 0, sizeof(hidp));
|
||||
|
||||
source = adapter_get_address(adapter);
|
||||
adapter_get_address(adapter, &src);
|
||||
destination = device_get_address(device);
|
||||
|
||||
str2ba(source, &src);
|
||||
str2ba(destination, &dst);
|
||||
|
||||
if (load_stored(&src, &dst, &hidp) == 0)
|
||||
@ -213,7 +212,7 @@ static int headset_probe(struct btd_device *device, GSList *records)
|
||||
sdp_record_t *record = records->data;
|
||||
sdp_list_t *protos;
|
||||
uint8_t ch;
|
||||
const char *source, *destination;
|
||||
const char *destination;
|
||||
bdaddr_t src, dst;
|
||||
|
||||
DBG("path %s", path);
|
||||
@ -232,10 +231,9 @@ static int headset_probe(struct btd_device *device, GSList *records)
|
||||
return -EINVAL;
|
||||
}
|
||||
|
||||
source = adapter_get_address(adapter);
|
||||
adapter_get_address(adapter, &src);
|
||||
destination = device_get_address(device);
|
||||
|
||||
str2ba(source, &src);
|
||||
str2ba(destination, &dst);
|
||||
|
||||
return fake_input_register(connection, path, &src, &dst,
|
||||
@ -249,22 +247,18 @@ static void headset_remove(struct btd_device *device)
|
||||
|
||||
static int hid_server_probe(struct btd_adapter *adapter)
|
||||
{
|
||||
const char *addr;
|
||||
bdaddr_t src;
|
||||
|
||||
addr = adapter_get_address(adapter);
|
||||
str2ba(addr, &src);
|
||||
adapter_get_address(adapter, &src);
|
||||
|
||||
return server_start(&src);
|
||||
}
|
||||
|
||||
static void hid_server_remove(struct btd_adapter *adapter)
|
||||
{
|
||||
const char *addr;
|
||||
bdaddr_t src;
|
||||
|
||||
addr = adapter_get_address(adapter);
|
||||
str2ba(addr, &src);
|
||||
adapter_get_address(adapter, &src);
|
||||
|
||||
server_stop(&src);
|
||||
}
|
||||
|
@ -196,15 +196,14 @@ static int network_probe(struct btd_device *device, GSList *records,
|
||||
{
|
||||
struct btd_adapter *adapter = device_get_adapter(device);
|
||||
const gchar *path = device_get_path(device);
|
||||
const char *source, *destination;
|
||||
const char *destination;
|
||||
bdaddr_t src, dst;
|
||||
|
||||
DBG("path %s", path);
|
||||
|
||||
source = adapter_get_address(adapter);
|
||||
adapter_get_address(adapter, &src);
|
||||
destination = device_get_address(device);
|
||||
|
||||
str2ba(source, &src);
|
||||
str2ba(destination, &dst);
|
||||
|
||||
return connection_register(path, &src, &dst, id);
|
||||
@ -252,7 +251,6 @@ static void nap_remove(struct btd_device *device)
|
||||
static int network_server_probe(struct btd_adapter *adapter, uint16_t id)
|
||||
{
|
||||
const gchar *path = adapter_get_path(adapter);
|
||||
const char *source;
|
||||
bdaddr_t src;
|
||||
|
||||
DBG("path %s", path);
|
||||
@ -260,8 +258,7 @@ static int network_server_probe(struct btd_adapter *adapter, uint16_t id)
|
||||
if (!conf.server_enabled)
|
||||
return 0;
|
||||
|
||||
source = adapter_get_address(adapter);
|
||||
str2ba(source, &src);
|
||||
adapter_get_address(adapter, &src);
|
||||
|
||||
return server_register(path, &src, id);
|
||||
}
|
||||
|
@ -442,7 +442,7 @@ static DBusMessage *add_service_record(DBusConnection *conn,
|
||||
return NULL;
|
||||
|
||||
sender = dbus_message_get_sender(msg);
|
||||
str2ba(adapter_get_address(adapter), &src);
|
||||
adapter_get_address(adapter, &src);
|
||||
err = add_xml_record(conn, sender, &src, record, &handle);
|
||||
if (err < 0)
|
||||
return failed_strerror(msg, err);
|
||||
@ -463,7 +463,7 @@ static DBusMessage *update_service_record(DBusConnection *conn,
|
||||
struct btd_adapter *adapter = data;
|
||||
bdaddr_t src;
|
||||
|
||||
str2ba(adapter_get_address(adapter), &src);
|
||||
adapter_get_address(adapter, &src);
|
||||
|
||||
return update_xml_record(conn, msg, &src);
|
||||
}
|
||||
|
@ -97,7 +97,7 @@ static int serial_probe(struct btd_device *device, sdp_record_t *rec,
|
||||
return -EINVAL;
|
||||
}
|
||||
|
||||
str2ba(adapter_get_address(adapter), &src);
|
||||
adapter_get_address(adapter, &src);
|
||||
str2ba(device_get_address(device), &dst);
|
||||
|
||||
return port_register(connection, path, &src, &dst, name,
|
||||
@ -153,11 +153,10 @@ static struct btd_device_driver serial_dialup_driver = {
|
||||
static int proxy_probe(struct btd_adapter *adapter)
|
||||
{
|
||||
const char *path = adapter_get_path(adapter);
|
||||
const char *address = adapter_get_address(adapter);
|
||||
bdaddr_t src;
|
||||
|
||||
DBG("path %s", path);
|
||||
str2ba(address, &src);
|
||||
adapter_get_address(adapter, &src);
|
||||
|
||||
return proxy_register(connection, path, &src);
|
||||
}
|
||||
|
@ -2671,12 +2671,9 @@ const gchar *adapter_get_path(struct btd_adapter *adapter)
|
||||
return adapter->path;
|
||||
}
|
||||
|
||||
const gchar *adapter_get_address(struct btd_adapter *adapter)
|
||||
void adapter_get_address(struct btd_adapter *adapter, bdaddr_t *bdaddr)
|
||||
{
|
||||
if (!adapter)
|
||||
return NULL;
|
||||
|
||||
return adapter->address;
|
||||
str2ba(adapter->address, bdaddr);
|
||||
}
|
||||
|
||||
static gboolean discov_timeout_handler(void *data)
|
||||
|
@ -128,7 +128,7 @@ struct btd_adapter *adapter_create(DBusConnection *conn, int id);
|
||||
void adapter_remove(struct btd_adapter *adapter);
|
||||
uint16_t adapter_get_dev_id(struct btd_adapter *adapter);
|
||||
const gchar *adapter_get_path(struct btd_adapter *adapter);
|
||||
const gchar *adapter_get_address(struct btd_adapter *adapter);
|
||||
void adapter_get_address(struct btd_adapter *adapter, bdaddr_t *bdaddr);
|
||||
void adapter_remove(struct btd_adapter *adapter);
|
||||
void adapter_set_discov_timeout(struct btd_adapter *adapter, guint interval);
|
||||
void adapter_remove_discov_timeout(struct btd_adapter *adapter);
|
||||
|
@ -371,7 +371,8 @@ static void pincode_reply(DBusPendingCall *call, void *user_data)
|
||||
bdaddr_t sba;
|
||||
size_t len;
|
||||
char *pin;
|
||||
const gchar *source = adapter_get_address(adapter);
|
||||
|
||||
adapter_get_address(adapter, &sba);
|
||||
|
||||
/* steal_reply will always return non-NULL since the callback
|
||||
* is only called after a reply has been received */
|
||||
@ -416,8 +417,6 @@ static void pincode_reply(DBusPendingCall *call, void *user_data)
|
||||
goto done;
|
||||
}
|
||||
|
||||
str2ba(source, &sba);
|
||||
|
||||
set_pin_length(&sba, len);
|
||||
|
||||
cb(agent, NULL, pin, req->user_data);
|
||||
|
@ -126,7 +126,6 @@ static void pincode_cb(struct agent *agent, DBusError *err, const char *pincode,
|
||||
struct pending_auth_info *auth;
|
||||
const gchar *destination = device_get_address(device);
|
||||
uint16_t dev_id = adapter_get_dev_id(adapter);
|
||||
const gchar *source = adapter_get_address(adapter);
|
||||
struct bonding_request_info *bonding = adapter_get_bonding_info(adapter);
|
||||
|
||||
/* No need to reply anything if the authentication already failed */
|
||||
@ -140,7 +139,7 @@ static void pincode_cb(struct agent *agent, DBusError *err, const char *pincode,
|
||||
return;
|
||||
}
|
||||
|
||||
str2ba(source, &sba);
|
||||
adapter_get_address(adapter, &sba);
|
||||
str2ba(destination, &dba);
|
||||
|
||||
auth = adapter_find_auth_request(adapter, &dba);
|
||||
|
75
src/device.c
75
src/device.c
@ -124,12 +124,15 @@ static void device_free(gpointer user_data)
|
||||
static gboolean device_is_paired(struct btd_device *device)
|
||||
{
|
||||
struct btd_adapter *adapter = device->adapter;
|
||||
char filename[PATH_MAX + 1], *str;
|
||||
char filename[PATH_MAX + 1], *str, addr[18];
|
||||
gboolean ret;
|
||||
const gchar *source = adapter_get_address(adapter);
|
||||
bdaddr_t bdaddr;
|
||||
|
||||
adapter_get_address(adapter, &bdaddr);
|
||||
ba2str(&bdaddr, addr);
|
||||
|
||||
create_name(filename, PATH_MAX, STORAGEDIR,
|
||||
source, "linkkeys");
|
||||
addr, "linkkeys");
|
||||
str = textfile_caseget(filename, device->address);
|
||||
ret = str ? TRUE : FALSE;
|
||||
g_free(str);
|
||||
@ -146,9 +149,9 @@ static DBusMessage *get_properties(DBusConnection *conn,
|
||||
DBusMessageIter iter;
|
||||
DBusMessageIter dict;
|
||||
bdaddr_t src, dst;
|
||||
char name[248];
|
||||
char name[248], src_addr[18];
|
||||
char **uuids;
|
||||
const char *ptr, *source;
|
||||
const char *ptr;
|
||||
dbus_bool_t boolean;
|
||||
uint32_t class;
|
||||
int i;
|
||||
@ -173,15 +176,16 @@ static DBusMessage *get_properties(DBusConnection *conn,
|
||||
/* Name */
|
||||
ptr = NULL;
|
||||
memset(name, 0, sizeof(name));
|
||||
source = adapter_get_address(adapter);
|
||||
adapter_get_address(adapter, &src);
|
||||
ba2str(&src, src_addr);
|
||||
|
||||
if (read_device_name(source, device->address, name) == 0) {
|
||||
if (read_device_name(src_addr, device->address, name) == 0) {
|
||||
ptr = name;
|
||||
dbus_message_iter_append_dict_entry(&dict, "Name",
|
||||
DBUS_TYPE_STRING, &ptr);
|
||||
}
|
||||
|
||||
if (read_device_alias(source, device->address, name, sizeof(name)) > 0)
|
||||
if (read_device_alias(src_addr, device->address, name, sizeof(name)) > 0)
|
||||
ptr = name;
|
||||
|
||||
/* Alias: use Name if Alias doesn't exist */
|
||||
@ -189,7 +193,6 @@ static DBusMessage *get_properties(DBusConnection *conn,
|
||||
dbus_message_iter_append_dict_entry(&dict, "Alias",
|
||||
DBUS_TYPE_STRING, &ptr);
|
||||
|
||||
str2ba(source, &src);
|
||||
str2ba(device->address, &dst);
|
||||
|
||||
/* Class */
|
||||
@ -241,11 +244,15 @@ static DBusMessage *set_alias(DBusConnection *conn, DBusMessage *msg,
|
||||
{
|
||||
struct btd_device *device = data;
|
||||
struct btd_adapter *adapter = device->adapter;
|
||||
const gchar *source = adapter_get_address(adapter);
|
||||
char addr[18];
|
||||
bdaddr_t bdaddr;
|
||||
int err;
|
||||
|
||||
/* Remove alias if empty string */
|
||||
err = write_device_alias(source, device->address,
|
||||
adapter_get_address(adapter, &bdaddr);
|
||||
ba2str(&bdaddr, addr);
|
||||
|
||||
/* Remove alias if empty string */
|
||||
err = write_device_alias(addr, device->address,
|
||||
g_str_equal(alias, "") ? NULL : alias);
|
||||
if (err < 0)
|
||||
return g_dbus_create_error(msg,
|
||||
@ -264,9 +271,14 @@ static DBusMessage *set_trust(DBusConnection *conn, DBusMessage *msg,
|
||||
{
|
||||
struct btd_device *device = data;
|
||||
struct btd_adapter *adapter = device->adapter;
|
||||
const gchar *source = adapter_get_address(adapter);
|
||||
char addr[18];
|
||||
bdaddr_t bdaddr;
|
||||
|
||||
write_trust(source, device->address, GLOBAL_TRUST, value);
|
||||
|
||||
adapter_get_address(adapter, &bdaddr);
|
||||
ba2str(&bdaddr, addr);
|
||||
|
||||
write_trust(addr, device->address, GLOBAL_TRUST, value);
|
||||
|
||||
dbus_connection_emit_property_changed(conn, dbus_message_get_path(msg),
|
||||
DEVICE_INTERFACE, "Trusted",
|
||||
@ -328,11 +340,11 @@ static void discover_services_req_exit(void *user_data)
|
||||
struct btd_device *device = user_data;
|
||||
struct btd_adapter *adapter = device->adapter;
|
||||
bdaddr_t src, dst;
|
||||
const gchar *source = adapter_get_address(adapter);
|
||||
|
||||
adapter_get_address(adapter, &src);
|
||||
|
||||
debug("DiscoverDevices requestor exited");
|
||||
|
||||
str2ba(source, &src);
|
||||
str2ba(device->address, &dst);
|
||||
|
||||
bt_cancel_discovery(&src, &dst);
|
||||
@ -381,7 +393,8 @@ static DBusMessage *cancel_discover(DBusConnection *conn,
|
||||
struct btd_device *device = user_data;
|
||||
struct btd_adapter *adapter = device->adapter;
|
||||
bdaddr_t src, dst;
|
||||
const gchar *source = adapter_get_address(adapter);
|
||||
|
||||
adapter_get_address(adapter, &src);
|
||||
|
||||
if (!device->discov_active)
|
||||
return g_dbus_create_error(msg,
|
||||
@ -395,7 +408,6 @@ static DBusMessage *cancel_discover(DBusConnection *conn,
|
||||
ERROR_INTERFACE ".NotAuthorized",
|
||||
"Not Authorized");
|
||||
|
||||
str2ba(source, &src);
|
||||
str2ba(device->address, &dst);
|
||||
|
||||
if (bt_cancel_discovery(&src, &dst) < 0)
|
||||
@ -621,9 +633,13 @@ void device_probe_drivers(struct btd_device *device, GSList *uuids, sdp_list_t *
|
||||
void device_remove_drivers(struct btd_device *device, GSList *uuids, sdp_list_t *recs)
|
||||
{
|
||||
struct btd_adapter *adapter = device_get_adapter(device);
|
||||
const gchar *src = adapter_get_address(adapter);
|
||||
const gchar *dst = device_get_address(device);
|
||||
GSList *list;
|
||||
char src_addr[18];
|
||||
bdaddr_t src;
|
||||
|
||||
adapter_get_address(adapter, &src);
|
||||
ba2str(&src, src_addr);
|
||||
|
||||
debug("Remove drivers for %s", device->path);
|
||||
|
||||
@ -649,7 +665,7 @@ void device_remove_drivers(struct btd_device *device, GSList *uuids, sdp_list_t
|
||||
if (!rec)
|
||||
continue;
|
||||
|
||||
delete_record(src, dst, rec->handle);
|
||||
delete_record(src_addr, dst, rec->handle);
|
||||
}
|
||||
}
|
||||
|
||||
@ -779,9 +795,13 @@ static void update_services(struct browse_req *req, sdp_list_t *recs)
|
||||
{
|
||||
struct btd_device *device = req->device;
|
||||
struct btd_adapter *adapter = device_get_adapter(device);
|
||||
const gchar *src = adapter_get_address(adapter);
|
||||
const gchar *dst = device_get_address(device);
|
||||
sdp_list_t *seq;
|
||||
char src_addr[18];
|
||||
bdaddr_t src;
|
||||
|
||||
adapter_get_address(adapter, &src);
|
||||
ba2str(&src, src_addr);
|
||||
|
||||
for (seq = recs; seq; seq = seq->next) {
|
||||
sdp_record_t *rec = (sdp_record_t *) seq->data;
|
||||
@ -805,7 +825,7 @@ static void update_services(struct browse_req *req, sdp_list_t *recs)
|
||||
if (sdp_list_find(req->records, rec, rec_cmp))
|
||||
continue;
|
||||
|
||||
store_record(src, dst, rec);
|
||||
store_record(src_addr, dst, rec);
|
||||
|
||||
/* Copy record */
|
||||
if (sdp_gen_record_pdu(rec, &pdu) == 0) {
|
||||
@ -838,9 +858,8 @@ static void store(struct btd_device *device)
|
||||
struct btd_adapter *adapter = device->adapter;
|
||||
bdaddr_t src, dst;
|
||||
char *str;
|
||||
const gchar *source = adapter_get_address(adapter);
|
||||
|
||||
str2ba(source, &src);
|
||||
adapter_get_address(adapter, &src);
|
||||
str2ba(device->address, &dst);
|
||||
|
||||
if (!device->uuids) {
|
||||
@ -861,7 +880,8 @@ static void browse_cb(sdp_list_t *recs, int err, gpointer user_data)
|
||||
bdaddr_t src, dst;
|
||||
uuid_t uuid;
|
||||
DBusMessage *reply;
|
||||
const gchar *source = adapter_get_address(adapter);
|
||||
|
||||
adapter_get_address(adapter, &src);
|
||||
|
||||
if (err < 0) {
|
||||
error("%s: error updating services: %s (%d)",
|
||||
@ -877,7 +897,6 @@ static void browse_cb(sdp_list_t *recs, int err, gpointer user_data)
|
||||
|
||||
if (uuid_list[++req->search_uuid]) {
|
||||
sdp_uuid16_create(&uuid, uuid_list[req->search_uuid]);
|
||||
str2ba(source, &src);
|
||||
str2ba(device->address, &dst);
|
||||
bt_search_service(&src, &dst, &uuid, browse_cb, user_data, NULL);
|
||||
return;
|
||||
@ -955,14 +974,14 @@ int device_browse(struct btd_device *device, DBusConnection *conn,
|
||||
bdaddr_t src, dst;
|
||||
uuid_t uuid;
|
||||
GSList *l;
|
||||
const gchar *source = adapter_get_address(adapter);
|
||||
|
||||
adapter_get_address(adapter, &src);
|
||||
|
||||
req = g_new0(struct browse_req, 1);
|
||||
req->conn = dbus_connection_ref(conn);
|
||||
req->msg = dbus_message_ref(msg);
|
||||
req->device = device;
|
||||
|
||||
str2ba(source, &src);
|
||||
str2ba(device->address, &dst);
|
||||
|
||||
if (search) {
|
||||
|
@ -301,9 +301,13 @@ static gint adapter_address_cmp(gconstpointer a, gconstpointer b)
|
||||
{
|
||||
struct btd_adapter *adapter = (struct btd_adapter *) a;
|
||||
const char *address = b;
|
||||
const gchar *source = adapter_get_address(adapter);
|
||||
bdaddr_t bdaddr;
|
||||
char addr[18];
|
||||
|
||||
return strcmp(source, address);
|
||||
adapter_get_address(adapter, &bdaddr);
|
||||
ba2str(&bdaddr, addr);
|
||||
|
||||
return strcmp(addr, address);
|
||||
}
|
||||
|
||||
struct btd_adapter *manager_find_adapter(const bdaddr_t *sba)
|
||||
|
Loading…
Reference in New Issue
Block a user