From efdd3d054ba8ace4560dfe9008ac931966b88249 Mon Sep 17 00:00:00 2001 From: Lennart Poettering Date: Wed, 1 Jul 2009 20:20:36 +0200 Subject: reserve: update from upstream git repo --- src/modules/reserve-monitor.c | 12 +++++++++++- src/modules/reserve-monitor.h | 10 ++++++++++ src/modules/reserve.c | 2 ++ src/modules/reserve.h | 10 ++++++++++ 4 files changed, 33 insertions(+), 1 deletion(-) (limited to 'src') diff --git a/src/modules/reserve-monitor.c b/src/modules/reserve-monitor.c index 64d2a7cc..13ecde2b 100644 --- a/src/modules/reserve-monitor.c +++ b/src/modules/reserve-monitor.c @@ -1,3 +1,5 @@ +/*-*- Mode: C; c-basic-offset: 8; indent-tabs-mode: t -*-*/ + /*** Copyright 2009 Lennart Poettering @@ -76,9 +78,17 @@ static DBusHandlerResult filter_handler( goto invalid; if (strcmp(name, m->service_name) == 0) { - m->busy = !!(new && *new); + /* If we ourselves own the device, then don't consider this 'busy' */ + if (m->busy) { + const char *un; + + if ((un = dbus_bus_get_unique_name(c))) + if (strcmp(new, un) == 0) + m->busy = FALSE; + } + if (m->change_cb) { m->ref++; m->change_cb(m); diff --git a/src/modules/reserve-monitor.h b/src/modules/reserve-monitor.h index 4f4a8332..421a52e0 100644 --- a/src/modules/reserve-monitor.h +++ b/src/modules/reserve-monitor.h @@ -1,3 +1,5 @@ +/*-*- Mode: C; c-basic-offset: 8; indent-tabs-mode: t -*-*/ + #ifndef fooreservemonitorhfoo #define fooreservemonitorhfoo @@ -28,6 +30,10 @@ #include #include +#ifdef __cplusplus +extern "C" { +#endif + typedef struct rm_monitor rm_monitor; /* Prototype for a function that is called whenever the reservation @@ -59,4 +65,8 @@ void rm_set_userdata(rm_monitor *m, void *userdata); * userdata was set. */ void* rm_get_userdata(rm_monitor *m); +#ifdef __cplusplus +} +#endif + #endif diff --git a/src/modules/reserve.c b/src/modules/reserve.c index 09bc46cb..5597f177 100644 --- a/src/modules/reserve.c +++ b/src/modules/reserve.c @@ -1,3 +1,5 @@ +/*-*- Mode: C; c-basic-offset: 8; indent-tabs-mode: t -*-*/ + /*** Copyright 2009 Lennart Poettering diff --git a/src/modules/reserve.h b/src/modules/reserve.h index 31071298..9ae49cf5 100644 --- a/src/modules/reserve.h +++ b/src/modules/reserve.h @@ -1,3 +1,5 @@ +/*-*- Mode: C; c-basic-offset: 8; indent-tabs-mode: t -*-*/ + #ifndef fooreservehfoo #define fooreservehfoo @@ -28,6 +30,10 @@ #include #include +#ifdef __cplusplus +extern "C" { +#endif + typedef struct rd_device rd_device; /* Prototype for a function that is called whenever someone else wants @@ -66,4 +72,8 @@ void rd_set_userdata(rd_device *d, void *userdata); * userdata was set. */ void* rd_get_userdata(rd_device *d); +#ifdef __cplusplus +} +#endif + #endif -- cgit