Propagate sender name to on_* methods 92/273592/3
authorMateusz Majewski <m.majewski2@samsung.com>
Fri, 8 Apr 2022 06:38:51 +0000 (08:38 +0200)
committerMateusz Majewski <m.majewski2@samsung.com>
Mon, 11 Apr 2022 08:30:33 +0000 (10:30 +0200)
Change-Id: I01405a4741626d1b98736637aa151e0777ed8362

sessiond/src/main.cpp

index 37d090d2891278cb98196f34b5c973b187aceb3a..a62dd5bc1a0a251b1589bf83e879d0e0ec041586 100644 (file)
@@ -117,7 +117,7 @@ struct sessiond_context {
                throw std::system_error(std::error_code(), "Name lost");
        }
 
-       void on_add_user(GDBusConnection *connection, GDBusMethodInvocation *invocation, GVariant *parameters)
+       void on_add_user(GDBusConnection *connection, GDBusMethodInvocation *invocation, std::string_view sender, GVariant *parameters)
        {
                auto [ session_uid, subsession_id ] = tuple_from_g_variant<int, int>(parameters);
 
@@ -134,7 +134,7 @@ struct sessiond_context {
                g_dbus_method_invocation_return_value(invocation, nullptr);
        }
 
-       void on_remove_user(GDBusConnection *connection, GDBusMethodInvocation *invocation, GVariant *parameters)
+       void on_remove_user(GDBusConnection *connection, GDBusMethodInvocation *invocation, std::string_view sender, GVariant *parameters)
        {
                auto [ session_uid, subsession_id ] = tuple_from_g_variant<int, int>(parameters);
 
@@ -151,7 +151,7 @@ struct sessiond_context {
                g_dbus_method_invocation_return_value(invocation, nullptr);
        }
 
-       void on_switch_user(GDBusConnection *connection, GDBusMethodInvocation *invocation, GVariant *parameters)
+       void on_switch_user(GDBusConnection *connection, 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);
 
@@ -193,7 +193,7 @@ struct sessiond_context {
                        if (to_call == methods.end())
                                throw std::system_error(std::error_code(), std::string("Unknown method ") + method_name + " called");
                        std::cout << "Handling " << method_name << " call from " << sender << std::endl;
-                       (self->*(to_call->second))(connection, invocation, parameters);
+                       (self->*(to_call->second))(connection, invocation, std::string_view(sender), parameters);
                } catch (const std::exception &ex) {
                        g_dbus_method_invocation_return_dbus_error(invocation, "org.freedesktop.DBus.Error.Failed", "Internal sessiond exception");
                        std::cerr << "Exception " << ex.what() << "\n" <<
@@ -245,7 +245,7 @@ struct sessiond_context {
        constexpr static std::array<
                        std::pair<
                                std::string_view,
-                               void (sessiond_context::*)(GDBusConnection *, GDBusMethodInvocation *, GVariant *)
+                               void (sessiond_context::*)(GDBusConnection *, GDBusMethodInvocation *, std::string_view, GVariant *)
                        >, 3> methods = {
                std::make_pair("AddUser",    &sessiond_context::on_add_user),
                std::make_pair("RemoveUser", &sessiond_context::on_remove_user),