Systemd/src/nspawn
Lennart Poettering ae3dde8012 machinectl: fix race when opening new shells with "machinectl shell"
Previously, we'd allocate the TTY, spawn a service on it, but
immediately start processing the TTY and forwarding it to whatever the
commnd was started on. This is however problematic, as the TTY might get
actually opened only much later by the service. We'll hence first get
EIOs on the master as the other side is still closed, and hence
considered it hung up and terminated the session.

With this change we add a flag to the pty forwarding logic:
PTY_FORWARD_IGNORE_INITIAL_VHANGUP. If set, we'll ignore all hangups
(i.e. EIOs) on the master PTY until the first byte is successfully read.
From that point on we consider a hangup/EIO a regular connection termination. This
way, we handle the race: when we get EIO initially we'll ignore it,
until the connection is properly set up, at which time we start
honouring it.
2015-10-07 20:10:48 +02:00
..
.gitignore
Makefile
nspawn-cgroup.c nspawn: remove nspawn.h, it's empty now 2015-09-07 18:47:34 +02:00
nspawn-cgroup.h nspawn: split out cgroup related calls into nspawn-cgroup.[ch] 2015-09-07 18:44:30 +02:00
nspawn-expose-ports.c tree-wide: port more code to use send_one_fd() and receive_one_fd() 2015-09-29 21:08:37 +02:00
nspawn-expose-ports.h nspawn: split all port exposure code into nspawn-expose-port.[ch] 2015-09-07 18:44:30 +02:00
nspawn-gperf.gperf nspawn: add missing comma to gperf file 2015-09-09 08:36:20 +02:00
nspawn-mount.c nspawn: mount /sys as tmpfs, and then mount only select subdirs of the real sysfs below it 2015-09-30 15:19:33 +02:00
nspawn-mount.h nspawn: mount /sys as tmpfs, and then mount only select subdirs of the real sysfs below it 2015-09-30 15:19:33 +02:00
nspawn-network.c nspawn: remove nspawn.h, it's empty now 2015-09-07 18:47:34 +02:00
nspawn-network.h nspawn: split out network related code to nspawn-network.[ch] 2015-09-07 18:44:30 +02:00
nspawn-register.c nspawn: remove nspawn.h, it's empty now 2015-09-07 18:47:34 +02:00
nspawn-register.h nspawn: split out machined registration code to nspawn-register.[ch] 2015-09-07 18:44:31 +02:00
nspawn-settings.c tree-wide: clean up log_syntax() usage 2015-09-30 22:26:16 +02:00
nspawn-settings.h nspawn: remove nspawn.h, it's empty now 2015-09-07 18:47:34 +02:00
nspawn-setuid.c nspawn: remove nspawn.h, it's empty now 2015-09-07 18:47:34 +02:00
nspawn-setuid.h nspawn: split out --uid= logic into nspawn-setuid.[ch] 2015-09-07 18:44:31 +02:00
nspawn.c machinectl: fix race when opening new shells with "machinectl shell" 2015-10-07 20:10:48 +02:00