1
0
mirror of https://github.com/systemd/systemd.git synced 2025-09-17 21:45:23 +03:00

login: introduce sd_session_get_tty()

This commit is contained in:
Lennart Poettering
2013-01-15 03:00:33 +01:00
parent dd04aac97f
commit c84f5e4a82
5 changed files with 37 additions and 6 deletions

View File

@@ -3690,6 +3690,7 @@ MANPAGES_ALIAS += \
man/sd_session_get_type.3 \ man/sd_session_get_type.3 \
man/sd_session_get_class.3 \ man/sd_session_get_class.3 \
man/sd_session_get_display.3 \ man/sd_session_get_display.3 \
man/sd_session_get_tty.3 \
man/sd_pid_get_owner_uid.3 \ man/sd_pid_get_owner_uid.3 \
man/sd_pid_get_unit.3 \ man/sd_pid_get_unit.3 \
man/sd_uid_is_on_seat.3 \ man/sd_uid_is_on_seat.3 \
@@ -3714,6 +3715,7 @@ man/sd_session_get_state.3: man/sd_session_is_active.3
man/sd_session_get_type.3: man/sd_session_is_active.3 man/sd_session_get_type.3: man/sd_session_is_active.3
man/sd_session_get_class.3: man/sd_session_is_active.3 man/sd_session_get_class.3: man/sd_session_is_active.3
man/sd_session_get_display.3: man/sd_session_is_active.3 man/sd_session_get_display.3: man/sd_session_is_active.3
man/sd_session_get_tty.3: man/sd_session_is_active.3
man/sd_pid_get_owner_uid.3: man/sd_pid_get_session.3 man/sd_pid_get_owner_uid.3: man/sd_pid_get_session.3
man/sd_pid_get_unit.3: man/sd_pid_get_session.3 man/sd_pid_get_unit.3: man/sd_pid_get_session.3
man/sd_uid_is_on_seat.3: man/sd_uid_get_state.3 man/sd_uid_is_on_seat.3: man/sd_uid_get_state.3

View File

@@ -51,6 +51,7 @@
<refname>sd_session_get_type</refname> <refname>sd_session_get_type</refname>
<refname>sd_session_get_class</refname> <refname>sd_session_get_class</refname>
<refname>sd_session_get_display</refname> <refname>sd_session_get_display</refname>
<refname>sd_session_get_tty</refname>
<refpurpose>Determine state of a specific session</refpurpose> <refpurpose>Determine state of a specific session</refpurpose>
</refnamediv> </refnamediv>
@@ -104,6 +105,12 @@
<paramdef>const char* <parameter>session</parameter></paramdef> <paramdef>const char* <parameter>session</parameter></paramdef>
<paramdef>char** <parameter>display</parameter></paramdef> <paramdef>char** <parameter>display</parameter></paramdef>
</funcprototype> </funcprototype>
<funcprototype>
<funcdef>int <function>sd_session_get_tty</function></funcdef>
<paramdef>const char* <parameter>session</parameter></paramdef>
<paramdef>char** <parameter>tty</parameter></paramdef>
</funcprototype>
</funcsynopsis> </funcsynopsis>
</refsynopsisdiv> </refsynopsisdiv>
@@ -186,6 +193,14 @@
<citerefentry><refentrytitle>free</refentrytitle><manvolnum>3</manvolnum></citerefentry> <citerefentry><refentrytitle>free</refentrytitle><manvolnum>3</manvolnum></citerefentry>
call after use.</para> call after use.</para>
<para><function>sd_session_get_tty()</function>
may be used to determine the TTY device of the
session identified by the specified session
identifier. The returned string is one of needs to be
freed with the libc
<citerefentry><refentrytitle>free</refentrytitle><manvolnum>3</manvolnum></citerefentry>
call after use.</para>
<para>If the <literal>session</literal> parameter of <para>If the <literal>session</literal> parameter of
any of these functions is passed as NULL the operation any of these functions is passed as NULL the operation
is executed for the session the calling process is a is executed for the session the calling process is a
@@ -203,8 +218,9 @@
<function>sd_session_get_seat()</function>, <function>sd_session_get_seat()</function>,
<function>sd_session_get_service()</function>, <function>sd_session_get_service()</function>,
<function>sd_session_get_type()</function>, <function>sd_session_get_type()</function>,
<function>sd_session_get_class()</function> and <function>sd_session_get_class()</function>,
<function>sd_session_get_display()</function> return 0 or <function>sd_session_get_display()</function> and
<function>sd_session_get_tty()</function> return 0 or
a positive integer. On failure, these calls return a a positive integer. On failure, these calls return a
negative errno-style error code.</para> negative errno-style error code.</para>
</refsect1> </refsect1>
@@ -218,10 +234,11 @@
<function>sd_session_get_seat()</function>, <function>sd_session_get_seat()</function>,
<function>sd_session_get_service()</function>, <function>sd_session_get_service()</function>,
<function>sd_session_get_type()</function>, <function>sd_session_get_type()</function>,
<function>sd_session_get_class()</function> and <function>sd_session_get_class()</function>,
<function>sd_session_get_display()</function> interfaces <function>sd_session_get_display()</function> and
are available as shared library, which can be compiled <function>sd_session_get_tty()</function>
and linked to with the interfaces are available as shared library, which can
be compiled and linked to with the
<literal>libsystemd-login</literal> <literal>libsystemd-login</literal>
<citerefentry><refentrytitle>pkg-config</refentrytitle><manvolnum>1</manvolnum></citerefentry> <citerefentry><refentrytitle>pkg-config</refentrytitle><manvolnum>1</manvolnum></citerefentry>
file.</para> file.</para>

View File

@@ -53,3 +53,8 @@ global:
sd_seat_can_tty; sd_seat_can_tty;
sd_seat_can_graphical; sd_seat_can_graphical;
} LIBSYSTEMD_LOGIN_43; } LIBSYSTEMD_LOGIN_43;
LIBSYSTEMD_LOGIN_198 {
global:
sd_session_get_tty;
} LIBSYSTEMD_LOGIN_186;

View File

@@ -409,6 +409,10 @@ _public_ int sd_session_get_seat(const char *session, char **seat) {
return session_get_string(session, "SEAT", seat); return session_get_string(session, "SEAT", seat);
} }
_public_ int sd_session_get_tty(const char *session, char **tty) {
return session_get_string(session, "TTY", tty);
}
_public_ int sd_session_get_service(const char *session, char **service) { _public_ int sd_session_get_service(const char *session, char **service) {
return session_get_string(session, "SERVICE", service); return session_get_string(session, "SERVICE", service);
} }

View File

@@ -108,6 +108,9 @@ int sd_session_get_class(const char *session, char **clazz);
/* Determine the X11 display of this session. */ /* Determine the X11 display of this session. */
int sd_session_get_display(const char *session, char **display); int sd_session_get_display(const char *session, char **display);
/* Determine the TTY of this session. */
int sd_session_get_tty(const char *session, char **display);
/* 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);