From a3383f5fdb09b4d2d79f24f793d7784d0886c909 Mon Sep 17 00:00:00 2001 From: e2r2fx <61915524+e2r2fx@users.noreply.github.com> Date: Tue, 18 Mar 2025 10:41:51 -0400 Subject: [PATCH] expressvpn: fix daemon not able to modify resolv.conf (#379943) * fix(expressvpn): daemon not able to modify resolv.conf * update expressvpndFHS wrapper pname * remove unnecessary copying of hosts's resolv.conf --- pkgs/by-name/ex/expressvpn/package.nix | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/pkgs/by-name/ex/expressvpn/package.nix b/pkgs/by-name/ex/expressvpn/package.nix index f97ec3967ee2..641edd36cb72 100644 --- a/pkgs/by-name/ex/expressvpn/package.nix +++ b/pkgs/by-name/ex/expressvpn/package.nix @@ -49,13 +49,21 @@ let }; expressvpndFHS = buildFHSEnv { - inherit pname version; + inherit version; + pname = "expressvpnd"; # When connected, it directly creates/deletes resolv.conf to change the DNS entries. # Since it's running in an FHS environment, it has no effect on actual resolv.conf. # Hence, place a watcher that updates host resolv.conf when FHS resolv.conf changes. + + # Mount the host's resolv.conf to the container's /etc/resolv.conf runScript = writeScript "${pname}-wrapper" '' - cp /host/etc/resolv.conf /etc/resolv.conf; + mkdir -p /host/etc + [ -e /host/etc/resolv.conf ] || touch /host/etc/resolv.conf + mount --bind /etc/resolv.conf /host/etc/resolv.conf + mount -o remount,rw /host/etc/resolv.conf + trap "umount /host/etc/resolv.conf" EXIT + while inotifywait /etc 2>/dev/null; do cp /etc/resolv.conf /host/etc/resolv.conf;