varlink: move O_NONBLOCK setting to varlink_server_listen_fd(), and set O_CLOEXEC too

Let's move setting of O_NONBLOCK into varlink_server_listen_fd() and out
of varlink_server_create_listen_fd_socket(). The latter has two callers:
varlink_server_listen_fd() and varlink_server_listen_address(), which
guarantees O_CLOEXEC+O_NONBLOCK anyway, hence no neet to repeat the
logic.
This commit is contained in:
Lennart Poettering
2023-09-25 16:04:01 +02:00
parent 0e19744232
commit a4edf0335d

View File

@@ -2682,10 +2682,6 @@ static int varlink_server_create_listen_fd_socket(VarlinkServer *s, int fd, Varl
assert(fd >= 0);
assert(ret_ss);
r = fd_nonblock(fd, true);
if (r < 0)
return r;
ss = new(VarlinkServerSocket, 1);
if (!ss)
return log_oom_debug();
@@ -2716,6 +2712,14 @@ int varlink_server_listen_fd(VarlinkServer *s, int fd) {
assert_return(s, -EINVAL);
assert_return(fd >= 0, -EBADF);
r = fd_nonblock(fd, true);
if (r < 0)
return r;
r = fd_cloexec(fd, true);
if (r < 0)
return r;
r = varlink_server_create_listen_fd_socket(s, fd, &ss);
if (r < 0)
return r;