Adding device_get_address.

Signed-off-by: Alok Barsode <alok.barsode@azingo.com>
This commit is contained in:
Alok Barsode 2008-07-09 12:52:59 +05:30 committed by Luiz Augusto von Dentz
parent dcf5298e81
commit aec749f073
4 changed files with 27 additions and 8 deletions

View File

@ -278,6 +278,7 @@ static struct bonding_request_info *bonding_request_new(DBusConnection *conn,
struct bonding_request_info *bonding;
struct device *device;
const char *name = dbus_message_get_sender(msg);
const gchar *destination;
debug("bonding_request_new(%s)", address);
@ -285,10 +286,13 @@ static struct bonding_request_info *bonding_request_new(DBusConnection *conn,
if (!device)
return NULL;
destination = device_get_address(device);
device->agent = agent_create(adapter, name, agent_path,
capability, device_agent_removed, device);
capability,
device_agent_removed,
device);
debug("Temporary agent registered for hci%d/%s at %s:%s",
adapter->dev_id, device->address, name,
adapter->dev_id, destination, name,
agent_path);
bonding = g_new0(struct bonding_request_info, 1);
@ -737,11 +741,12 @@ void adapter_remove_device(DBusConnection *conn, struct adapter *adapter,
struct device *device)
{
bdaddr_t src;
const gchar *destination = device_get_address(device);
str2ba(adapter->address, &src);
delete_entry(&src, "profiles", device->address);
delete_entry(&src, "profiles", destination);
remove_bonding(conn, NULL, device->address, adapter);
remove_bonding(conn, NULL, destination, adapter);
if (!device->temporary) {
g_dbus_emit_signal(conn, adapter->path,

View File

@ -726,6 +726,7 @@ static void pincode_cb(struct agent *agent, DBusError *err, const char *pincode,
size_t len;
int dev;
struct pending_auth_info *auth;
const gchar *destination = device_get_address(device);
/* No need to reply anything if the authentication already failed */
if (adapter->bonding && adapter->bonding->hci_status)
@ -739,7 +740,7 @@ static void pincode_cb(struct agent *agent, DBusError *err, const char *pincode,
}
str2ba(adapter->address, &sba);
str2ba(device->address, &dba);
str2ba(destination, &dba);
auth = adapter_find_auth_request(adapter, &dba);
@ -814,6 +815,7 @@ static void confirm_cb(struct agent *agent, DBusError *err, void *user_data)
user_confirm_reply_cp cp;
int dd;
struct pending_auth_info *auth;
const gchar *destination = device_get_address(device);
/* No need to reply anything if the authentication already failed */
if (adapter->bonding && adapter->bonding->hci_status)
@ -826,7 +828,7 @@ static void confirm_cb(struct agent *agent, DBusError *err, void *user_data)
}
memset(&cp, 0, sizeof(cp));
str2ba(device->address, &cp.bdaddr);
str2ba(destination, &cp.bdaddr);
auth = adapter_find_auth_request(adapter, &cp.bdaddr);
@ -854,6 +856,7 @@ static void passkey_cb(struct agent *agent, DBusError *err, uint32_t passkey,
bdaddr_t dba;
int dd;
struct pending_auth_info *auth;
const gchar *destination = device_get_address(device);
/* No need to reply anything if the authentication already failed */
if (adapter->bonding && adapter->bonding->hci_status)
@ -865,7 +868,7 @@ static void passkey_cb(struct agent *agent, DBusError *err, uint32_t passkey,
return;
}
str2ba(device->address, &dba);
str2ba(destination, &dba);
memset(&cp, 0, sizeof(cp));
bacpy(&cp.bdaddr, &dba);
@ -1805,6 +1808,7 @@ void hcid_dbus_disconn_complete(bdaddr_t *local, uint8_t status,
GSList *l;
gboolean connected = FALSE;
struct pending_auth_info *auth;
const gchar *destination;
if (status) {
error("Disconnection failed: 0x%02x", status);
@ -1866,12 +1870,13 @@ void hcid_dbus_disconn_complete(bdaddr_t *local, uint8_t status,
device = adapter_find_device(adapter, paddr);
if (device) {
destination = device_get_address(device);
dbus_connection_emit_property_changed(connection,
device->path, DEVICE_INTERFACE,
"Connected", DBUS_TYPE_BOOLEAN,
&connected);
if (device->temporary) {
debug("Removing temporary device %s", device->address);
debug("Removing temporary device %s", destination);
adapter_remove_device(connection, adapter, device);
}
}

View File

@ -936,6 +936,14 @@ struct adapter *device_get_adapter(struct device *device)
return device->adapter;
}
const gchar *device_get_address(struct device *device)
{
if (!device)
return NULL;
return device->address;
}
int btd_register_device_driver(struct btd_device_driver *driver)
{
const char **uuid;

View File

@ -57,6 +57,7 @@ int device_browse(struct device *device, DBusConnection *conn,
DBusMessage *msg, uuid_t *search);
void device_probe_drivers(struct device *device, GSList *uuids);
struct adapter *device_get_adapter(struct device *device);
const gchar *device_get_address(struct device *device);
#define BTD_UUIDS(args...) ((const char *[]) { args, NULL } )