chiark / gitweb /
login: introduce sd_session_get_tty()
authorLennart Poettering <lennart@poettering.net>
Tue, 15 Jan 2013 02:00:33 +0000 (03:00 +0100)
committerLennart Poettering <lennart@poettering.net>
Tue, 15 Jan 2013 02:01:35 +0000 (03:01 +0100)
Makefile.am
man/sd_session_is_active.xml
src/login/libsystemd-login.sym
src/login/sd-login.c
src/systemd/sd-login.h

index 3318829..e10e421 100644 (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
index a9107cb..ab48b9e 100644 (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>
 
                                 <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>
 
                 <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
                 <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>
                 <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>
index ff51be7..272b0e2 100644 (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;
index 45e3bb8..4bc51e7 100644 (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);
 }
index 6bd1f2d..3746b45 100644 (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);