baloo | #include <sys/types.h>
#include <sys/socket.h>
#include <netdb.h>
#include <stddef.h>
void preloadNSS() {
struct addrinfo *res = NULL;
char * previous_env = getenv("LOCALDOMAIN");
setenv("LOCALDOMAIN", "invalid", 1);
if (getaddrinfo("this.pre-initializes.the.dns.resolvers.invalid.", "http", NULL, &res) != 0) {
if (res) freeaddrinfo(res);
}
if (previous_env)
setenv("LOCALDOMAIN", previous_env, 1);
else
unsetenv("LOCALDOMAIN");
}
int main() {
preloadNSS();
}
This forces nss to make a dns lookup, and to load the nss_dns.so
| 23:03:27 |
baloo | client # /dev/vda on / type ext4 (rw,relatime)
client # store on /nix/.ro-store type 9p (rw,relatime,dirsync,loose,access=client,trans=virtio)
client # tmpfs on /nix/.rw-store type tmpfs (rw,relatime,mode=755)
client # shared on /tmp/shared type 9p (rw,relatime,sync,dirsync,access=client,trans=virtio)
client # xchg on /tmp/xchg type 9p (rw,relatime,sync,dirsync,access=client,trans=virtio)
client # overlay on /nix/store type overlay (rw,relatime,lowerdir=/mnt-root/nix/.ro-store,upperdir=/mnt-root/nix/.rw-store/store,workdir=/mnt-root/nix/.rw-store/work)
client # overlay on /nix/store type overlay (ro,relatime,lowerdir=/mnt-root/nix/.ro-store,upperdir=/mnt-root/nix/.rw-store/store,workdir=/mnt-root/nix/.rw-store/work)
| 01:20:38 |
baloo | interestingly, my nix-daemon does mount
[pid 42542] mount("/nix/store/9bh3986bpragfjmr32gay8p95k91q4gy-glibc-2.33-47", "/nix/store/r4rn52pvm83frvq2q4a2zb3vdq73l5x2-example.com.drv.c
hroot/nix/store/9bh3986bpragfjmr32gay8p95k91q4gy-glibc-2.33-47", 0x7f833016bef1, MS_BIND|MS_REC, NULL) = 0
| 01:28:31 |