]> git.ipfire.org Git - thirdparty/systemd.git/commitdiff
core: always handle method call params via sd_varlink_dispatch(), even if we accept...
authorLennart Poettering <lennart@poettering.net>
Thu, 15 May 2025 07:30:12 +0000 (09:30 +0200)
committerLennart Poettering <lennart@poettering.net>
Thu, 15 May 2025 07:31:27 +0000 (09:31 +0200)
This results in much more precise errors for the clients, and is what we
do everywhere else these days.

src/core/manager-varlink.c

index c124b2fc9fc857bce99ec08701715a1851e13b91..3c7e746640bdde469b9190b8a7f5ddcb05cfc747 100644 (file)
@@ -158,8 +158,9 @@ int vl_method_describe_manager(sd_varlink *link, sd_json_variant *parameters, sd
 
         assert(parameters);
 
-        if (sd_json_variant_elements(parameters) > 0)
-                return sd_varlink_error_invalid_parameter(link, parameters);
+        r = sd_varlink_dispatch(link, parameters, /* dispatch_table= */ NULL, /* userdata= */ NULL);
+        if (r != 0)
+                return r;
 
         r = sd_json_buildo(&v,
                         SD_JSON_BUILD_PAIR_CALLBACK("Context", manager_context_build_json, manager),