chiark / gitweb /
sd-login: add a public accessor for the VT number
authorGiovanni Campagna <gcampagn@redhat.com>
Wed, 11 Sep 2013 16:48:20 +0000 (18:48 +0200)
committerLennart Poettering <lennart@poettering.net>
Wed, 11 Sep 2013 17:08:20 +0000 (19:08 +0200)
The VT number was already part of the DBus API, but was not
exposed in the C API.

Makefile-man.am
man/sd_session_is_active.xml
src/login/libsystemd-login.sym
src/login/sd-login.c
src/systemd/sd-login.h

index 1c264fa3fb6cb44f92337717eb0337956c54d210..1f635956e2fcfe76a63f85c60b4ee5104f77f873 100644 (file)
@@ -854,6 +854,7 @@ MANPAGES_ALIAS += \
        man/sd_session_get_tty.3 \
        man/sd_session_get_type.3 \
        man/sd_session_get_uid.3 \
        man/sd_session_get_tty.3 \
        man/sd_session_get_type.3 \
        man/sd_session_get_uid.3 \
+       man/sd_session_get_vt.3 \
        man/sd_uid_get_seats.3 \
        man/sd_uid_get_sessions.3 \
        man/sd_uid_is_on_seat.3 \
        man/sd_uid_get_seats.3 \
        man/sd_uid_get_sessions.3 \
        man/sd_uid_is_on_seat.3 \
@@ -882,6 +883,7 @@ man/sd_session_get_state.3: man/sd_session_is_active.3
 man/sd_session_get_tty.3: man/sd_session_is_active.3
 man/sd_session_get_type.3: man/sd_session_is_active.3
 man/sd_session_get_uid.3: man/sd_session_is_active.3
 man/sd_session_get_tty.3: man/sd_session_is_active.3
 man/sd_session_get_type.3: man/sd_session_is_active.3
 man/sd_session_get_uid.3: man/sd_session_is_active.3
+man/sd_session_get_vt.3: man/sd_session_is_active.3
 man/sd_uid_get_seats.3: man/sd_uid_get_state.3
 man/sd_uid_get_sessions.3: man/sd_uid_get_state.3
 man/sd_uid_is_on_seat.3: man/sd_uid_get_state.3
 man/sd_uid_get_seats.3: man/sd_uid_get_state.3
 man/sd_uid_get_sessions.3: man/sd_uid_get_state.3
 man/sd_uid_is_on_seat.3: man/sd_uid_get_state.3
@@ -958,6 +960,9 @@ man/sd_session_get_type.html: man/sd_session_is_active.html
 man/sd_session_get_uid.html: man/sd_session_is_active.html
        $(html-alias)
 
 man/sd_session_get_uid.html: man/sd_session_is_active.html
        $(html-alias)
 
+man/sd_session_get_vt.html: man/sd_session_is_active.html
+       $(html-alias)
+
 man/sd_uid_get_seats.html: man/sd_uid_get_state.html
        $(html-alias)
 
 man/sd_uid_get_seats.html: man/sd_uid_get_state.html
        $(html-alias)
 
index e89117d990a1314f9fda5a8ace15957397518426..9362fbcc55e7a916a1d8b82e3a3cbc53d1cf28d2 100644 (file)
@@ -52,6 +52,7 @@
                 <refname>sd_session_get_class</refname>
                 <refname>sd_session_get_display</refname>
                 <refname>sd_session_get_tty</refname>
                 <refname>sd_session_get_class</refname>
                 <refname>sd_session_get_display</refname>
                 <refname>sd_session_get_tty</refname>
+                <refname>sd_session_get_vt</refname>
                 <refpurpose>Determine state of a specific session</refpurpose>
         </refnamediv>
 
                 <refpurpose>Determine state of a specific session</refpurpose>
         </refnamediv>
 
                                 <paramdef>const char* <parameter>session</parameter></paramdef>
                                 <paramdef>char** <parameter>tty</parameter></paramdef>
                         </funcprototype>
                                 <paramdef>const char* <parameter>session</parameter></paramdef>
                                 <paramdef>char** <parameter>tty</parameter></paramdef>
                         </funcprototype>
+
+                        <funcprototype>
+                                <funcdef>int <function>sd_session_get_vt</function></funcdef>
+                                <paramdef>const char* <parameter>session</parameter></paramdef>
+                                <paramdef>unsigned* <parameter>vt</parameter></paramdef>
+                        </funcprototype>
                 </funcsynopsis>
         </refsynopsisdiv>
 
                 </funcsynopsis>
         </refsynopsisdiv>
 
                 <citerefentry><refentrytitle>free</refentrytitle><manvolnum>3</manvolnum></citerefentry>
                 call after use.</para>
 
                 <citerefentry><refentrytitle>free</refentrytitle><manvolnum>3</manvolnum></citerefentry>
                 call after use.</para>
 
+                <para><function>sd_session_get_vt()</function>
+                may be used to determine the VT number of the
+                session identified by the specified session
+                identifier. This function will return an error if
+                the seat does not support VTs.</para>
+
                 <para>If the <varname>session</varname> parameter of
                 any of these functions is passed as
                 <constant>NULL</constant> the operation is executed
                 <para>If the <varname>session</varname> parameter of
                 any of these functions is passed as
                 <constant>NULL</constant> the operation is executed
index 0720704dbfa59a06811a99f7eccb9552e87c4978..54aa91c609e07c4a2f2d93da01a62b63e7a64639 100644 (file)
@@ -80,3 +80,8 @@ LIBSYSTEMD_LOGIN_205 {
 global:
         sd_pid_get_slice;
 } LIBSYSTEMD_LOGIN_203;
 global:
         sd_pid_get_slice;
 } LIBSYSTEMD_LOGIN_203;
+
+LIBSYSTEMD_LOGIN_207 {
+global:
+        sd_session_get_vt;
+} LIBSYSTEMD_LOGIN_205;
index 06587921cd2864ca7fc59a9ad9c835d34a7bc276..8a7838d566ed84cc556607cba3fcf0939356f34e 100644 (file)
@@ -347,6 +347,23 @@ _public_ int sd_session_get_tty(const char *session, char **tty) {
         return session_get_string(session, "TTY", tty);
 }
 
         return session_get_string(session, "TTY", tty);
 }
 
+_public_ int sd_session_get_vt(const char *session, unsigned *vtnr) {
+        _cleanup_free_ char *vtnr_string;
+        unsigned u;
+        int r;
+
+        r = session_get_string(session, "VTNr", &vtnr_string);
+        if (r < 0)
+                return r;
+
+        r = safe_atou(vtnr_string, &u);
+        if (r < 0)
+                return r;
+
+        *vtnr = u;
+        return 0;
+}
+
 _public_ int sd_session_get_service(const char *session, char **service) {
         return session_get_string(session, "SERVICE", service);
 }
 _public_ int sd_session_get_service(const char *session, char **service) {
         return session_get_string(session, "SERVICE", service);
 }
index e37aeda2bb7c0f78dd26eeea23b7b0e948927be6..c5837f0ca0e8e383ebab29829d2887688f8dedfc 100644 (file)
@@ -124,6 +124,9 @@ 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);
 
 /* Determine the TTY of this session. */
 int sd_session_get_tty(const char *session, char **display);
 
+/* Determine the VT number of this session. */
+int sd_session_get_vt(const char *session, unsigned *vtnr);
+
 /* Return active session and user of seat */
 int sd_seat_get_active(const char *seat, char **session, uid_t *uid);
 
 /* Return active session and user of seat */
 int sd_seat_get_active(const char *seat, char **session, uid_t *uid);