chiark / gitweb /
Prep v234: Re-add user/session to the gc_queue when stopping.
[elogind.git] / src / login / logind-dbus.c
index 971b447a7cacef640fdac75a0eb4f59f59b4218c..70d2b1ffc0f9c463f3d0c14c500be2857eba788b 100644 (file)
@@ -69,6 +69,9 @@ int manager_get_session_from_creds(Manager *m, sd_bus_message *message, const ch
                         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;
         }
@@ -1390,7 +1393,6 @@ static int method_flush_devices(sd_bus_message *message, void *userdata, sd_bus_
         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) {
@@ -1410,6 +1412,7 @@ static int have_multiple_sessions(
         return false;
 }
 
+#if 0 /// elogind has its own variant in elogind-dbus.c
 static int bus_manager_log_shutdown(
                 Manager *m,
                 InhibitWhat w,
@@ -1604,8 +1607,13 @@ int manager_dispatch_delayed(Manager *manager, bool timeout) {
 
         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) {
@@ -1620,6 +1628,7 @@ static int manager_inhibit_timeout_handler(
         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,
@@ -1655,8 +1664,13 @@ static int delay_shutdown_or_sleep(
 
         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",
@@ -1678,6 +1692,7 @@ static int send_prepare_for(Manager *m, InhibitWhat w, bool _active) {
                                   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,
@@ -1714,8 +1729,13 @@ int bus_manager_shutdown_or_sleep_now_or_later(
 
         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,
@@ -1777,6 +1797,7 @@ static int verify_shutdown_creds(
         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,