sd-login: add sd_session_get_username

This commit is contained in:
Mike Yuan
2023-02-24 00:48:10 +08:00
parent f1e1614e10
commit d71f5b1217
4 changed files with 27 additions and 0 deletions

View File

@@ -21,6 +21,7 @@
<refname>sd_session_is_remote</refname>
<refname>sd_session_get_state</refname>
<refname>sd_session_get_uid</refname>
<refname>sd_session_get_username</refname>
<refname>sd_session_get_seat</refname>
<refname>sd_session_get_service</refname>
<refname>sd_session_get_type</refname>
@@ -60,6 +61,12 @@
<paramdef>uid_t *<parameter>uid</parameter></paramdef>
</funcprototype>
<funcprototype>
<funcdef>int <function>sd_session_get_username</function></funcdef>
<paramdef>const char *<parameter>session</parameter></paramdef>
<paramdef>char **<parameter>username</parameter></paramdef>
</funcprototype>
<funcprototype>
<funcdef>int <function>sd_session_get_seat</function></funcdef>
<paramdef>const char *<parameter>session</parameter></paramdef>
@@ -155,6 +162,13 @@
determine the user identifier of the Unix user the session
identified by the specified session identifier belongs to.</para>
<para><function>sd_session_get_username()</function> may be used to
determine the name of the Unix user the session identified by
the specified session identifier belongs to. The returned string
needs to be freed with the libc
<citerefentry project='man-pages'><refentrytitle>free</refentrytitle><manvolnum>3</manvolnum></citerefentry>
call after use.</para>
<para><function>sd_session_get_seat()</function> may be used to
determine the seat identifier of the seat the session identified
by the specified session identifier belongs to. Note that not all
@@ -252,6 +266,7 @@
positive integer; if it fails, 0. On success,
<function>sd_session_get_state()</function>,
<function>sd_session_get_uid()</function>,
<function>sd_session_get_username()</function>,
<function>sd_session_get_seat()</function>,
<function>sd_session_get_service()</function>,
<function>sd_session_get_type()</function>,

View File

@@ -812,3 +812,8 @@ global:
sd_pidfd_get_user_unit;
sd_journal_get_seqnum;
} LIBSYSTEMD_252;
LIBSYSTEMD_254 {
global:
sd_session_get_username;
} LIBSYSTEMD_253;

View File

@@ -742,6 +742,10 @@ static int session_get_string(const char *session, const char *field, char **val
return 0;
}
_public_ int sd_session_get_username(const char *session, char **username) {
return session_get_string(session, "USER", username);
}
_public_ int sd_session_get_seat(const char *session, char **seat) {
return session_get_string(session, "SEAT", seat);
}

View File

@@ -157,6 +157,9 @@ int sd_session_get_state(const char *session, char **state);
/* Determine user ID of session */
int sd_session_get_uid(const char *session, uid_t *uid);
/* Determine username of session */
int sd_session_get_username(const char *session, char **username);
/* Determine seat of session */
int sd_session_get_seat(const char *session, char **seat);