[systemd-devel] [PATCH] Add Mir to the list of session types

Robert Ancell robert.ancell at canonical.com
Thu Apr 3 13:46:57 PDT 2014


Add Mir to the list of session types. This is implemented for LightDM
in lp:~robert-ancell/lightdm/xdg-session-desktop [1].

[1] https://code.launchpad.net/~robert-ancell/lightdm/xdg-session-desktop/+merge/214108

---
 man/pam_systemd.xml          | 5 +++--
 man/sd_session_is_active.xml | 6 +++---
 src/login/logind-session.c   | 1 +
 src/login/logind-session.h   | 1 +
 src/systemd/sd-login.h       | 2 +-
 5 files changed, 9 insertions(+), 6 deletions(-)

diff --git a/man/pam_systemd.xml b/man/pam_systemd.xml
index 3022cdb..f973899 100644
--- a/man/pam_systemd.xml
+++ b/man/pam_systemd.xml
@@ -145,8 +145,9 @@
                                 variable takes precedence. One of
                                 <literal>unspecified</literal>,
                                 <literal>tty</literal>,
-                                <literal>x11</literal> or
-                                <literal>wayland</literal>. See
+                                <literal>x11</literal>,
+                                <literal>wayland</literal> or
+                                <literal>mir</literal>. See

<citerefentry><refentrytitle>sd_session_get_type</refentrytitle><manvolnum>3</manvolnum></citerefentry>
                                 for details about the session
type.</para></listitem>
                         </varlistentry>
diff --git a/man/sd_session_is_active.xml b/man/sd_session_is_active.xml
index ddb2bee..8696f40 100644
--- a/man/sd_session_is_active.xml
+++ b/man/sd_session_is_active.xml
@@ -201,9 +201,9 @@
                 be used to determine the type of the session
                 identified by the specified session identifier. The
                 returned string is one of <literal>x11</literal>,
-                <literal>wayland</literal>, <literal>tty</literal> or
-                <literal>unspecified</literal> and needs to be freed
-                with the libc
+                <literal>wayland</literal>, <literal>mir</literal>,
+                <literal>tty</literal> or <literal>unspecified</literal> and
+                needs to be freed with the libc

<citerefentry><refentrytitle>free</refentrytitle><manvolnum>3</manvolnum></citerefentry>
                 call after use.</para>

diff --git a/src/login/logind-session.c b/src/login/logind-session.c
index 4ca6b5d..b4fd349 100644
--- a/src/login/logind-session.c
+++ b/src/login/logind-session.c
@@ -1117,6 +1117,7 @@ static const char* const
session_type_table[_SESSION_TYPE_MAX] = {
         [SESSION_TTY] = "tty",
         [SESSION_X11] = "x11",
         [SESSION_WAYLAND] = "wayland",
+        [SESSION_MIR] = "mir",
 };

 DEFINE_STRING_TABLE_LOOKUP(session_type, SessionType);
diff --git a/src/login/logind-session.h b/src/login/logind-session.h
index c9af5eb..7ecc9f0 100644
--- a/src/login/logind-session.h
+++ b/src/login/logind-session.h
@@ -55,6 +55,7 @@ typedef enum SessionType {
         SESSION_TTY,
         SESSION_X11,
         SESSION_WAYLAND,
+        SESSION_MIR,
         _SESSION_TYPE_MAX,
         _SESSION_TYPE_INVALID = -1
 } SessionType;
diff --git a/src/systemd/sd-login.h b/src/systemd/sd-login.h
index a4ca231..776733a 100644
--- a/src/systemd/sd-login.h
+++ b/src/systemd/sd-login.h
@@ -138,7 +138,7 @@ int sd_session_get_seat(const char *session, char **seat);
 /* Determine the (PAM) service name this session was registered by. */
 int sd_session_get_service(const char *session, char **service);

-/* Determine the type of this session, i.e. one of "tty", "x11" or
"unspecified". */
+/* Determine the type of this session, i.e. one of "tty", "x11",
"wayland", "mir" or "unspecified". */
 int sd_session_get_type(const char *session, char **type);

 /* Determine the class of this session, i.e. one of "user", "greeter"
or "lock-screen". */
-- 
1.9.1


More information about the systemd-devel mailing list