From 26e1749b1e18fd55ce32e84654e7a9123630bedf Mon Sep 17 00:00:00 2001 From: Alok Barsode Date: Fri, 12 Sep 2008 21:52:14 +0530 Subject: Modifying l2raw_connect to take bdaddr_t as parameter. --- src/adapter.c | 9 +++++---- src/dbus-common.c | 6 +++--- src/dbus-common.h | 2 +- 3 files changed, 9 insertions(+), 8 deletions(-) diff --git a/src/adapter.c b/src/adapter.c index dec30fc0..0f64ae59 100644 --- a/src/adapter.c +++ b/src/adapter.c @@ -1289,10 +1289,11 @@ static DBusMessage *create_bonding(DBusConnection *conn, DBusMessage *msg, char *str; struct btd_adapter *adapter = data; struct bonding_request_info *bonding; - bdaddr_t bdaddr; + bdaddr_t src, dst; int sk; - str2ba(address, &bdaddr); + str2ba(address, &dst); + str2ba(adapter->address, &src); /* check if there is a pending discover: requested by D-Bus/non clients */ if (adapter->state & STD_INQUIRY) @@ -1303,7 +1304,7 @@ static DBusMessage *create_bonding(DBusConnection *conn, DBusMessage *msg, if (adapter->bonding) return in_progress(msg, "Bonding in progress"); - if (adapter_find_auth_request(adapter, &bdaddr)) + if (adapter_find_auth_request(adapter, &dst)) return in_progress(msg, "Bonding in progress"); /* check if a link key already exists */ @@ -1318,7 +1319,7 @@ static DBusMessage *create_bonding(DBusConnection *conn, DBusMessage *msg, "Bonding already exists"); } - sk = l2raw_connect(adapter->address, &bdaddr); + sk = l2raw_connect(&src, &dst); if (sk < 0) return g_dbus_create_error(msg, ERROR_INTERFACE ".ConnectionAttemptFailed", diff --git a/src/dbus-common.c b/src/dbus-common.c index e9295998..6c15dea2 100644 --- a/src/dbus-common.c +++ b/src/dbus-common.c @@ -54,7 +54,7 @@ #define RECONNECT_RETRY_TIMEOUT 5000 -int l2raw_connect(const char *local, const bdaddr_t *remote) +int l2raw_connect(const bdaddr_t *src, const bdaddr_t *dst) { struct sockaddr_l2 addr; long arg; @@ -68,7 +68,7 @@ int l2raw_connect(const char *local, const bdaddr_t *remote) memset(&addr, 0, sizeof(addr)); addr.l2_family = AF_BLUETOOTH; - str2ba(local, &addr.l2_bdaddr); + bacpy(&addr.l2_bdaddr, src); if (bind(sk, (struct sockaddr *) &addr, sizeof(addr)) < 0) { error("Can't bind socket: %s (%d)", strerror(errno), errno); @@ -89,7 +89,7 @@ int l2raw_connect(const char *local, const bdaddr_t *remote) memset(&addr, 0, sizeof(addr)); addr.l2_family = AF_BLUETOOTH; - bacpy(&addr.l2_bdaddr, remote); + bacpy(&addr.l2_bdaddr, dst); if (connect(sk, (struct sockaddr *) &addr, sizeof(addr)) < 0) { if (errno == EAGAIN || errno == EINPROGRESS) diff --git a/src/dbus-common.h b/src/dbus-common.h index e9435d38..5431b701 100644 --- a/src/dbus-common.h +++ b/src/dbus-common.h @@ -24,7 +24,7 @@ #define MAX_PATH_LENGTH 64 -int l2raw_connect(const char *local, const bdaddr_t *remote); +int l2raw_connect(const bdaddr_t *src, const bdaddr_t *dst); void hcid_dbus_exit(void); int hcid_dbus_init(void); -- cgit