On 02/20/2014 12:33 PM, Michal Eljasiewicz wrote: > This fix allows to register activator connection when > normal connection already exists for that name. > Also, when activator connection registers for a second name > (different than first one) name lookup will > result in no entry found and checking for multiple names > will not occur. So checking needs to be done earlier. > > Signed-off-by: Michal Eljasiewicz <m.eljasie...@samsung.com>
Makes sense. Applied, thanks! Daniel > --- > names.c | 14 +++++++++++--- > 1 file changed, 11 insertions(+), 3 deletions(-) > > diff --git a/names.c b/names.c > index c43960a..22ead9f 100644 > --- a/names.c > +++ b/names.c > @@ -399,6 +399,13 @@ int kdbus_name_acquire(struct kdbus_name_registry *reg, > > mutex_lock(&conn->bus->lock); > mutex_lock(®->entries_lock); > + > + /* an activator can only own a single name */ > + if ((conn->flags & KDBUS_HELLO_ACTIVATOR) && conn->names > 0) { > + ret = -EALREADY; > + goto exit_unlock; > + } > + > e = __kdbus_name_lookup(reg, hash, name); > if (e) { > /* connection already owns that name */ > @@ -407,9 +414,10 @@ int kdbus_name_acquire(struct kdbus_name_registry *reg, > goto exit_unlock; > } > > - /* an activator can only own a single name */ > - if (conn->flags & KDBUS_HELLO_ACTIVATOR) { > - ret = -EALREADY; > + /* activator registers for name that is already owned */ > + if (conn->flags & KDBUS_HELLO_ACTIVATOR && > + e->activator == NULL) { > + e->activator = kdbus_conn_ref(conn); > goto exit_unlock; > } > > _______________________________________________ systemd-devel mailing list systemd-devel@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/systemd-devel