sd-login: add sd_session_get_start_time
This commit is contained in:
@@ -816,4 +816,5 @@ global:
|
||||
LIBSYSTEMD_254 {
|
||||
global:
|
||||
sd_session_get_username;
|
||||
sd_session_get_start_time;
|
||||
} LIBSYSTEMD_253;
|
||||
|
||||
@@ -750,6 +750,33 @@ _public_ int sd_session_get_seat(const char *session, char **seat) {
|
||||
return session_get_string(session, "SEAT", seat);
|
||||
}
|
||||
|
||||
_public_ int sd_session_get_start_time(const char *session, uint64_t *usec) {
|
||||
_cleanup_free_ char *p = NULL, *s = NULL;
|
||||
usec_t t;
|
||||
int r;
|
||||
|
||||
assert_return(usec, -EINVAL);
|
||||
|
||||
r = file_of_session(session, &p);
|
||||
if (r < 0)
|
||||
return r;
|
||||
|
||||
r = parse_env_file(NULL, p, "REALTIME", &s);
|
||||
if (r == -ENOENT)
|
||||
return -ENXIO;
|
||||
if (r < 0)
|
||||
return r;
|
||||
if (isempty(s))
|
||||
return -EIO;
|
||||
|
||||
r = safe_atou64(s, &t);
|
||||
if (r < 0)
|
||||
return r;
|
||||
|
||||
*usec = t;
|
||||
return 0;
|
||||
}
|
||||
|
||||
_public_ int sd_session_get_tty(const char *session, char **tty) {
|
||||
return session_get_string(session, "TTY", tty);
|
||||
}
|
||||
|
||||
@@ -163,6 +163,9 @@ int sd_session_get_username(const char *session, char **username);
|
||||
/* Determine seat of session */
|
||||
int sd_session_get_seat(const char *session, char **seat);
|
||||
|
||||
/* Determine the start time of session */
|
||||
int sd_session_get_start_time(const char *session, uint64_t *usec);
|
||||
|
||||
/* Determine the (PAM) service name this session was registered by. */
|
||||
int sd_session_get_service(const char *session, char **service);
|
||||
|
||||
|
||||
Reference in New Issue
Block a user