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 @@
or active on a specific seat. Accepts a Unix user
identifier and a seat identifier string as
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
session that is in the foreground and accepting user
input) on the specified seat, otherwise (false) only
......@@ -122,13 +122,14 @@
be used to determine the current sessions of the
specified user. Acceptes a Unix user identifier as
parameter. The <parameter>require_active</parameter>
boolean parameter controls whether the returned list
shall consist of only those sessions where the user is
currently active (true) or where the user is currently
logged in at all, possibly inactive (false). The call
returns a NULL terminated string array of session
identifiers in <parameter>sessions</parameter> which
needs to be freed by the caller with the libc
parameter controls whether the returned list shall
consist of only those sessions where the user is
currently active (&gt; 0), where the user is currently
online but possibly inactive (= 0), or
logged in at all but possibly closing the session (&lt; 0). The call returns a
NULL terminated string array of session identifiers in
<parameter>sessions</parameter> which needs to be
freed by the caller with the libc
<citerefentry><refentrytitle>free</refentrytitle><manvolnum>3</manvolnum></citerefentry>
call after use, including all the strings
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) {
}
_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) {
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) {
......
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