{
GSList *list;
+ if (!name)
+ return NULL;
+
for (list = interfaces; list; list = list->next) {
struct interface_data *iface = list->data;
if (!strcmp(name, iface->name))
if (!slash)
goto done;
- *slash = '\0';
+ if (slash == parent_path && parent_path[1] != '\0')
+ parent_path[1] = '\0';
+ else
+ *slash = '\0';
+
if (!strlen(parent_path))
goto done;
}
iface = find_interface(data->interfaces, interface);
-
if (!iface) {
error("dbus_connection_emit_signal: %s does not implement %s",
path, interface);