2ba7fe5525
rump tcp/ip stack: * sshd likes to fork and then re-exec itself ==> trap execve() and augment the env with the current parameters essential to a rump kernel (kernel communication fd, information about dup2'd file descriptors) * sshd likes to play lots of games with pipes, socketpairs and dup{,2}() ==> make sure we do not close essential rump client descriptors: dup() them to a safe place, except for F_CLOSEM where we simply leave them alone. also, partially solved by the above, make sure the process's set of rump kernel descriptors persists over exec() * sshd likes to chdir() before exec ==> for unix-style rump_sp(7) sockets save the full path on the initial exec and use it afterwards. thread the path through the environment in execve() |
||
---|---|---|
.. | ||
Makefile | ||
rumpuser_daemonize.c | ||
rumpuser_dl.c | ||
rumpuser_int.h | ||
rumpuser_net.c | ||
rumpuser_pth_dummy.c | ||
rumpuser_pth.c | ||
rumpuser_sp.c | ||
rumpuser.3 | ||
rumpuser.c | ||
shlib_version | ||
sp_common.c |