mirror of
https://github.com/systemd/systemd.git
synced 2025-01-25 10:04:04 +03:00
dbus: add data argument to BusPropertySetCallback
BusPropertyCallback already has the argument. It is necesary for the callback to know what data to access.
This commit is contained in:
parent
56bcbfa5f8
commit
9612f07cbf
@ -402,6 +402,7 @@ get_prop:
|
||||
const BusProperty *p;
|
||||
DBusMessageIter sub;
|
||||
char *sig;
|
||||
void *data;
|
||||
|
||||
if (!dbus_message_iter_init(message, &iter) ||
|
||||
dbus_message_iter_get_arg_type(&iter) != DBUS_TYPE_STRING)
|
||||
@ -456,7 +457,10 @@ set_prop:
|
||||
|
||||
dbus_free(sig);
|
||||
|
||||
r = p->set(&sub, property);
|
||||
data = (char*)bp->base + p->offset;
|
||||
if (p->indirect)
|
||||
data = *(void**)data;
|
||||
r = p->set(&sub, property, data);
|
||||
if (r < 0) {
|
||||
if (r == -ENOMEM)
|
||||
goto oom;
|
||||
|
@ -93,7 +93,7 @@ int bus_connect_system_polkit(DBusConnection **_bus, DBusError *error);
|
||||
const char *bus_error_message(const DBusError *error);
|
||||
|
||||
typedef int (*BusPropertyCallback)(DBusMessageIter *iter, const char *property, void *data);
|
||||
typedef int (*BusPropertySetCallback)(DBusMessageIter *iter, const char *property);
|
||||
typedef int (*BusPropertySetCallback)(DBusMessageIter *iter, const char *property, void *data);
|
||||
|
||||
typedef struct BusProperty {
|
||||
const char *property; /* name of the property */
|
||||
|
@ -326,7 +326,7 @@ static int bus_manager_append_log_target(DBusMessageIter *i, const char *propert
|
||||
return 0;
|
||||
}
|
||||
|
||||
static int bus_manager_set_log_target(DBusMessageIter *i, const char *property) {
|
||||
static int bus_manager_set_log_target(DBusMessageIter *i, const char *property, void *data) {
|
||||
const char *t;
|
||||
|
||||
assert(i);
|
||||
@ -351,7 +351,7 @@ static int bus_manager_append_log_level(DBusMessageIter *i, const char *property
|
||||
return 0;
|
||||
}
|
||||
|
||||
static int bus_manager_set_log_level(DBusMessageIter *i, const char *property) {
|
||||
static int bus_manager_set_log_level(DBusMessageIter *i, const char *property, void *data) {
|
||||
const char *t;
|
||||
|
||||
assert(i);
|
||||
|
Loading…
x
Reference in New Issue
Block a user