diff --git a/src/core/core-varlink.c b/src/core/core-varlink.c index 4f0563a1c09..92cfd36e718 100644 --- a/src/core/core-varlink.c +++ b/src/core/core-varlink.c @@ -10,6 +10,7 @@ #include "varlink-internal.h" #include "varlink-io.systemd.UserDatabase.h" #include "varlink-io.systemd.ManagedOOM.h" +#include "varlink-io.systemd.service.h" #include "varlink-util.h" typedef struct LookupParameters { @@ -589,7 +590,8 @@ int manager_setup_varlink_server(Manager *m) { r = sd_varlink_server_add_interface_many( s, &vl_interface_io_systemd_UserDatabase, - &vl_interface_io_systemd_ManagedOOM); + &vl_interface_io_systemd_ManagedOOM, + &vl_interface_io_systemd_service); if (r < 0) return log_debug_errno(r, "Failed to add interfaces to varlink server: %m"); @@ -598,7 +600,9 @@ int manager_setup_varlink_server(Manager *m) { "io.systemd.UserDatabase.GetUserRecord", vl_method_get_user_record, "io.systemd.UserDatabase.GetGroupRecord", vl_method_get_group_record, "io.systemd.UserDatabase.GetMemberships", vl_method_get_memberships, - "io.systemd.ManagedOOM.SubscribeManagedOOMCGroups", vl_method_subscribe_managed_oom_cgroups); + "io.systemd.ManagedOOM.SubscribeManagedOOMCGroups", vl_method_subscribe_managed_oom_cgroups, + "io.systemd.service.Ping", varlink_method_ping, + "io.systemd.service.GetEnvironment", varlink_method_get_environment); if (r < 0) return log_debug_errno(r, "Failed to register varlink methods: %m"); diff --git a/src/home/homed-manager.c b/src/home/homed-manager.c index bb4ad1f99f4..a0d38eb7014 100644 --- a/src/home/homed-manager.c +++ b/src/home/homed-manager.c @@ -54,6 +54,7 @@ #include "user-record-util.h" #include "user-record.h" #include "user-util.h" +#include "varlink-io.systemd.service.h" #include "varlink-io.systemd.UserDatabase.h" #include "varlink-util.h" @@ -1012,7 +1013,10 @@ static int manager_bind_varlink(Manager *m) { if (r < 0) 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); + r = sd_varlink_server_add_interface_many( + m->varlink_server, + &vl_interface_io_systemd_UserDatabase, + &vl_interface_io_systemd_service); if (r < 0) return log_error_errno(r, "Failed to add UserDatabase interface to varlink server: %m"); @@ -1020,7 +1024,10 @@ static int manager_bind_varlink(Manager *m) { m->varlink_server, "io.systemd.UserDatabase.GetUserRecord", vl_method_get_user_record, "io.systemd.UserDatabase.GetGroupRecord", vl_method_get_group_record, - "io.systemd.UserDatabase.GetMemberships", vl_method_get_memberships); + "io.systemd.UserDatabase.GetMemberships", vl_method_get_memberships, + "io.systemd.service.Ping", varlink_method_ping, + "io.systemd.service.SetLogLevel", varlink_method_set_log_level, + "io.systemd.service.GetEnvironment", varlink_method_get_environment); if (r < 0) return log_error_errno(r, "Failed to register varlink methods: %m"); diff --git a/src/hostname/hostnamed.c b/src/hostname/hostnamed.c index 2af9c68d988..a4549da8268 100644 --- a/src/hostname/hostnamed.c +++ b/src/hostname/hostnamed.c @@ -42,6 +42,7 @@ #include "user-util.h" #include "utf8.h" #include "varlink-io.systemd.Hostname.h" +#include "varlink-io.systemd.service.h" #include "varlink-util.h" #include "virt.h" @@ -1771,13 +1772,19 @@ static int connect_varlink(Context *c) { if (r < 0) return log_error_errno(r, "Failed to allocate Varlink server: %m"); - r = sd_varlink_server_add_interface(c->varlink_server, &vl_interface_io_systemd_Hostname); + r = sd_varlink_server_add_interface_many( + c->varlink_server, + &vl_interface_io_systemd_Hostname, + &vl_interface_io_systemd_service); if (r < 0) return log_error_errno(r, "Failed to add Hostname interface to Varlink server: %m"); r = sd_varlink_server_bind_method_many( c->varlink_server, - "io.systemd.Hostname.Describe", vl_method_describe); + "io.systemd.Hostname.Describe", vl_method_describe, + "io.systemd.service.Ping", varlink_method_ping, + "io.systemd.service.SetLogLevel", varlink_method_set_log_level, + "io.systemd.service.GetEnvironment", varlink_method_get_environment); if (r < 0) return log_error_errno(r, "Failed to bind Varlink method calls: %m"); diff --git a/src/import/importd.c b/src/import/importd.c index ea8257a833d..72c0e4a95a8 100644 --- a/src/import/importd.c +++ b/src/import/importd.c @@ -42,6 +42,7 @@ #include "syslog-util.h" #include "user-util.h" #include "varlink-io.systemd.Import.h" +#include "varlink-io.systemd.service.h" #include "varlink-util.h" #include "web-util.h" @@ -1979,14 +1980,20 @@ static int manager_connect_varlink(Manager *m) { if (r < 0) 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); + r = sd_varlink_server_add_interface_many( + m->varlink_server, + &vl_interface_io_systemd_Import, + &vl_interface_io_systemd_service); if (r < 0) return log_error_errno(r, "Failed to add Import interface to varlink server: %m"); r = sd_varlink_server_bind_method_many( m->varlink_server, - "io.systemd.Import.ListTransfers", vl_method_list_transfers, - "io.systemd.Import.Pull", vl_method_pull); + "io.systemd.Import.ListTransfers", vl_method_list_transfers, + "io.systemd.Import.Pull", vl_method_pull, + "io.systemd.service.Ping", varlink_method_ping, + "io.systemd.service.SetLogLevel", varlink_method_set_log_level, + "io.systemd.service.GetEnvironment", varlink_method_get_environment); if (r < 0) return log_error_errno(r, "Failed to bind Varlink method calls: %m"); diff --git a/src/journal/journald-server.c b/src/journal/journald-server.c index 8fcfa0c57bb..3469a90fefa 100644 --- a/src/journal/journald-server.c +++ b/src/journal/journald-server.c @@ -64,6 +64,7 @@ #include "uid-classification.h" #include "user-util.h" #include "varlink-io.systemd.Journal.h" +#include "varlink-io.systemd.service.h" #include "varlink-util.h" #define USER_JOURNALS_MAX 1024 @@ -2334,16 +2335,22 @@ static int server_open_varlink(Server *s, const char *socket, int fd) { if (r < 0) 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); + r = sd_varlink_server_add_interface_many( + s->varlink_server, + &vl_interface_io_systemd_Journal, + &vl_interface_io_systemd_service); if (r < 0) return log_error_errno(r, "Failed to add Journal interface to varlink server: %m"); r = sd_varlink_server_bind_method_many( s->varlink_server, - "io.systemd.Journal.Synchronize", vl_method_synchronize, - "io.systemd.Journal.Rotate", vl_method_rotate, - "io.systemd.Journal.FlushToVar", vl_method_flush_to_var, - "io.systemd.Journal.RelinquishVar", vl_method_relinquish_var); + "io.systemd.Journal.Synchronize", vl_method_synchronize, + "io.systemd.Journal.Rotate", vl_method_rotate, + "io.systemd.Journal.FlushToVar", vl_method_flush_to_var, + "io.systemd.Journal.RelinquishVar", vl_method_relinquish_var, + "io.systemd.service.Ping", varlink_method_ping, + "io.systemd.service.SetLogLevel", varlink_method_set_log_level, + "io.systemd.service.GetEnvironment", varlink_method_get_environment); if (r < 0) return r; diff --git a/src/login/logind-varlink.c b/src/login/logind-varlink.c index a8a2542e184..a757033a55f 100644 --- a/src/login/logind-varlink.c +++ b/src/login/logind-varlink.c @@ -10,6 +10,7 @@ #include "terminal-util.h" #include "user-util.h" #include "varlink-io.systemd.Login.h" +#include "varlink-io.systemd.service.h" #include "varlink-util.h" static int manager_varlink_get_session_by_peer( @@ -355,14 +356,20 @@ int manager_varlink_init(Manager *m) { sd_varlink_server_set_userdata(s, m); - r = sd_varlink_server_add_interface(s, &vl_interface_io_systemd_Login); + r = sd_varlink_server_add_interface_many( + s, + &vl_interface_io_systemd_Login, + &vl_interface_io_systemd_service); if (r < 0) return log_error_errno(r, "Failed to add Login interface to varlink server: %m"); r = sd_varlink_server_bind_method_many( s, - "io.systemd.Login.CreateSession", vl_method_create_session, - "io.systemd.Login.ReleaseSession", vl_method_release_session); + "io.systemd.Login.CreateSession", vl_method_create_session, + "io.systemd.Login.ReleaseSession", vl_method_release_session, + "io.systemd.service.Ping", varlink_method_ping, + "io.systemd.service.SetLogLevel", varlink_method_set_log_level, + "io.systemd.service.GetEnvironment", varlink_method_get_environment); if (r < 0) return log_error_errno(r, "Failed to register varlink methods: %m"); diff --git a/src/machine/machined-varlink.c b/src/machine/machined-varlink.c index dc293f58958..5beec14ccd3 100644 --- a/src/machine/machined-varlink.c +++ b/src/machine/machined-varlink.c @@ -17,6 +17,7 @@ #include "varlink-io.systemd.Machine.h" #include "varlink-io.systemd.MachineImage.h" #include "varlink-io.systemd.UserDatabase.h" +#include "varlink-io.systemd.service.h" #include "varlink-util.h" typedef struct LookupParameters { @@ -776,7 +777,8 @@ static int manager_varlink_init_machine(Manager *m) { r = sd_varlink_server_add_interface_many( s, &vl_interface_io_systemd_Machine, - &vl_interface_io_systemd_MachineImage); + &vl_interface_io_systemd_MachineImage, + &vl_interface_io_systemd_service); if (r < 0) return log_error_errno(r, "Failed to add Machine and MachineImage interfaces to varlink server: %m"); @@ -798,7 +800,10 @@ static int manager_varlink_init_machine(Manager *m) { "io.systemd.MachineImage.Update", vl_method_update_image, "io.systemd.MachineImage.Clone", vl_method_clone_image, "io.systemd.MachineImage.Remove", vl_method_remove_image, - "io.systemd.MachineImage.SetPoolLimit", vl_method_set_pool_limit); + "io.systemd.MachineImage.SetPoolLimit", vl_method_set_pool_limit, + "io.systemd.service.Ping", varlink_method_ping, + "io.systemd.service.SetLogLevel", varlink_method_set_log_level, + "io.systemd.service.GetEnvironment", varlink_method_get_environment); if (r < 0) return log_error_errno(r, "Failed to register varlink methods: %m"); diff --git a/src/network/networkd-manager-varlink.c b/src/network/networkd-manager-varlink.c index b2a196c5fc3..6206fb6e448 100644 --- a/src/network/networkd-manager-varlink.c +++ b/src/network/networkd-manager-varlink.c @@ -12,6 +12,7 @@ #include "networkd-manager-varlink.h" #include "stat-util.h" #include "varlink-io.systemd.Network.h" +#include "varlink-io.systemd.service.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) { @@ -269,16 +270,22 @@ int manager_connect_varlink(Manager *m) { (void) sd_varlink_server_set_description(s, "varlink-api-network"); - r = sd_varlink_server_add_interface(s, &vl_interface_io_systemd_Network); + r = sd_varlink_server_add_interface_many( + s, + &vl_interface_io_systemd_Network, + &vl_interface_io_systemd_service); if (r < 0) return log_error_errno(r, "Failed to add Network interface to varlink server: %m"); r = sd_varlink_server_bind_method_many( s, - "io.systemd.Network.GetStates", vl_method_get_states, - "io.systemd.Network.GetNamespaceId", vl_method_get_namespace_id, - "io.systemd.Network.GetLLDPNeighbors", vl_method_get_lldp_neighbors, - "io.systemd.Network.SetPersistentStorage", vl_method_set_persistent_storage); + "io.systemd.Network.GetStates", vl_method_get_states, + "io.systemd.Network.GetNamespaceId", vl_method_get_namespace_id, + "io.systemd.Network.GetLLDPNeighbors", vl_method_get_lldp_neighbors, + "io.systemd.Network.SetPersistentStorage", vl_method_set_persistent_storage, + "io.systemd.service.Ping", varlink_method_ping, + "io.systemd.service.SetLogLevel", varlink_method_set_log_level, + "io.systemd.service.GetEnvironment", varlink_method_get_environment); if (r < 0) return log_error_errno(r, "Failed to register varlink methods: %m"); diff --git a/src/oom/oomd-manager.c b/src/oom/oomd-manager.c index ce3674365a3..352d558281c 100644 --- a/src/oom/oomd-manager.c +++ b/src/oom/oomd-manager.c @@ -20,6 +20,7 @@ #include "path-util.h" #include "percent-util.h" #include "varlink-io.systemd.oom.h" +#include "varlink-io.systemd.service.h" #include "varlink-util.h" typedef struct ManagedOOMMessage { @@ -746,13 +747,21 @@ static int manager_varlink_init(Manager *m, int fd) { if (r < 0) return log_error_errno(r, "Failed to allocate varlink server object: %m"); - r = sd_varlink_server_add_interface(s, &vl_interface_io_systemd_oom); + r = sd_varlink_server_add_interface_many( + s, + &vl_interface_io_systemd_oom, + &vl_interface_io_systemd_service); if (r < 0) - return log_error_errno(r, "Failed to add oom interface to varlink server: %m"); + return log_error_errno(r, "Failed to add Varlink interfaces to varlink server: %m"); - r = sd_varlink_server_bind_method(s, "io.systemd.oom.ReportManagedOOMCGroups", process_managed_oom_request); + r = sd_varlink_server_bind_method_many( + s, + "io.systemd.oom.ReportManagedOOMCGroups", process_managed_oom_request, + "io.systemd.service.Ping", varlink_method_ping, + "io.systemd.service.SetLogLevel", varlink_method_set_log_level, + "io.systemd.service.GetEnvironment", varlink_method_get_environment); if (r < 0) - return log_error_errno(r, "Failed to register varlink method: %m"); + return log_error_errno(r, "Failed to register varlink methods: %m"); if (fd < 0) r = sd_varlink_server_listen_address(s, VARLINK_ADDR_PATH_MANAGED_OOM_USER, 0666); diff --git a/src/resolve/resolved-varlink.c b/src/resolve/resolved-varlink.c index 107f722e7d8..c30a2a3feac 100644 --- a/src/resolve/resolved-varlink.c +++ b/src/resolve/resolved-varlink.c @@ -9,6 +9,7 @@ #include "socket-netlink.h" #include "varlink-io.systemd.Resolve.h" #include "varlink-io.systemd.Resolve.Monitor.h" +#include "varlink-io.systemd.service.h" #include "varlink-util.h" typedef struct LookupParameters { @@ -1410,7 +1411,10 @@ static int varlink_main_server_init(Manager *m) { if (r < 0) return log_error_errno(r, "Failed to allocate varlink server object: %m"); - r = sd_varlink_server_add_interface(s, &vl_interface_io_systemd_Resolve); + r = sd_varlink_server_add_interface_many( + s, + &vl_interface_io_systemd_Resolve, + &vl_interface_io_systemd_service); if (r < 0) return log_error_errno(r, "Failed to add Resolve interface to varlink server: %m"); @@ -1419,7 +1423,10 @@ static int varlink_main_server_init(Manager *m) { "io.systemd.Resolve.ResolveHostname", vl_method_resolve_hostname, "io.systemd.Resolve.ResolveAddress", vl_method_resolve_address, "io.systemd.Resolve.ResolveService", vl_method_resolve_service, - "io.systemd.Resolve.ResolveRecord", vl_method_resolve_record); + "io.systemd.Resolve.ResolveRecord", vl_method_resolve_record, + "io.systemd.service.Ping", varlink_method_ping, + "io.systemd.service.SetLogLevel", varlink_method_set_log_level, + "io.systemd.service.GetEnvironment", varlink_method_get_environment); if (r < 0) return log_error_errno(r, "Failed to register varlink methods: %m");