chiark / gitweb /
login: reshuffle meaning of require_active parameter
authorLennart Poettering <lennart@poettering.net>
Wed, 12 Sep 2012 06:30:35 +0000 (08:30 +0200)
committerLennart Poettering <lennart@poettering.net>
Wed, 12 Sep 2012 06:30:35 +0000 (08:30 +0200)
man/sd_uid_get_state.xml
src/login/sd-login.c

index b9b713c64e9e508fd6c5af810a67216cde243070..183e8a600aae552260efff0aabd55b2659ceaec1 100644 (file)
                 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 (&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
index 88dd510870015952a0a46b9112afbbcb25737c74..82fe2ce3e338b744fa043f1e2a2162df60ca5410 100644 (file)
@@ -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) {