Commit d18dff43 authored by Lennart Poettering's avatar Lennart Poettering
Browse files

login: reshuffle meaning of require_active parameter

parent 78ab361c
...@@ -111,7 +111,7 @@ ...@@ -111,7 +111,7 @@
or active on a specific seat. Accepts a Unix user or active on a specific seat. Accepts a Unix user
identifier and a seat identifier string as identifier and a seat identifier string as
parameters. The <parameter>require_active</parameter> parameters. The <parameter>require_active</parameter>
parameter is a boolean. If non-zero (true) this parameter is a boolean value. If non-zero (true) this
function will test if the user is active (i.e. has a function will test if the user is active (i.e. has a
session that is in the foreground and accepting user session that is in the foreground and accepting user
input) on the specified seat, otherwise (false) only input) on the specified seat, otherwise (false) only
...@@ -122,13 +122,14 @@ ...@@ -122,13 +122,14 @@
be used to determine the current sessions of the be used to determine the current sessions of the
specified user. Acceptes a Unix user identifier as specified user. Acceptes a Unix user identifier as
parameter. The <parameter>require_active</parameter> parameter. The <parameter>require_active</parameter>
boolean parameter controls whether the returned list parameter controls whether the returned list shall
shall consist of only those sessions where the user is consist of only those sessions where the user is
currently active (true) or where the user is currently currently active (&gt; 0), where the user is currently
logged in at all, possibly inactive (false). The call online but possibly inactive (= 0), or
returns a NULL terminated string array of session logged in at all but possibly closing the session (&lt; 0). The call returns a
identifiers in <parameter>sessions</parameter> which NULL terminated string array of session identifiers in
needs to be freed by the caller with the libc <parameter>sessions</parameter> which needs to be
freed by the caller with the libc
<citerefentry><refentrytitle>free</refentrytitle><manvolnum>3</manvolnum></citerefentry> <citerefentry><refentrytitle>free</refentrytitle><manvolnum>3</manvolnum></citerefentry>
call after use, including all the strings call after use, including all the strings
referenced. If the string array parameter is passed as referenced. If the string array parameter is passed as
......
...@@ -259,11 +259,21 @@ static int uid_get_array(uid_t uid, const char *variable, char ***array) { ...@@ -259,11 +259,21 @@ static int uid_get_array(uid_t uid, const char *variable, char ***array) {
} }
_public_ int sd_uid_get_sessions(uid_t uid, int require_active, char ***sessions) { _public_ int sd_uid_get_sessions(uid_t uid, int require_active, char ***sessions) {
return uid_get_array(uid, require_active == 2 ? "ONLINE_SESSIONS" : (require_active ? "ACTIVE_SESSIONS" : "SESSIONS"), sessions); return uid_get_array(
uid,
require_active == 0 ? "ONLINE_SESSIONS" :
require_active > 0 ? "ACTIVE_SESSIONS" :
"SESSIONS",
sessions);
} }
_public_ int sd_uid_get_seats(uid_t uid, int require_active, char ***seats) { _public_ int sd_uid_get_seats(uid_t uid, int require_active, char ***seats) {
return uid_get_array(uid, require_active == 2 ? "ONLINE_SEATS" : (require_active ? "ACTIVE_SEATS" : "SEATS"), seats); return uid_get_array(
uid,
require_active == 0 ? "ONLINE_SEATS" :
require_active > 0 ? "ACTIVE_SEATS" :
"SEATS",
seats);
} }
static int file_of_session(const char *session, char **_p) { static int file_of_session(const char *session, char **_p) {
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment