reserve: don't call busy/available when we are the owner

Also ignore acquired from our other devices.
This commit is contained in:
Wim Taymans 2020-09-21 14:35:32 +02:00
parent cc470c048b
commit 2b8568e14f

View file

@ -270,10 +270,13 @@ static DBusHandlerResult filter_handler(DBusConnection *c, DBusMessage *m, void
d))) d)))
goto invalid; goto invalid;
if (d->callbacks->acquired) if (strcmp(name, d->service_name) != 0)
d->callbacks->acquired(d->data, d); goto invalid;
d->registered = true; d->registered = true;
if (d->callbacks->acquired)
d->callbacks->acquired(d->data, d);
} }
} else if (dbus_message_is_signal(m, "org.freedesktop.DBus", "NameLost")) { } else if (dbus_message_is_signal(m, "org.freedesktop.DBus", "NameLost")) {
if (!dbus_message_get_args( m, &error, if (!dbus_message_get_args( m, &error,
@ -303,17 +306,17 @@ static DBusHandlerResult filter_handler(DBusConnection *c, DBusMessage *m, void
DBUS_TYPE_INVALID)) DBUS_TYPE_INVALID))
goto invalid; goto invalid;
if (strcmp(name, d->service_name) != 0) if (strcmp(name, d->service_name) != 0 || d->owning)
goto invalid; goto invalid;
pw_log_debug(NAME" %p: changed %s: %s -> %s", d, name, old, new); pw_log_debug(NAME" %p: changed %s: %s -> %s", d, name, old, new);
if (old == NULL || *old == 0) { if (old == NULL || *old == 0) {
if (d->callbacks->busy) if (d->callbacks->busy)
d->callbacks->busy(d->data, d, new, 0); d->callbacks->busy(d->data, d, name, 0);
} else { } else {
if (d->callbacks->available) if (d->callbacks->available)
d->callbacks->available(d->data, d, old); d->callbacks->available(d->data, d, name);
} }
} }