#include "escape.h"
#include "fd-util.h"
#include "fileio-label.h"
-#include "formats-util.h"
+#include "format-util.h"
#include "fs-util.h"
#include "logind.h"
#include "mkdir.h"
return r;
r = sd_bus_creds_get_session(creds, &name);
+ if (r == -ENXIO)
+ return sd_bus_error_setf(error, BUS_ERROR_NO_SESSION_FOR_PID,
+ "Caller does not belong to any known session");
if (r < 0)
return r;
}
} else {
struct dirent *de;
- while ((de = readdir(d))) {
-
+ FOREACH_DIRENT_ALL(de, d, break) {
if (!dirent_is_file(de))
continue;
return sd_bus_reply_method_return(message, NULL);
}
-#if 0 /// elogind has its own variant in elogind-dbus.c
static int have_multiple_sessions(
Manager *m,
uid_t uid) {
return false;
}
+#if 0 /// elogind has its own variant in elogind-dbus.c
static int bus_manager_log_shutdown(
Manager *m,
InhibitWhat w,
p = strjoina(p, " (", m->wall_message, ").");
return log_struct(LOG_NOTICE,
- LOG_MESSAGE_ID(SD_MESSAGE_SHUTDOWN),
+ "MESSAGE_ID=" SD_MESSAGE_SHUTDOWN_STR,
p,
q,
NULL);
return 1;
}
+#endif // 0
+#if 0 /// elogind-dbus.c needs to access this
static int manager_inhibit_timeout_handler(
+#else
+int manager_inhibit_timeout_handler(
+#endif // 0
sd_event_source *s,
uint64_t usec,
void *userdata) {
return (r < 0) ? r : 0;
}
+#if 0 /// elogind has its own variant in elogind-dbus.c
static int delay_shutdown_or_sleep(
Manager *m,
InhibitWhat w,
return 0;
}
+#endif // 0
+#if 0 /// elogind-dbus.c needs to access this
static int send_prepare_for(Manager *m, InhibitWhat w, bool _active) {
+#else
+int send_prepare_for(Manager *m, InhibitWhat w, bool _active) {
+#endif // 0
static const char * const signal_name[_INHIBIT_WHAT_MAX] = {
[INHIBIT_SHUTDOWN] = "PrepareForShutdown",
active);
}
+#if 0 /// elogind has its own variant in elogind-dbus.c
int bus_manager_shutdown_or_sleep_now_or_later(
Manager *m,
const char *unit_name,
return r;
}
+#endif // 0
+#if 0 /// elogind-dbus.c needs to access this
static int verify_shutdown_creds(
+#else
+int verify_shutdown_creds(
+#endif // 0
Manager *m,
sd_bus_message *message,
InhibitWhat w,
return 0;
}
+#if 0 /// elogind has its own variant in elogind-dbus.c
static int method_do_shutdown_or_sleep(
Manager *m,
sd_bus_message *message,
return 1; /* Will call us back */
#endif // 0
- if (isempty(wall_message))
- m->wall_message = mfree(m->wall_message);
- else {
- r = free_and_strdup(&m->wall_message, wall_message);
- if (r < 0)
- return log_oom();
- }
+ r = free_and_strdup(&m->wall_message, empty_to_null(wall_message));
+ if (r < 0)
+ return log_oom();
m->enable_wall_messages = enable_wall_messages;