]> git.ipfire.org Git - thirdparty/systemd.git/commitdiff
various: set info on varlink server object
authorZbigniew Jędrzejewski-Szmek <zbyszek@in.waw.pl>
Mon, 9 Dec 2024 19:23:29 +0000 (20:23 +0100)
committerZbigniew Jędrzejewski-Szmek <zbyszek@in.waw.pl>
Tue, 10 Dec 2024 09:51:56 +0000 (10:51 +0100)
The values that were previously hardcoded in sd-varlink.c are now defined
in new varlink_set_info_systemd() and that function is called everywhere
where we create a server.

21 files changed:
src/bootctl/bootctl.c
src/core/core-varlink.c
src/creds/creds.c
src/home/homed-manager.c
src/hostname/hostnamed.c
src/import/importd.c
src/journal/journald-server.c
src/libsystemd/sd-varlink/varlink-util.c
src/libsystemd/sd-varlink/varlink-util.h
src/machine/machined-varlink.c
src/mountfsd/mountwork.c
src/network/networkd-manager-varlink.c
src/nsresourced/nsresourcework.c
src/oom/oomd-manager.c
src/pcrextend/pcrextend.c
src/pcrlock/pcrlock.c
src/resolve/resolved-varlink.c
src/sysext/sysext.c
src/test/test-varlink-idl.c
src/test/test-varlink.c
src/userdb/userwork.c

index 98721347f4eac7238aa99d4aa1207488fe50fab9..7befb8c6e2585b46a6828e9988e185bcee4169a9 100644 (file)
@@ -27,6 +27,7 @@
 #include "pretty-print.h"
 #include "utf8.h"
 #include "varlink-io.systemd.BootControl.h"
+#include "varlink-util.h"
 #include "verbs.h"
 #include "virt.h"
 
