sd-varlink: add new sd_varlink_get_n_fds() helper

This new call returns how many fds have been associated with the current
incoming message.
This commit is contained in:
Lennart Poettering
2025-02-20 18:11:31 +01:00
parent cfeeaebafe
commit 59f5836e71
3 changed files with 11 additions and 0 deletions
+1
View File
@@ -1069,6 +1069,7 @@ global:
sd_varlink_get_current_method;
sd_varlink_get_description;
sd_varlink_get_input_fd;
sd_varlink_get_n_fds;
sd_varlink_get_output_fd;
sd_varlink_reset_fds;
sd_varlink_server_listen_name;
+9
View File
@@ -3183,6 +3183,15 @@ _public_ int sd_varlink_take_fd(sd_varlink *v, size_t i) {
return TAKE_FD(v->input_fds[i]);
}
_public_ int sd_varlink_get_n_fds(sd_varlink *v) {
assert_return(v, -EINVAL);
if (!v->allow_fd_passing_input)
return -EPERM;
return (int) v->n_input_fds;
}
static int verify_unix_socket(sd_varlink *v) {
assert(v);
+1
View File
@@ -195,6 +195,7 @@ int sd_varlink_reset_fds(sd_varlink *v);
int sd_varlink_peek_fd(sd_varlink *v, size_t i);
int sd_varlink_peek_dup_fd(sd_varlink *v, size_t i);
int sd_varlink_take_fd(sd_varlink *v, size_t i);
int sd_varlink_get_n_fds(sd_varlink *v);
int sd_varlink_set_allow_fd_passing_input(sd_varlink *v, int b);
int sd_varlink_set_allow_fd_passing_output(sd_varlink *v, int b);