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 33188294a955cf65eae0dbb97182b1662658a45b..e10e421d43ff3e8ad73f7deb3721dcf7cc3e7e5d 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 a9107cb95f552a77cad4c9e7b95ead62f78d7964..ab48b9efc2458defe3d7b44f91b87a933fb3ee4e 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 ff51be729bf1849b3c6ce09548c8f3143a4da302..272b0e2b5201be0bfafa72bf14b0c7d37b12796e 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 45e3bb8dcd07c03451f106d235bfe8ee96f64b45..4bc51e71a253ab4fea5fbcf8528ccb9b87868369 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 6bd1f2da4a77203f66f8cf8495dec9b4cdbfb161..3746b45cf36500abdcfd9a6f187bd477c8498289 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);