@@ -656,7 +657,7 @@ static int run(int argc, char *argv[]) {
 
                 /* Invocation as Varlink service */
 
-                r = sd_varlink_server_new(&varlink_server, SD_VARLINK_SERVER_ROOT_ONLY);
+                r = varlink_server_new(&varlink_server, SD_VARLINK_SERVER_ROOT_ONLY, NULL);
                 if (r < 0)
                         return log_error_errno(r, "Failed to allocate Varlink server: %m");
 
index 352fd28b0db093ba7be8fbf93102d58e7ffdc2ff..4f0563a1c09e25400579e2e0c4ce4128f018f615 100644 (file)
@@ -582,11 +582,9 @@ int manager_setup_varlink_server(Manager *m) {
         if (!MANAGER_IS_SYSTEM(m))
                 return -EINVAL;
 
-        r = sd_varlink_server_new(&s, SD_VARLINK_SERVER_ACCOUNT_UID|SD_VARLINK_SERVER_INHERIT_USERDATA);
+        r = varlink_server_new(&s, SD_VARLINK_SERVER_ACCOUNT_UID|SD_VARLINK_SERVER_INHERIT_USERDATA, m);
         if (r < 0)
-                return log_debug_errno(r, "Failed to allocate varlink server object: %m");
-
-        sd_varlink_server_set_userdata(s, m);
+                return log_debug_errno(r, "Failed to allocate Varlink server: %m");
 
         r = sd_varlink_server_add_interface_many(
                         s,
index b24a84eaa6489e9c9d33a2b1fa80c71fe08aa4fd..7635aee37ca3a761bac21bbaa7f5c51473ae675e 100644 (file)
@@ -32,6 +32,7 @@
 #include "user-util.h"
 #include "varlink-io.systemd.Credentials.h"
 #include "verbs.h"
+#include "varlink-util.h"
 
 typedef enum TranscodeMode {
         TRANSCODE_OFF,
@@ -1378,7 +1379,10 @@ static int run(int argc, char *argv[]) {
 
                 /* Invocation as Varlink service */
 
-                r = sd_varlink_server_new(&varlink_server, SD_VARLINK_SERVER_ACCOUNT_UID|SD_VARLINK_SERVER_INHERIT_USERDATA|SD_VARLINK_SERVER_INPUT_SENSITIVE);
+                r = varlink_server_new(
+                                &varlink_server,
+                                SD_VARLINK_SERVER_ACCOUNT_UID|SD_VARLINK_SERVER_INHERIT_USERDATA|SD_VARLINK_SERVER_INPUT_SENSITIVE,
+                                NULL);
                 if (r < 0)
                         return log_error_errno(r, "Failed to allocate Varlink server: %m");
 
index 6f5b6feda2da268d27d7299d256fe1f833d7a7d6..de7c3d8dbe13d60caabbf1e6245f6615d4f1acba 100644 (file)
@@ -55,6 +55,7 @@
 #include "user-record.h"
 #include "user-util.h"
 #include "varlink-io.systemd.UserDatabase.h"
+#include "varlink-util.h"
 
 /* Where to look for private/public keys that are used to sign the user records. We are not using
  * CONF_PATHS_NULSTR() here since we want to insert /var/lib/systemd/home/ in the middle. And we insert that
@@ -1004,11 +1005,12 @@ static int manager_bind_varlink(Manager *m) {
         assert(m);
         assert(!m->varlink_server);
 
-        r = sd_varlink_server_new(&m->varlink_server, SD_VARLINK_SERVER_ACCOUNT_UID|SD_VARLINK_SERVER_INHERIT_USERDATA|SD_VARLINK_SERVER_INPUT_SENSITIVE);
+        r = varlink_server_new(
+                        &m->varlink_server,
+                        SD_VARLINK_SERVER_ACCOUNT_UID|SD_VARLINK_SERVER_INHERIT_USERDATA|SD_VARLINK_SERVER_INPUT_SENSITIVE,
+                        m);
         if (r < 0)
-                return log_error_errno(r, "Failed to allocate varlink server object: %m");
-
-        sd_varlink_server_set_userdata(m->varlink_server, m);
+                return log_error_errno(r, "Failed to allocate varlink server: %m");
 
         r = sd_varlink_server_add_interface(m->varlink_server, &vl_interface_io_systemd_UserDatabase);
         if (r < 0)
index cc538ce979e621b6003cba5b24ea633a760d1e0f..ba50b59f92218fe4f34dbc5e841704d7848944de 100644 (file)
@@ -40,6 +40,7 @@
 #include "user-util.h"
 #include "utf8.h"
 #include "varlink-io.systemd.Hostname.h"
+#include "varlink-util.h"
 #include "virt.h"
 
 #define VALID_DEPLOYMENT_CHARS (DIGITS LETTERS "-.:")
@@ -1648,12 +1649,13 @@ static int connect_varlink(Context *c) {
         assert(c->event);
         assert(!c->varlink_server);
 
-        r = sd_varlink_server_new(&c->varlink_server, SD_VARLINK_SERVER_ACCOUNT_UID|SD_VARLINK_SERVER_INHERIT_USERDATA);
+        r = varlink_server_new(
+                        &c->varlink_server,
+                        SD_VARLINK_SERVER_ACCOUNT_UID|SD_VARLINK_SERVER_INHERIT_USERDATA,
+                        c);
         if (r < 0)
                 return log_error_errno(r, "Failed to allocate Varlink server: %m");
 
-        sd_varlink_server_set_userdata(c->varlink_server, c);
-
         r = sd_varlink_server_add_interface(c->varlink_server, &vl_interface_io_systemd_Hostname);
         if (r < 0)
                 return log_error_errno(r, "Failed to add Hostname interface to Varlink server: %m");
index a0c40cc3d0380272ce477db3e5aab33bb68cc460..db081205ab75f1712c5cc94464e61e46290ffbd0 100644 (file)
@@ -1969,11 +1969,11 @@ static int manager_connect_varlink(Manager *m) {
         assert(m->event);
         assert(!m->varlink_server);
 
-        r = sd_varlink_server_new(&m->varlink_server, SD_VARLINK_SERVER_ACCOUNT_UID|SD_VARLINK_SERVER_INHERIT_USERDATA);
+        r = varlink_server_new(&m->varlink_server,
+                               SD_VARLINK_SERVER_ACCOUNT_UID|SD_VARLINK_SERVER_INHERIT_USERDATA,
+                               m);
         if (r < 0)
-                return log_error_errno(r, "Failed to allocate Varlink server: %m");
-
-        sd_varlink_server_set_userdata(m->varlink_server, m);
+                return log_error_errno(r, "Failed to allocate varlink server object: %m");
 
         r = sd_varlink_server_add_interface(m->varlink_server, &vl_interface_io_systemd_Import);
         if (r < 0)
index 9377ff8c7953850ffc82997eef15d98ba8596447..bebc1e584c590d03570fb5ad39e995be83c5a1e0 100644 (file)
@@ -64,6 +64,7 @@
 #include "uid-classification.h"
 #include "user-util.h"
 #include "varlink-io.systemd.Journal.h"
+#include "varlink-util.h"
 
 #define USER_JOURNALS_MAX 1024
 
@@ -2326,11 +2327,12 @@ static int server_open_varlink(Server *s, const char *socket, int fd) {
 
         assert(s);
 
-        r = sd_varlink_server_new(&s->varlink_server, SD_VARLINK_SERVER_ROOT_ONLY|SD_VARLINK_SERVER_INHERIT_USERDATA);
+        r = varlink_server_new(
+                        &s->varlink_server,
+                        SD_VARLINK_SERVER_ROOT_ONLY|SD_VARLINK_SERVER_INHERIT_USERDATA,
+                        s);
         if (r < 0)
-                return r;
-
-        sd_varlink_server_set_userdata(s->varlink_server, s);
+                return log_error_errno(r, "Failed to allocate varlink server object: %m");
 
         r = sd_varlink_server_add_interface(s->varlink_server, &vl_interface_io_systemd_Journal);
         if (r < 0)
index b16d4bddb6c917f9bbd83de1f128ae3ad5e22726..765108515c47d9881ffb4a26d8b040dab411741e 100644 (file)
@@ -1,8 +1,11 @@
 /* SPDX-License-Identifier: LGPL-2.1-or-later */
 
+#include "alloc-util.h"
 #include "errno-util.h"
+#include "string-util.h"
 #include "varlink-internal.h"
 #include "varlink-util.h"
+#include "version.h"
 
 int varlink_get_peer_pidref(sd_varlink *v, PidRef *ret) {
         int r;
@@ -133,3 +136,40 @@ int varlink_many_error(Set *s, const char *error_id, sd_json_variant *parameters
 
         return r;
 }
+
+int varlink_set_info_systemd(sd_varlink_server *server) {
+        _cleanup_free_ char *product = NULL;
+
+        product = strjoin("systemd (", program_invocation_short_name, ")");
+        if (!product)
+                return -ENOMEM;
+
+        return sd_varlink_server_set_info(
+                        server,
+                        "The systemd Project",
+                        product,
+                        PROJECT_VERSION_FULL " (" GIT_VERSION ")",
+                        "https://systemd.io/");
+}
+
+int varlink_server_new(
+                sd_varlink_server **ret,
+                sd_varlink_server_flags_t flags,
+                void *userdata) {
+
+        _cleanup_(sd_varlink_server_unrefp) sd_varlink_server *s = NULL;
+        int r;
+
+        r = sd_varlink_server_new(&s, flags);
+        if (r < 0)
+                return log_debug_errno(r, "Failed to allocate varlink server object: %m");
+
+        r = varlink_set_info_systemd(s);
+        if (r < 0)
+                return log_debug_errno(r, "Failed to configure varlink server object: %m");
+
+        sd_varlink_server_set_userdata(s, userdata);
+
+        *ret = TAKE_PTR(s);
+        return 0;
+}
index 3f532bf140b2b5354697c0881c493e430dac6a64..351f3951b07a80b2f32134cb5c167c73efd88c2d 100644 (file)
@@ -18,3 +18,10 @@ int varlink_many_notifyb(Set *s, ...);
         varlink_many_notifyb((s), SD_JSON_BUILD_OBJECT(__VA_ARGS__))
 int varlink_many_reply(Set *s, sd_json_variant *parameters);
 int varlink_many_error(Set *s, const char *error_id, sd_json_variant *parameters);
+
+int varlink_set_info_systemd(sd_varlink_server *server);
+
+int varlink_server_new(
+                sd_varlink_server **ret,
+                sd_varlink_server_flags_t flags,
+                void *userdata);
index 616b972b379b65c6c93acd35fc6bc94efbf79671..3385aa8a17838d51bd57cebcfe1daf0051e0bd9a 100644 (file)
@@ -17,6 +17,7 @@
 #include "varlink-io.systemd.Machine.h"
 #include "varlink-io.systemd.MachineImage.h"
 #include "varlink-io.systemd.UserDatabase.h"
+#include "varlink-util.h"
 
 typedef struct LookupParameters {
         const char *user_name;
@@ -712,12 +713,10 @@ static int manager_varlink_init_userdb(Manager *m) {
         if (m->varlink_userdb_server)
                 return 0;
 
-        r = sd_varlink_server_new(&s, SD_VARLINK_SERVER_ACCOUNT_UID|SD_VARLINK_SERVER_INHERIT_USERDATA);
+        r = varlink_server_new(&s, SD_VARLINK_SERVER_ACCOUNT_UID|SD_VARLINK_SERVER_INHERIT_USERDATA, m);
         if (r < 0)
                 return log_error_errno(r, "Failed to allocate varlink server object: %m");
 
-        sd_varlink_server_set_userdata(s, m);
-
         r = sd_varlink_server_add_interface(s, &vl_interface_io_systemd_UserDatabase);
         if (r < 0)
                 return log_error_errno(r, "Failed to add UserDatabase interface to varlink server: %m");
@@ -753,12 +752,10 @@ static int manager_varlink_init_machine(Manager *m) {
         if (m->varlink_machine_server)
                 return 0;
 
-        r = sd_varlink_server_new(&s, SD_VARLINK_SERVER_ACCOUNT_UID|SD_VARLINK_SERVER_INHERIT_USERDATA);
+        r = varlink_server_new(&s, SD_VARLINK_SERVER_ACCOUNT_UID|SD_VARLINK_SERVER_INHERIT_USERDATA, m);
         if (r < 0)
                 return log_error_errno(r, "Failed to allocate varlink server object: %m");
 
-        sd_varlink_server_set_userdata(s, m);
-
         r = sd_varlink_server_add_interface_many(
                         s,
                         &vl_interface_io_systemd_Machine,
index 6ffb36167af3f71aae854fec0e77b8b3960cc9b7..af46287fcf8cd9f51db764488a9e7cac8ef624a8 100644 (file)
@@ -23,6 +23,7 @@
 #include "stat-util.h"
 #include "user-util.h"
 #include "varlink-io.systemd.MountFileSystem.h"
+#include "varlink-util.h"
 
 #define ITERATIONS_MAX 64U
 #define RUNTIME_MAX_USEC (5 * USEC_PER_MINUTE)
@@ -595,7 +596,7 @@ static int run(int argc, char *argv[]) {
         if (r < 0)
                 return log_error_errno(r, "Failed to turn off non-blocking mode for listening socket: %m");
 
-        r = sd_varlink_server_new(&server, SD_VARLINK_SERVER_INHERIT_USERDATA);
+        r = varlink_server_new(&server, SD_VARLINK_SERVER_INHERIT_USERDATA, NULL);
         if (r < 0)
                 return log_error_errno(r, "Failed to allocate server: %m");
 
index 9fe8e607698d445afca103c85c07c5ab2e37e5b8..546dae0739ed3e5f7ef3d0fe07cf7148957b7356 100644 (file)
@@ -12,6 +12,7 @@
 #include "networkd-manager-varlink.h"
 #include "stat-util.h"
 #include "varlink-io.systemd.Network.h"
+#include "varlink-util.h"
 
 static int vl_method_get_states(sd_varlink *link, sd_json_variant *parameters, sd_varlink_method_flags_t flags, void *userdata) {
         Manager *m = ASSERT_PTR(userdata);
@@ -270,12 +271,10 @@ int manager_connect_varlink(Manager *m) {
         if (m->varlink_server)
                 return 0;
 
-        r = sd_varlink_server_new(&s, SD_VARLINK_SERVER_ACCOUNT_UID|SD_VARLINK_SERVER_INHERIT_USERDATA);
+        r = varlink_server_new(&s, SD_VARLINK_SERVER_ACCOUNT_UID|SD_VARLINK_SERVER_INHERIT_USERDATA, m);
         if (r < 0)
                 return log_error_errno(r, "Failed to allocate varlink server object: %m");
 
-        sd_varlink_server_set_userdata(s, m);
-
         (void) sd_varlink_server_set_description(s, "varlink-api-network");
 
         r = sd_varlink_server_add_interface(s, &vl_interface_io_systemd_Network);
index e8929ad6b3c7bae6a3ec98723266d3569e6b496a..21fc2d9088c83adb06b0fe18c2735617133b39ba 100644 (file)
@@ -44,6 +44,7 @@
 #include "userns-restrict.h"
 #include "varlink-io.systemd.NamespaceResource.h"
 #include "varlink-io.systemd.UserDatabase.h"
+#include "varlink-util.h"
 
 #define ITERATIONS_MAX 64U
 #define RUNTIME_MAX_USEC (5 * USEC_PER_MINUTE)
@@ -1689,9 +1690,9 @@ static int run(int argc, char *argv[]) {
         if (r < 0)
                 return log_error_errno(r, "Failed to turn off non-blocking mode for listening socket: %m");
 
-        r = sd_varlink_server_new(&server, SD_VARLINK_SERVER_INHERIT_USERDATA);
+        r = varlink_server_new(&server, SD_VARLINK_SERVER_INHERIT_USERDATA, NULL);
         if (r < 0)
-                return log_error_errno(r, "Failed to allocate server: %m");
+                return log_error_errno(r, "Failed to allocate varlink server: %m");
 
         r = sd_varlink_server_add_interface_many(
                         server,
index 7437a6e889b8bd48c15e86a325a693683e77d9a2..baa88a2f2a0efe2d729dddee7787aca13010e5bf 100644 (file)
@@ -18,6 +18,7 @@
 #include "path-util.h"
 #include "percent-util.h"
 #include "varlink-io.systemd.oom.h"
+#include "varlink-util.h"
 
 typedef struct ManagedOOMMessage {
         ManagedOOMMode mode;
@@ -720,12 +721,10 @@ static int manager_varlink_init(Manager *m, int fd) {
         assert(m);
         assert(!m->varlink_server);
 
-        r = sd_varlink_server_new(&s, SD_VARLINK_SERVER_ACCOUNT_UID|SD_VARLINK_SERVER_INHERIT_USERDATA);
+        r = varlink_server_new(&s, SD_VARLINK_SERVER_ACCOUNT_UID|SD_VARLINK_SERVER_INHERIT_USERDATA, m);
         if (r < 0)
                 return log_error_errno(r, "Failed to allocate varlink server object: %m");
 
-        sd_varlink_server_set_userdata(s, m);
-
         r = sd_varlink_server_add_interface(s, &vl_interface_io_systemd_oom);
         if (r < 0)
                 return log_error_errno(r, "Failed to add oom interface to varlink server: %m");
index 1bf39caf43d154532c4ff9c54b6a391b2e91ede7..6bdb5418b53faf4c04dbd65a6dc95d830eb17ccf 100644 (file)
@@ -20,6 +20,7 @@
 #include "tpm2-pcr.h"
 #include "tpm2-util.h"
 #include "varlink-io.systemd.PCRExtend.h"
+#include "varlink-util.h"
 
 static bool arg_graceful = false;
 static char *arg_tpm2_device = NULL;
@@ -312,7 +313,7 @@ static int run(int argc, char *argv[]) {
 
                 /* Invocation as Varlink service */
 
-                r = sd_varlink_server_new(&varlink_server, SD_VARLINK_SERVER_ROOT_ONLY);
+                r = varlink_server_new(&varlink_server, SD_VARLINK_SERVER_ROOT_ONLY, NULL);
                 if (r < 0)
                         return log_error_errno(r, "Failed to allocate Varlink server: %m");
 
index d824914ae79ae4a582a2d492ec62ee975f707913..25d76151b10b4d3a81c46f6501e650d76469c9a2 100644 (file)
@@ -53,6 +53,7 @@
 #include "unit-name.h"
 #include "utf8.h"
 #include "varlink-io.systemd.PCRLock.h"
+#include "varlink-util.h"
 #include "verbs.h"
 
 typedef enum RecoveryPinMode {
@@ -5352,7 +5353,7 @@ static int run(int argc, char *argv[]) {
 
                 /* Invocation as Varlink service */
 
-                r = sd_varlink_server_new(&varlink_server, SD_VARLINK_SERVER_ROOT_ONLY);
+                r = varlink_server_new(&varlink_server, SD_VARLINK_SERVER_ROOT_ONLY, NULL);
                 if (r < 0)
                         return log_error_errno(r, "Failed to allocate Varlink server: %m");
 
index 456347fd7ed0189227ef47c2d22e3b0497b655a5..107f722e7d87ba138dfa6071a6c524466da2556d 100644 (file)
@@ -9,6 +9,7 @@
 #include "socket-netlink.h"
 #include "varlink-io.systemd.Resolve.h"
 #include "varlink-io.systemd.Resolve.Monitor.h"
+#include "varlink-util.h"
 
 typedef struct LookupParameters {
         int ifindex;
@@ -1361,12 +1362,10 @@ static int varlink_monitor_server_init(Manager *m) {
         if (m->varlink_monitor_server)
                 return 0;
 
-        r = sd_varlink_server_new(&server, SD_VARLINK_SERVER_ACCOUNT_UID|SD_VARLINK_SERVER_INHERIT_USERDATA);
+        r = varlink_server_new(&server, SD_VARLINK_SERVER_ACCOUNT_UID|SD_VARLINK_SERVER_INHERIT_USERDATA, m);
         if (r < 0)
                 return log_error_errno(r, "Failed to allocate varlink server object: %m");
 
-        sd_varlink_server_set_userdata(server, m);
-
         r = sd_varlink_server_add_interface(server, &vl_interface_io_systemd_Resolve_Monitor);
         if (r < 0)
                 return log_error_errno(r, "Failed to add Resolve.Monitor interface to varlink server: %m");
@@ -1407,12 +1406,10 @@ static int varlink_main_server_init(Manager *m) {
         if (m->varlink_server)
                 return 0;
 
-        r = sd_varlink_server_new(&s, SD_VARLINK_SERVER_ACCOUNT_UID);
+        r = varlink_server_new(&s, SD_VARLINK_SERVER_ACCOUNT_UID, m);
         if (r < 0)
                 return log_error_errno(r, "Failed to allocate varlink server object: %m");
 
-        sd_varlink_server_set_userdata(s, m);
-
         r = sd_varlink_server_add_interface(s, &vl_interface_io_systemd_Resolve);
         if (r < 0)
                 return log_error_errno(r, "Failed to add Resolve interface to varlink server: %m");
index a87e4afcb37ffaf99aab1e20ba48036e4b837e0f..6401fc4c0fffa46644c59c16e534f63516a01acb 100644 (file)
@@ -52,6 +52,7 @@
 #include "terminal-util.h"
 #include "user-util.h"
 #include "varlink-io.systemd.sysext.h"
+#include "varlink-util.h"
 #include "verbs.h"
 
 typedef enum MutableMode {
@@ -2568,7 +2569,7 @@ static int run(int argc, char *argv[]) {
 
                 /* Invocation as Varlink service */
 
-                r = sd_varlink_server_new(&varlink_server, SD_VARLINK_SERVER_ROOT_ONLY);
+                r = varlink_server_new(&varlink_server, SD_VARLINK_SERVER_ROOT_ONLY, NULL);
                 if (r < 0)
                         return log_error_errno(r, "Failed to allocate Varlink server: %m");
 
index c54b24aa8b492469d8689418e14279b8cb099b05..182d59bd2063f41457e98add06182a24644c4933 100644 (file)
@@ -29,6 +29,7 @@
 #include "varlink-io.systemd.service.h"
 #include "varlink-io.systemd.sysext.h"
 #include "varlink-org.varlink.service.h"
+#include "varlink-util.h"
 
 static SD_VARLINK_DEFINE_ENUM_TYPE(
                 EnumTest,
@@ -378,6 +379,7 @@ static void* server_thread(void *userdata) {
         _cleanup_(sd_event_unrefp) sd_event *event = NULL;
 
         assert_se(sd_varlink_server_new(&server, 0) >= 0);
+        assert_se(varlink_set_info_systemd(server) >= 0);
         assert_se(sd_varlink_server_add_interface(server, &vl_interface_xyz) >= 0);
         assert_se(sd_varlink_server_bind_method(server, "xyz.TestMethod", test_method) >= 0);
         assert_se(sd_varlink_server_bind_method(server, "xyz.Done", done_method) >= 0);
index 40d972b6b64193aa44c3cb250c35d7928dd2a87b..bd1d9405851275adf1f683669a8d8bf575eca24c 100644 (file)
@@ -16,6 +16,7 @@
 #include "tests.h"
 #include "tmpfile-util.h"
 #include "user-util.h"
+#include "varlink-util.h"
 
 /* Let's pick some high value, that is higher than the largest listen() backlog, but leaves enough room below
    the typical RLIMIT_NOFILE value of 1024 so that we can process both sides of each socket in our
@@ -359,7 +360,9 @@ TEST(chat) {
         assert_se(sd_event_source_set_priority(block_event, SD_EVENT_PRIORITY_IMPORTANT) >= 0);
         block_write_fd = TAKE_FD(block_fds[1]);
 
-        assert_se(sd_varlink_server_new(&s, SD_VARLINK_SERVER_ACCOUNT_UID) >= 0);
+        assert_se(varlink_server_new(&s, SD_VARLINK_SERVER_ACCOUNT_UID, NULL) >= 0);
+        assert_se(sd_varlink_server_set_info(s, "Vendor", "Product", "Version", "URL") >= 0);
+        assert_se(varlink_set_info_systemd(s) >= 0);
         assert_se(sd_varlink_server_set_description(s, "our-server") >= 0);
 
         assert_se(sd_varlink_server_bind_method(s, "io.test.PassFD", method_passfd) >= 0);
index b7a2bf798c5da55ff1ec399118861e69fa6a668f..1e36face408c453e945d3826dd14739601574e1f 100644 (file)
@@ -20,6 +20,7 @@
 #include "user-util.h"
 #include "userdb.h"
 #include "varlink-io.systemd.UserDatabase.h"
+#include "varlink-util.h"
 
 #define ITERATIONS_MAX 64U
 #define RUNTIME_MAX_USEC (5 * USEC_PER_MINUTE)
@@ -489,9 +490,9 @@ static int run(int argc, char *argv[]) {
         if (r < 0)
                 return log_error_errno(r, "Failed to turn off non-blocking mode for listening socket: %m");
 
-        r = sd_varlink_server_new(&server, 0);
+        r = varlink_server_new(&server, 0, NULL);
         if (r < 0)
-                return log_error_errno(r, "Failed to allocate server: %m");
+                return log_error_errno(r, "Failed to allocate varlink server: %m");
 
         r = sd_varlink_server_add_interface(server, &vl_interface_io_systemd_UserDatabase);
         if (r < 0)