From: Ivan Kruglov Date: Thu, 14 May 2026 16:41:09 +0000 (-0700) Subject: core: move service_context_build_json() to varlink-service.c X-Git-Tag: v261-rc1~159^2~3 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=59203dca3af581be32f383263e2a3e4bc406c2e4;p=thirdparty%2Fsystemd.git core: move service_context_build_json() to varlink-service.c Move the existing (partial) service context builder from varlink-unit.c into its own varlink-service.c file, following the pattern established by other unit type context builders (varlink-path.c, varlink-scope.c, etc.). No functional change. --- diff --git a/src/core/meson.build b/src/core/meson.build index 3af15b948fe..98cf02aef88 100644 --- a/src/core/meson.build +++ b/src/core/meson.build @@ -76,6 +76,7 @@ libcore_sources = files( 'varlink-mount.c', 'varlink-path.c', 'varlink-scope.c', + 'varlink-service.c', 'varlink-socket.c', 'varlink-swap.c', 'varlink-timer.c', diff --git a/src/core/varlink-service.c b/src/core/varlink-service.c new file mode 100644 index 00000000000..8d9ed6e91db --- /dev/null +++ b/src/core/varlink-service.c @@ -0,0 +1,22 @@ +/* SPDX-License-Identifier: LGPL-2.1-or-later */ + +#include "sd-json.h" + +#include "json-util.h" +#include "service.h" +#include "varlink-common.h" +#include "varlink-service.h" + +/* TODO: This covers only a small subset of a service object's properties. Extend to make more available to + * consumers like Unit.StartTransient */ +int service_context_build_json(sd_json_variant **ret, const char *name, void *userdata) { + Unit *u = ASSERT_PTR(userdata); + Service *s = ASSERT_PTR(SERVICE(u)); + assert(ret); + + return sd_json_buildo( + ret, + JSON_BUILD_PAIR_ENUM("Type", service_type_to_string(s->type)), + JSON_BUILD_PAIR_CALLBACK_NON_NULL("ExecStart", exec_command_list_build_json, s->exec_command[SERVICE_EXEC_START]), + SD_JSON_BUILD_PAIR_BOOLEAN("RemainAfterExit", s->remain_after_exit)); +} diff --git a/src/core/varlink-service.h b/src/core/varlink-service.h new file mode 100644 index 00000000000..07ed1b9d1b0 --- /dev/null +++ b/src/core/varlink-service.h @@ -0,0 +1,6 @@ +/* SPDX-License-Identifier: LGPL-2.1-or-later */ +#pragma once + +#include "core-forward.h" + +int service_context_build_json(sd_json_variant **ret, const char *name, void *userdata); diff --git a/src/core/varlink-unit.c b/src/core/varlink-unit.c index f7ef7506493..368e39a63ed 100644 --- a/src/core/varlink-unit.c +++ b/src/core/varlink-unit.c @@ -31,6 +31,7 @@ #include "varlink-mount.h" #include "varlink-path.h" #include "varlink-scope.h" +#include "varlink-service.h" #include "varlink-socket.h" #include "varlink-swap.h" #include "varlink-timer.h" @@ -119,20 +120,6 @@ static int unit_conditions_build_json(sd_json_variant **ret, const char *name, v return 0; } -/* TODO: This covers only a small subset of a service object's properties. Extend to make more available to - * consumers like Unit.StartTransient */ -static int service_context_build_json(sd_json_variant **ret, const char *name, void *userdata) { - Unit *u = ASSERT_PTR(userdata); - Service *s = ASSERT_PTR(SERVICE(u)); - assert(ret); - - return sd_json_buildo( - ret, - JSON_BUILD_PAIR_ENUM("Type", service_type_to_string(s->type)), - JSON_BUILD_PAIR_CALLBACK_NON_NULL("ExecStart", exec_command_list_build_json, s->exec_command[SERVICE_EXEC_START]), - SD_JSON_BUILD_PAIR_BOOLEAN("RemainAfterExit", s->remain_after_exit)); -} - static int unit_context_build_json(sd_json_variant **ret, const char *name, void *userdata) { Unit *u = ASSERT_PTR(userdata);