mountfsd,networkd,nsresourced: port over to new fd passing varlink server flags

This commit is contained in:
Lennart Poettering
2025-01-06 10:31:40 +01:00
parent 6d4778f14f
commit 6f84873096
3 changed files with 14 additions and 35 deletions
+4 -9
View File
@@ -553,14 +553,6 @@ static int process_connection(sd_varlink_server *server, int _fd) {
TAKE_FD(fd);
vl = sd_varlink_ref(vl);
r = sd_varlink_set_allow_fd_passing_input(vl, true);
if (r < 0)
return log_error_errno(r, "Failed to enable fd passing for read: %m");
r = sd_varlink_set_allow_fd_passing_output(vl, true);
if (r < 0)
return log_error_errno(r, "Failed to enable fd passing for write: %m");
r = sd_event_loop(event);
if (r < 0)
return log_error_errno(r, "Failed to run event loop: %m");
@@ -596,7 +588,10 @@ 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 = varlink_server_new(&server, SD_VARLINK_SERVER_INHERIT_USERDATA, NULL);
r = varlink_server_new(&server,
SD_VARLINK_SERVER_INHERIT_USERDATA|
SD_VARLINK_SERVER_ALLOW_FD_PASSING_INPUT|SD_VARLINK_SERVER_ALLOW_FD_PASSING_OUTPUT,
NULL);
if (r < 0)
return log_error_errno(r, "Failed to allocate server: %m");
+5 -17
View File
@@ -250,18 +250,6 @@ static int vl_method_set_persistent_storage(sd_varlink *vlink, sd_json_variant *
return sd_varlink_reply(vlink, NULL);
}
static int on_connect(sd_varlink_server *s, sd_varlink *vlink, void *userdata) {
int r;
assert(vlink);
r = sd_varlink_set_allow_fd_passing_input(vlink, true);
if (r < 0)
return log_warning_errno(r, "Failed to allow receiving file descriptor through varlink: %m");
return 0;
}
int manager_connect_varlink(Manager *m) {
_cleanup_(sd_varlink_server_unrefp) sd_varlink_server *s = NULL;
int r;
@@ -271,7 +259,11 @@ int manager_connect_varlink(Manager *m) {
if (m->varlink_server)
return 0;
r = varlink_server_new(&s, SD_VARLINK_SERVER_ACCOUNT_UID|SD_VARLINK_SERVER_INHERIT_USERDATA, m);
r = varlink_server_new(
&s,
SD_VARLINK_SERVER_ACCOUNT_UID|SD_VARLINK_SERVER_INHERIT_USERDATA|
SD_VARLINK_SERVER_ALLOW_FD_PASSING_INPUT,
m);
if (r < 0)
return log_error_errno(r, "Failed to allocate varlink server object: %m");
@@ -298,10 +290,6 @@ int manager_connect_varlink(Manager *m) {
if (r < 0)
return log_error_errno(r, "Failed to attach varlink connection to event loop: %m");
r = sd_varlink_server_bind_connect(s, on_connect);
if (r < 0)
return log_error_errno(r, "Failed to set on-connect callback for varlink: %m");
m->varlink_server = TAKE_PTR(s);
return 0;
}
+5 -9
View File
@@ -1637,14 +1637,6 @@ static int process_connection(sd_varlink_server *server, int _fd) {
TAKE_FD(fd);
vl = sd_varlink_ref(vl);
r = sd_varlink_set_allow_fd_passing_input(vl, true);
if (r < 0)
return log_error_errno(r, "Failed to enable fd passing for read: %m");
r = sd_varlink_set_allow_fd_passing_output(vl, true);
if (r < 0)
return log_error_errno(r, "Failed to enable fd passing for write: %m");
for (;;) {
r = sd_varlink_process(vl);
if (r == -ENOTCONN) {
@@ -1690,7 +1682,11 @@ 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 = varlink_server_new(&server, SD_VARLINK_SERVER_INHERIT_USERDATA, NULL);
r = varlink_server_new(
&server,
SD_VARLINK_SERVER_INHERIT_USERDATA|
SD_VARLINK_SERVER_ALLOW_FD_PASSING_INPUT|SD_VARLINK_SERVER_ALLOW_FD_PASSING_OUTPUT,
NULL);
if (r < 0)
return log_error_errno(r, "Failed to allocate varlink server: %m");