summaryrefslogtreecommitdiff
path: root/src/update-utmp
diff options
context:
space:
mode:
authorSven Eden <yamakuzure@gmx.net>2018-06-19 23:32:59 +0200
committerSven Eden <yamakuzure@gmx.net>2018-06-29 07:12:51 +0200
commit4f703de664738f58bc92834f2cd75234254eb07f (patch)
treeb24763391a964c0827ccf79f09b3727a82a43c7d /src/update-utmp
parentf126109b3cdd134469fb1d976e81f943c90a8d4f (diff)
Fix accidental dbus closing in update_utmp() (#50)
When updating utmp on reboot and poweroff, the managers dbus connection was copied and then closed and invalidated. As the utmp update in elogind does not need a dbus connection at all, the copying and the closing was removed. This fixes elogind to become unresponsive when calling for poweroff, halt or reboot. Closes: #50
Diffstat (limited to 'src/update-utmp')
-rw-r--r--src/update-utmp/update-utmp.c7
-rw-r--r--src/update-utmp/update-utmp.h2
2 files changed, 4 insertions, 5 deletions
diff --git a/src/update-utmp/update-utmp.c b/src/update-utmp/update-utmp.c
index 0111dc6a0..2bd55a33c 100644
--- a/src/update-utmp/update-utmp.c
+++ b/src/update-utmp/update-utmp.c
@@ -237,7 +237,7 @@ static int on_runlevel(Context *c) {
#if 0 /// elogind needs this to be a callable function
int main(int argc, char *argv[]) {
#else
-void update_utmp(int argc, char* argv[], sd_bus *bus) {
+void update_utmp(int argc, char* argv[]) {
#endif // 0
Context c = {
#if HAVE_AUDIT
@@ -265,7 +265,6 @@ void update_utmp(int argc, char* argv[], sd_bus *bus) {
#else
assert(2 == argc);
assert(argv[1]);
- assert(bus);
#endif // 0
#if HAVE_AUDIT
@@ -300,7 +299,6 @@ void update_utmp(int argc, char* argv[], sd_bus *bus) {
finish:
#else
- c.bus = bus;
if (streq(argv[1], "reboot"))
(void)on_reboot(&c);
else if (streq(argv[1], "shutdown"))
@@ -311,8 +309,9 @@ finish:
audit_close(c.audit_fd);
#endif
- sd_bus_flush_close_unref(c.bus);
#if 0 /// UNNEEDED by elogind
+ sd_bus_flush_close_unref(c.bus);
+
return r < 0 ? EXIT_FAILURE : EXIT_SUCCESS;
#endif // 0
}
diff --git a/src/update-utmp/update-utmp.h b/src/update-utmp/update-utmp.h
index 7d7d43101..97b046e7e 100644
--- a/src/update-utmp/update-utmp.h
+++ b/src/update-utmp/update-utmp.h
@@ -6,7 +6,7 @@
* Make the old main() from update-utmp.c visible as update_utmp() *
******************************************************************/
-void update_utmp(int argc, char* argv[], sd_bus *bus);
+void update_utmp(int argc, char* argv[]);
#endif // ELOGIND_SRC_UPDATE_UTMP_UPDATE_UTMP_H_INCLUDED