X-Git-Url: http://git.ipfire.org/?a=blobdiff_plain;f=src%2Fshared%2Fvarlink.c;fp=src%2Fshared%2Fvarlink.c;h=713aff289597929523a85a810f17c4653eed2950;hb=b219dcd45ac88ee18d2e3217f9f00631503bb77a;hp=1bfa4c70818b77d55dc70e6caf00127c72c3c7b8;hpb=52bd61373b89bb6b458f5020b23a92253b12f235;p=thirdparty%2Fsystemd.git diff --git a/src/shared/varlink.c b/src/shared/varlink.c index 1bfa4c70818..713aff28959 100644 --- a/src/shared/varlink.c +++ b/src/shared/varlink.c @@ -3093,7 +3093,7 @@ int varlink_push_fd(Varlink *v, int fd) { return i; } -int varlink_dup_fd(Varlink *v, int fd) { +int varlink_push_dup_fd(Varlink *v, int fd) { _cleanup_close_ int dp = -1; int r; @@ -3141,6 +3141,16 @@ int varlink_peek_fd(Varlink *v, size_t i) { return v->input_fds[i]; } +int varlink_peek_dup_fd(Varlink *v, size_t i) { + int fd; + + fd = varlink_peek_fd(v, i); + if (fd < 0) + return fd; + + return RET_NERRNO(fcntl(fd, F_DUPFD_CLOEXEC, 3)); +} + int varlink_take_fd(Varlink *v, size_t i) { assert_return(v, -EINVAL);