X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?a=blobdiff_plain;f=src%2Flogin%2Flogind-user.c;h=0aac3bcf52dc68d2d5890f4900c1d7aaab687661;hb=162255186046fa7a5e82859b7dba5a7909ce6fc4;hp=539c316ad665cc8f6ec164872cb0c7773498d3ef;hpb=6f5035f2db6ab7b4beae46c44b95e6a8b6d956b5;p=elogind.git diff --git a/src/login/logind-user.c b/src/login/logind-user.c index 539c316ad..0aac3bcf5 100644 --- a/src/login/logind-user.c +++ b/src/login/logind-user.c @@ -562,10 +562,18 @@ UserState user_get_state(User *u) { } int user_kill(User *u, int signo) { + Session *s; + int res = 0; + assert(u); - /* FIXME: No way to kill a user without systemd. */ - return -ESRCH; + LIST_FOREACH(sessions_by_user, s, u->sessions) { + int r = session_kill(s, KILL_ALL, signo); + if (res == 0 && r < 0) + res = r; + } + + return res; } void user_elect_display(User *u) {