diff --git a/src/libsystemd/libsystemd.sym b/src/libsystemd/libsystemd.sym index 65b81db464..50ef8096db 100644 --- a/src/libsystemd/libsystemd.sym +++ b/src/libsystemd/libsystemd.sym @@ -934,10 +934,12 @@ global: sd_json_variant_sensitive; sd_json_variant_set_field; sd_json_variant_set_field_boolean; + sd_json_variant_set_field_id128; sd_json_variant_set_field_integer; sd_json_variant_set_field_string; sd_json_variant_set_field_strv; sd_json_variant_set_field_unsigned; + sd_json_variant_set_field_uuid; sd_json_variant_set_fieldb; sd_json_variant_sort; sd_json_variant_string; diff --git a/src/libsystemd/sd-json/sd-json.c b/src/libsystemd/sd-json/sd-json.c index 98ffe4db54..63e091085f 100644 --- a/src/libsystemd/sd-json/sd-json.c +++ b/src/libsystemd/sd-json/sd-json.c @@ -2075,6 +2075,14 @@ _public_ int sd_json_variant_set_field_string(sd_json_variant **v, const char *f return sd_json_variant_set_field(v, field, m); } +_public_ int sd_json_variant_set_field_id128(sd_json_variant **v, const char *field, sd_id128_t value) { + return sd_json_variant_set_field_string(v, field, SD_ID128_TO_STRING(value)); +} + +_public_ int sd_json_variant_set_field_uuid(sd_json_variant **v, const char *field, sd_id128_t value) { + return sd_json_variant_set_field_string(v, field, SD_ID128_TO_UUID_STRING(value)); +} + _public_ int sd_json_variant_set_field_integer(sd_json_variant **v, const char *field, int64_t i) { _cleanup_(sd_json_variant_unrefp) sd_json_variant *m = NULL; int r; diff --git a/src/run/run.c b/src/run/run.c index 62140062ab..2db60e6bb8 100644 --- a/src/run/run.c +++ b/src/run/run.c @@ -1716,7 +1716,7 @@ static int print_unit_invocation(const char *unit, sd_id128_t invocation_id) { return r; if (!sd_id128_is_null(invocation_id)) { - r = sd_json_variant_set_field_string(&v, "invocation_id", SD_ID128_TO_STRING(invocation_id)); + r = sd_json_variant_set_field_id128(&v, "invocation_id", invocation_id); if (r < 0) return r; } @@ -1845,7 +1845,7 @@ static int start_transient_service(sd_bus *bus) { } if (!arg_quiet) { - sd_id128_t invocation_id = SD_ID128_NULL; + sd_id128_t invocation_id; r = acquire_invocation_id(bus, service, &invocation_id); if (r < 0) @@ -2014,7 +2014,7 @@ static int start_transient_scope(sd_bus *bus) { _cleanup_strv_free_ char **env = NULL, **user_env = NULL; _cleanup_free_ char *scope = NULL; const char *object = NULL; - sd_id128_t invocation_id = SD_ID128_NULL; + sd_id128_t invocation_id; bool allow_pidfd = true; int r; diff --git a/src/systemd/sd-json.h b/src/systemd/sd-json.h index fb796f0fa8..4b5cbd4e5d 100644 --- a/src/systemd/sd-json.h +++ b/src/systemd/sd-json.h @@ -161,6 +161,8 @@ int sd_json_variant_set_fieldb(sd_json_variant **v, const char *field, ...); #define sd_json_variant_set_fieldbo(v, field, ...) \ sd_json_variant_set_fieldb((v), (field), SD_JSON_BUILD_OBJECT(__VA_ARGS__)) int sd_json_variant_set_field_string(sd_json_variant **v, const char *field, const char *value); +int sd_json_variant_set_field_id128(sd_json_variant **v, const char *field, sd_id128_t value); +int sd_json_variant_set_field_uuid(sd_json_variant **v, const char *field, sd_id128_t value); int sd_json_variant_set_field_integer(sd_json_variant **v, const char *field, int64_t value); int sd_json_variant_set_field_unsigned(sd_json_variant **v, const char *field, uint64_t value); int sd_json_variant_set_field_boolean(sd_json_variant **v, const char *field, int b);