Remove redundant `prev_subsession_id` parameter from the 58/274958/6
authorAdam Michalski <a.michalski2@partner.samsung.com>
Thu, 12 May 2022 12:45:29 +0000 (14:45 +0200)
committerArkadiusz Nowak <a.nowak3@samsung.com>
Fri, 13 May 2022 10:38:31 +0000 (12:38 +0200)
`SwitchUser` method

Change-Id: Ice4709be50884f8dc807edbba5f17555bbcb1a3f

doc/sessiond-dbus-interface.md
sessiond/src/main.cpp

index a295dd4..aba79c0 100644 (file)
@@ -35,7 +35,6 @@ In case of an error, methods return a DBus error.
         member: SwitchUser
         parameters: (iii)
             session_uid <int32> in
-            prev_subsession_id <int32> in
             next_subsession_id <int32> in
 
 4. Register to wait for user add operation:
index 518bb89..1e21d87 100644 (file)
@@ -166,7 +166,7 @@ struct sessiond_context {
 
        void on_switch_user(GDBusMethodInvocation *invocation, std::string_view sender, GVariant *parameters)
        {
-               auto [ session_uid, prev_subsession_id, next_subsession_id ] = tuple_from_g_variant<int, int, int>(parameters);
+               auto [ session_uid, next_subsession_id ] = tuple_from_g_variant<int, int>(parameters);
 
                if (session_uid <= 0) {
                        g_dbus_method_invocation_return_dbus_error(invocation, "org.freedesktop.DBus.Error.InvalidArgs", "Negative UID passed");
@@ -175,6 +175,10 @@ struct sessiond_context {
 
                switch_id += 1;
 
+               int prev_subsession_id = INITIAL_SUB_SESSION_ID;
+               if (last_subsession_per_session.contains(session_uid))
+                       prev_subsession_id = last_subsession_per_session.at(session_uid);
+
                GError *err = nullptr;
                if (!g_dbus_connection_emit_signal(connection, nullptr, bus_object.data(), bus_iface.data(), "SwitchUserStarted",
                                vals_to_g_variant(session_uid, switch_id, prev_subsession_id, next_subsession_id), &err))
@@ -373,7 +377,6 @@ struct sessiond_context {
                                "</method>"
                                "<method name=\"SwitchUser\">"
                                        "<arg name=\"session_uid\"        type=\"i\" direction=\"in\"/>"
-                                       "<arg name=\"prev_subsession_id\" type=\"i\" direction=\"in\"/>"
                                        "<arg name=\"next_subsession_id\" type=\"i\" direction=\"in\"/>"
                                "</method>"
                                "<method name=\"AddUserWait\">"