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_class.3 \
man/sd_session_get_display.3 \
man/sd_session_get_tty.3 \
man/sd_pid_get_owner_uid.3 \
man/sd_pid_get_unit.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_class.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_unit.3: man/sd_pid_get_session.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_class</refname>
<refname>sd_session_get_display</refname>
<refname>sd_session_get_tty</refname>
<refpurpose>Determine state of a specific session</refpurpose>
</refnamediv>
@ -104,6 +105,12 @@
<paramdef>const char* <parameter>session</parameter></paramdef>
<paramdef>char** <parameter>display</parameter></paramdef>
</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>
</refsynopsisdiv>
@ -186,6 +193,14 @@
<citerefentry><refentrytitle>free</refentrytitle><manvolnum>3</manvolnum></citerefentry>
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
any of these functions is passed as NULL the operation
is executed for the session the calling process is a
@ -203,8 +218,9 @@
<function>sd_session_get_seat()</function>,
<function>sd_session_get_service()</function>,
<function>sd_session_get_type()</function>,
<function>sd_session_get_class()</function> and
<function>sd_session_get_display()</function> return 0 or
<function>sd_session_get_class()</function>,
<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
negative errno-style error code.</para>
</refsect1>
@ -218,10 +234,11 @@
<function>sd_session_get_seat()</function>,
<function>sd_session_get_service()</function>,
<function>sd_session_get_type()</function>,
<function>sd_session_get_class()</function> and
<function>sd_session_get_display()</function> interfaces
are available as shared library, which can be compiled
and linked to with the
<function>sd_session_get_class()</function>,
<function>sd_session_get_display()</function> and
<function>sd_session_get_tty()</function>
interfaces are available as shared library, which can
be compiled and linked to with the
<literal>libsystemd-login</literal>
<citerefentry><refentrytitle>pkg-config</refentrytitle><manvolnum>1</manvolnum></citerefentry>
file.</para>

View File

@ -53,3 +53,8 @@ global:
sd_seat_can_tty;
sd_seat_can_graphical;
} 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);
}
_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) {
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. */
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 */
int sd_seat_get_active(const char *seat, char **session, uid_t *uid);