logind: fix internal types used for EnableWallMessages

The value is used as a boolean, but stored in an unsigned. It's exposed
with sd-bus default boolean handling which however expects a (signed)
int. Let's clear this up, and use "bool" for this everywhere in
non-local scope, and make sure that when we pass it to sd-bus we
properly pass an "int".
This commit is contained in:
Lennart Poettering
2022-02-16 22:56:47 +01:00
parent 3414394e0b
commit 81bb3ca13c
2 changed files with 5 additions and 5 deletions
+4 -4
View File
@@ -2058,10 +2058,10 @@ static int update_schedule_file(Manager *m) {
fprintf(f,
"USEC="USEC_FMT"\n"
"WARN_WALL=%i\n"
"WARN_WALL=%s\n"
"MODE=%s\n",
m->scheduled_shutdown_timeout,
m->enable_wall_messages,
one_zero(m->enable_wall_messages),
handle_action_to_string(m->scheduled_shutdown_type->handle));
if (!isempty(m->wall_message)) {
@@ -3116,7 +3116,7 @@ static int method_set_wall_message(
int r;
Manager *m = userdata;
char *wall_message;
unsigned enable_wall_messages;
int enable_wall_messages;
assert(message);
assert(m);
@@ -3277,7 +3277,7 @@ static int method_inhibit(sd_bus_message *message, void *userdata, sd_bus_error
static const sd_bus_vtable manager_vtable[] = {
SD_BUS_VTABLE_START(0),
SD_BUS_WRITABLE_PROPERTY("EnableWallMessages", "b", NULL, NULL, offsetof(Manager, enable_wall_messages), 0),
SD_BUS_WRITABLE_PROPERTY("EnableWallMessages", "b", bus_property_get_bool, bus_property_set_bool, offsetof(Manager, enable_wall_messages), 0),
SD_BUS_WRITABLE_PROPERTY("WallMessage", "s", NULL, NULL, offsetof(Manager, wall_message), 0),
SD_BUS_PROPERTY("NAutoVTs", "u", NULL, offsetof(Manager, n_autovts), SD_BUS_VTABLE_PROPERTY_CONST),
+1 -1
View File
@@ -87,7 +87,7 @@ struct Manager {
bool unlink_nologin;
char *wall_message;
unsigned enable_wall_messages;
bool enable_wall_messages;
sd_event_source *wall_message_timeout_source;
bool shutdown_dry_run;