summaryrefslogtreecommitdiffstats
path: root/input/manager.c
diff options
context:
space:
mode:
authorClaudio Takahasi <claudio.takahasi@openbossa.org>2007-06-22 19:14:38 +0000
committerClaudio Takahasi <claudio.takahasi@openbossa.org>2007-06-22 19:14:38 +0000
commit7fb02908be38aaa273643ac6b78c5d72e40ae545 (patch)
tree8f103fe3a56f07d682fc27909efaace24a8533a9 /input/manager.c
parenta47211b0097fe3612b96246f08bf37dccd15fd61 (diff)
input: fixed CreateDevice - verify the src and the dst address to discover if the device already exists
Diffstat (limited to 'input/manager.c')
-rw-r--r--input/manager.c16
1 files changed, 1 insertions, 15 deletions
diff --git a/input/manager.c b/input/manager.c
index 666c0e44..74654893 100644
--- a/input/manager.c
+++ b/input/manager.c
@@ -778,23 +778,12 @@ done:
dbus_message_unref(reply);
}
-static int path_bdaddr_cmp(const char *path, const bdaddr_t *bdaddr)
-{
- bdaddr_t src, dst;
-
- if (input_device_get_bdaddr(connection, path, &src, &dst) < 0)
- return -1;
-
- return bacmp(&dst, bdaddr);
-}
-
static DBusHandlerResult create_device(DBusConnection *conn,
DBusMessage *msg, void *data)
{
struct pending_req *pr;
DBusError derr;
const char *addr;
- GSList *l;
bdaddr_t src, dst;
uint32_t cls = 0;
int dev_id;
@@ -821,10 +810,7 @@ static DBusHandlerResult create_device(DBusConnection *conn,
}
str2ba(addr, &dst);
-
- l = g_slist_find_custom(device_paths, &dst,
- (GCompareFunc) path_bdaddr_cmp);
- if (l)
+ if (input_device_is_registered(&src, &dst))
return err_already_exists(conn, msg, "Input Already exists");
if (read_device_class(&src, &dst, &cls) < 0) {