diff options
Diffstat (limited to 'hcid/dbus-device.c')
-rw-r--r-- | hcid/dbus-device.c | 11 |
1 files changed, 6 insertions, 5 deletions
diff --git a/hcid/dbus-device.c b/hcid/dbus-device.c index d49394e4..54646b80 100644 --- a/hcid/dbus-device.c +++ b/hcid/dbus-device.c @@ -917,17 +917,20 @@ DBusHandlerResult msg_func_device(DBusConnection *conn, DBusMessage *msg, void * struct hci_dbus_data *dbus_data = data; const char *method; const char *signature; + const char *iface; uint32_t error = BLUEZ_EDBUS_UNKNOWN_METHOD; - DBusHandlerResult ret = DBUS_HANDLER_RESULT_NOT_YET_HANDLED; method = dbus_message_get_member(msg); signature = dbus_message_get_signature(msg); + iface = dbus_message_get_interface(msg); syslog(LOG_INFO, "[%s,%d] path:%s, method:%s", __PRETTY_FUNCTION__, __LINE__, dbus_message_get_path(msg), method); + if (strcmp(DEVICE_INTERFACE, iface)) + return DBUS_HANDLER_RESULT_NOT_YET_HANDLED; + if (dbus_data->path_id == DEVICE_ROOT_ID) { /* Device is down(path unregistered) or the path is wrong */ - ret = DBUS_HANDLER_RESULT_HANDLED; error = BLUEZ_EDBUS_UNKNOWN_PATH; goto failed; } @@ -937,8 +940,6 @@ DBusHandlerResult msg_func_device(DBusConnection *conn, DBusMessage *msg, void * if (strcmp(handlers->name, method)) continue; - ret = DBUS_HANDLER_RESULT_HANDLED; - if (!strcmp(handlers->signature, signature)) { reply = handlers->handler_func(msg, data); error = 0; @@ -962,5 +963,5 @@ failed: dbus_message_unref(reply); } - return ret; + return DBUS_HANDLER_RESULT_HANDLED; } |