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
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 (> 0), where the user is currently
+ online but possibly inactive (= 0), or
+ logged in at all but possibly closing the session (< 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
}
_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) {