summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorLuiz Augusto von Dentz <luiz.dentz@openbossa.org>2007-03-27 22:11:29 +0000
committerLuiz Augusto von Dentz <luiz.dentz@openbossa.org>2007-03-27 22:11:29 +0000
commite7b6b11e91bb59eccf844abe4bb47b015b0c3cdf (patch)
tree204155dc06f7622c8d81250d64ca31ffc11c01b1
parentfab1c990ee59d3f41331f6c612ba302c2543710b (diff)
Get rid of old ioctl compability hack.
-rw-r--r--network/common.c51
-rw-r--r--network/common.h2
-rw-r--r--network/connection.c12
3 files changed, 13 insertions, 52 deletions
diff --git a/network/common.c b/network/common.c
index ec10cc34..593ea83c 100644
--- a/network/common.c
+++ b/network/common.c
@@ -44,17 +44,6 @@ static int ctl;
#define NAP_UUID "00001116-0000-1000-8000-00805f9b34fb"
#define GN_UUID "00001117-0000-1000-8000-00805f9b34fb"
-/* Compatibility with old ioctls */
-#define OLD_BNEPCONADD 1
-#define OLD_BNEPCONDEL 2
-#define OLD_BNEPGETCONLIST 3
-#define OLD_BNEPGETCONINFO 4
-
-static unsigned long bnepconnadd;
-static unsigned long bnepconndel;
-static unsigned long bnepgetconnlist;
-static unsigned long bnepgetconninfo;
-
static struct {
const char *name; /* Friendly name */
const char *uuid128; /* UUID 128 */
@@ -114,32 +103,10 @@ const char *bnep_name(uint16_t id)
int bnep_init(void)
{
ctl = socket(PF_BLUETOOTH, SOCK_RAW, BTPROTO_BNEP);
+
if (ctl < 0) {
error("Failed to open control socket");
- return 1;
- }
-
- /* Temporary ioctl compatibility hack */
- {
- struct bnep_connlist_req req;
- struct bnep_conninfo ci[1];
-
- req.cnum = 1;
- req.ci = ci;
-
- if (!ioctl(ctl, BNEPGETCONNLIST, &req)) {
- /* New ioctls */
- bnepconnadd = BNEPCONNADD;
- bnepconndel = BNEPCONNDEL;
- bnepgetconnlist = BNEPGETCONNLIST;
- bnepgetconninfo = BNEPGETCONNINFO;
- } else {
- /* Old ioctls */
- bnepconnadd = OLD_BNEPCONADD;
- bnepconndel = OLD_BNEPCONDEL;
- bnepgetconnlist = OLD_BNEPGETCONLIST;
- bnepgetconninfo = OLD_BNEPGETCONINFO;
- }
+ return -1;
}
return 0;
@@ -151,14 +118,13 @@ int bnep_cleanup(void)
return 0;
}
-int bnep_kill_connection(const char *addr)
+int bnep_kill_connection(bdaddr_t *dst)
{
struct bnep_conndel_req req;
- uint8_t *dst = (void *) strtoba(addr);
- memcpy(req.dst, dst, ETH_ALEN);
+ baswap((bdaddr_t *)&req.dst, dst);
req.flags = 0;
- if (ioctl(ctl, bnepconndel, &req)) {
+ if (ioctl(ctl, BNEPCONNDEL, &req)) {
error("Failed to kill connection");
return -1;
}
@@ -173,7 +139,7 @@ int bnep_kill_all_connections(void)
req.cnum = 48;
req.ci = ci;
- if (ioctl(ctl, bnepgetconnlist, &req)) {
+ if (ioctl(ctl, BNEPGETCONNLIST, &req)) {
error("Failed to get connection list");
return -1;
}
@@ -182,7 +148,8 @@ int bnep_kill_all_connections(void)
struct bnep_conndel_req req;
memcpy(req.dst, ci[i].dst, ETH_ALEN);
req.flags = 0;
- ioctl(ctl, bnepconndel, &req);
+ if (ioctl(ctl, BNEPCONNDEL, &req))
+ error("Failed to kill connection");
}
return 0;
}
@@ -195,7 +162,7 @@ int bnep_connadd(int sk, uint16_t role, char *dev)
req.device[15] = '\0';
req.sock = sk;
req.role = role;
- if (ioctl(ctl, bnepconnadd, &req)) {
+ if (ioctl(ctl, BNEPCONNADD, &req)) {
error("Failed to add device %s", dev);
return -1;
}
diff --git a/network/common.h b/network/common.h
index 820a2b3a..b3941e4f 100644
--- a/network/common.h
+++ b/network/common.h
@@ -28,7 +28,7 @@ uint16_t bnep_service_id(const char *svc);
const char *bnep_uuid(uint16_t id);
const char *bnep_name(uint16_t id);
-int bnep_kill_connection(const char *addr);
+int bnep_kill_connection(bdaddr_t *dst);
int bnep_kill_all_connections(void);
int bnep_connadd(int sk, uint16_t role, char *dev);
diff --git a/network/connection.c b/network/connection.c
index 4496f110..ff3f5aab 100644
--- a/network/connection.c
+++ b/network/connection.c
@@ -387,7 +387,6 @@ static DBusHandlerResult connection_disconnect(DBusConnection *conn,
{
struct network_conn *nc = data;
DBusMessage *reply;
- char addr[18];
if (!nc->up) {
err_failed(conn, msg, "Device not connected");
@@ -395,8 +394,7 @@ static DBusHandlerResult connection_disconnect(DBusConnection *conn,
}
close(nc->sk);
- ba2str(&nc->dst, addr);
- bnep_kill_connection(addr);
+ bnep_kill_connection(&nc->dst);
reply = dbus_message_new_method_return(msg);
if (!reply)
@@ -461,18 +459,14 @@ static DBusHandlerResult connection_message(DBusConnection *conn,
static void connection_free(struct network_conn *nc)
{
- char addr[18];
-
if (!nc)
return;
if (nc->path)
g_free(nc->path);
- if (nc->up) {
- ba2str(&nc->dst, addr);
- bnep_kill_connection(addr);
- }
+ if (nc->up)
+ bnep_kill_connection(&nc->dst);
if (nc->dev)
g_free(nc->dev);