Redefining adapter_get_address to take bdaddr_t as parameter.

This commit is contained in:
Alok Barsode 2008-09-08 13:39:38 +05:30
parent 9de95d439b
commit 2a8fb41c4c
11 changed files with 75 additions and 70 deletions

View File

@ -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) {

View File

@ -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);
}

View File

@ -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);
}

View File

@ -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);
}

View File

@ -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);
}

View File

@ -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)

View File

@ -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);

View File

@ -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);

View File

@ -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);

View File

@ -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) {

View File

@ -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)