]> git.lizzy.rs Git - plan9front.git/commit
ip/tftpd: add -n namespace-file flag (thanks sam-d)
authorcinap_lenrek <cinap_lenrek@felloff.net>
Tue, 23 Feb 2021 00:47:33 +0000 (01:47 +0100)
committercinap_lenrek <cinap_lenrek@felloff.net>
Tue, 23 Feb 2021 00:47:33 +0000 (01:47 +0100)
commit27ad886c956acb71b4165219fcdd54c50b1c7811
tree6289b5de482d5ad8676dfb7fa7c1d0f584d70e72
parenta96cf495fa9a315c86c723bd0a0bcd8bffaef42a
ip/tftpd: add -n namespace-file flag (thanks sam-d)

tftpd currently unconditionally sets its namespace via /lib/namespace
(newns("none", nil)), which stymied my attempts to pxe boot the
openbsd installer without creating a real /etc dir on 9front, which
would've been gross.

I tried working around this with -h (and -r for good measure), but
again hit issues because the namespace is rebuilt from scratch -- any
binds of /386, /amd64, /cfg/pxe, etc. into the tftp-specific directory
disappeared from tftpd's namespace and rendered my *9front* boxes
unable to boot. I could maintain copies of the needed files in the
tftp-specific directory, but that'd be kind of a drag.

The following patch adds a -n flag to allow the specification of a
namespace file in place of /lib/namespace; similar to ip/ftpd.

I thought about setting up a /lib/namespace.tftp to act as a default
rather than continuing to use /lib/namespace by default (which
security-wise is about the same as allowing 9p mounts by user none,
which I also have disabled), but I had trouble coming up with a sane
default. Maybe someone more experienced would like to try that out.

- sam-d
sys/man/8/dhcpd
sys/src/cmd/ip/tftpd.c