clarify comments about socket activation (Thanks mxf)
This commit is contained in:
parent
70793d8bb9
commit
b6e859787e
|
@ -615,7 +615,9 @@ int main(int argc, char *argv[]) {
|
||||||
ev_io_start(main_loop, ipc_io);
|
ev_io_start(main_loop, ipc_io);
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Also handle the UNIX domain sockets passed via socket activation */
|
/* Also handle the UNIX domain sockets passed via socket activation. The
|
||||||
|
* parameter 1 means "remove the environment variables", we don’t want to
|
||||||
|
* pass these to child processes. */
|
||||||
int fds = sd_listen_fds(1);
|
int fds = sd_listen_fds(1);
|
||||||
if (fds < 0)
|
if (fds < 0)
|
||||||
ELOG("socket activation: Error in sd_listen_fds\n");
|
ELOG("socket activation: Error in sd_listen_fds\n");
|
||||||
|
|
|
@ -63,8 +63,11 @@ sub activate_i3 {
|
||||||
|
|
||||||
# We are about to exec, but we did not modify $^F to include $socket
|
# We are about to exec, but we did not modify $^F to include $socket
|
||||||
# when creating the socket (because the file descriptor could have a
|
# when creating the socket (because the file descriptor could have a
|
||||||
# number != 3 which would lead to i3 leaking a file descriptor).
|
# number != 3 which would lead to i3 leaking a file descriptor). This
|
||||||
# Therefore, we explicitly have to clear the file descriptor flags now:
|
# caused Perl to set the FD_CLOEXEC flag, which would close $socket on
|
||||||
|
# exec(), effectively *NOT* passing $socket to the new process.
|
||||||
|
# Therefore, we explicitly clear FD_CLOEXEC (the only flag right now)
|
||||||
|
# by setting the flags to 0.
|
||||||
POSIX::fcntl($socket, F_SETFD, 0) or die "Could not clear fd flags: $!";
|
POSIX::fcntl($socket, F_SETFD, 0) or die "Could not clear fd flags: $!";
|
||||||
|
|
||||||
# If the socket does not use file descriptor 3 by chance already, we
|
# If the socket does not use file descriptor 3 by chance already, we
|
||||||
|
|
Loading…
Reference in New Issue