sd-login.h | sd-login.h | |||
---|---|---|---|---|
skipping to change at line 35 | skipping to change at line 35 | |||
#include <sys/types.h> | #include <sys/types.h> | |||
/* | /* | |||
* A few points: | * A few points: | |||
* | * | |||
* Instead of returning an empty string array or empty uid array, we | * Instead of returning an empty string array or empty uid array, we | |||
* may return NULL. | * may return NULL. | |||
* | * | |||
* Free the data we return with libc free(). | * Free the data we return with libc free(). | |||
* | * | |||
* We return error codes as negative errno, kernel-style. | * We return error codes as negative errno, kernel-style. 0 or | |||
* positive on success. | ||||
* | * | |||
* These functions access data in /proc, /sys/fs/cgroup and /run. All | * These functions access data in /proc, /sys/fs/cgroup and /run. All | |||
* of these are virtual file systems, hence the accesses are | * of these are virtual file systems, hence the accesses are | |||
* relatively cheap. | * relatively cheap. | |||
*/ | */ | |||
/* Get session from PID. Note that 'shared' processes of a user are | /* Get session from PID. Note that 'shared' processes of a user are | |||
* not attached to a session, but only attached to a user. This will | * not attached to a session, but only attached to a user. This will | |||
* return an error for system processes and 'shared' processes of a | * return an error for system processes and 'shared' processes of a | |||
* user. */ | * user. */ | |||
skipping to change at line 62 | skipping to change at line 63 | |||
* return an error for system processes. */ | * return an error for system processes. */ | |||
int sd_pid_get_owner_uid(pid_t pid, uid_t *uid); | int sd_pid_get_owner_uid(pid_t pid, uid_t *uid); | |||
/* Get state from uid. Possible states: offline, lingering, online, active */ | /* Get state from uid. Possible states: offline, lingering, online, active */ | |||
int sd_uid_get_state(uid_t uid, char**state); | int sd_uid_get_state(uid_t uid, char**state); | |||
/* Return 1 if uid has session on seat. If require_active is true will | /* Return 1 if uid has session on seat. If require_active is true will | |||
* look for active sessions only. */ | * look for active sessions only. */ | |||
int sd_uid_is_on_seat(uid_t uid, int require_active, const char *seat); | int sd_uid_is_on_seat(uid_t uid, int require_active, const char *seat); | |||
/* Return sessions of user. If require_active is true will look | /* Return sessions of user. If require_active is true will look for | |||
* for active sessions only. */ | * active sessions only. Returns number of sessions as return | |||
* value. If sessions is NULL will just return number of sessions. */ | ||||
int sd_uid_get_sessions(uid_t uid, int require_active, char ***sessions); | int sd_uid_get_sessions(uid_t uid, int require_active, char ***sessions); | |||
/* Return seats of user is on. If require_active is true will look for | /* Return seats of user is on. If require_active is true will look for | |||
* active seats only. */ | * active seats only. Returns number of seats. If seats is NULL will | |||
* just return number of seats.*/ | ||||
int sd_uid_get_seats(uid_t uid, int require_active, char ***seats); | int sd_uid_get_seats(uid_t uid, int require_active, char ***seats); | |||
/* Return 1 if the session is a active */ | /* Return 1 if the session is a active */ | |||
int sd_session_is_active(const char *session); | int sd_session_is_active(const char *session); | |||
/* Determine user id of session */ | /* Determine user id of session */ | |||
int sd_session_get_uid(const char *session, uid_t *uid); | int sd_session_get_uid(const char *session, uid_t *uid); | |||
/* Determine seat of session */ | /* Determine seat of session */ | |||
int sd_session_get_seat(const char *session, char **seat); | int sd_session_get_seat(const char *session, char **seat); | |||
/* Return active session and user of seat */ | /* Return active session and user of seat */ | |||
int sd_seat_get_active(const char *seat, char **session, uid_t *uid); | int sd_seat_get_active(const char *seat, char **session, uid_t *uid); | |||
/* Return sessions and users on seat */ | /* Return sessions and users on seat. Returns number of sessions as | |||
* return value. If sessions is NULL returs only the number of | ||||
* sessions. */ | ||||
int sd_seat_get_sessions(const char *seat, char ***sessions, uid_t **uid, u nsigned *n_uids); | int sd_seat_get_sessions(const char *seat, char ***sessions, uid_t **uid, u nsigned *n_uids); | |||
/* Return whether the seat is multi-session capable */ | /* Return whether the seat is multi-session capable */ | |||
int sd_seat_can_multi_session(const char *seat); | int sd_seat_can_multi_session(const char *seat); | |||
/* Get all seats */ | /* Get all seats, store in *seats. Returns the number of seats. If | |||
* seats is NULL only returns number of seats. */ | ||||
int sd_get_seats(char ***seats); | int sd_get_seats(char ***seats); | |||
/* Get all sessions */ | /* Get all sessions, store in *seessions. Returns the number of | |||
* sessions. If sessions is NULL only returns number of sessions. */ | ||||
int sd_get_sessions(char ***sessions); | int sd_get_sessions(char ***sessions); | |||
/* Get all logged in users */ | /* Get all logged in users, store in *users. Returns the number of | |||
* users. If users is NULL only returns the number of users. */ | ||||
int sd_get_uids(uid_t **users); | int sd_get_uids(uid_t **users); | |||
/* Monitor object */ | /* Monitor object */ | |||
typedef struct sd_login_monitor sd_login_monitor; | typedef struct sd_login_monitor sd_login_monitor; | |||
/* Create a new monitor. Category must be NULL, "seat", "session", | /* Create a new monitor. Category must be NULL, "seat", "session", | |||
* "uid" to get monitor events for the specific category (or all). */ | * "uid" to get monitor events for the specific category (or all). */ | |||
int sd_login_monitor_new(const char *category, sd_login_monitor** ret); | int sd_login_monitor_new(const char *category, sd_login_monitor** ret); | |||
/* Destroys the passed monitor. Returns NULL. */ | /* Destroys the passed monitor. Returns NULL. */ | |||
End of changes. 7 change blocks. | ||||
8 lines changed or deleted | 16 lines changed or added | |||