From 8a4a57741f187db742ca00ab53ad665307b32369 Mon Sep 17 00:00:00 2001
From: Ludovico de Nittis <ludovico.denittis@collabora.com>
Date: Wed, 3 Mar 2021 13:41:51 +0100
Subject: [PATCH] pressure-vessel: Mount resolved varlink socket if available

nss-resolve uses systemd-resolved to resolve hostnames and, since
systemd 247, it utilize the varlink API.

To make it run inside the container we need to expose the varlink
socket.

Check the upstream commit for more info
https://github.com/flatpak/flatpak/commit/e5da98ff4b12a080044d58b4cd2fb4edb4491132

Fixes: #61

Signed-off-by: Ludovico de Nittis <ludovico.denittis@collabora.com>
---
 pressure-vessel/flatpak-run-private.h | 1 +
 pressure-vessel/flatpak-run.c         | 4 ++--
 pressure-vessel/wrap-setup.c          | 2 ++
 3 files changed, 5 insertions(+), 2 deletions(-)

diff --git a/pressure-vessel/flatpak-run-private.h b/pressure-vessel/flatpak-run-private.h
index a5931a61e..4dec7e217 100644
--- a/pressure-vessel/flatpak-run-private.h
+++ b/pressure-vessel/flatpak-run-private.h
@@ -42,6 +42,7 @@ void flatpak_run_add_x11_args (FlatpakBwrap *bwrap,
                                gboolean      allowed);
 gboolean flatpak_run_add_wayland_args (FlatpakBwrap *bwrap);
 void flatpak_run_add_pulseaudio_args (FlatpakBwrap *bwrap);
+void flatpak_run_add_resolved_args (FlatpakBwrap *bwrap);
 gboolean flatpak_run_add_system_dbus_args (FlatpakBwrap *app_bwrap);
 gboolean flatpak_run_add_session_dbus_args (FlatpakBwrap *app_bwrap);
 void     flatpak_run_apply_env_appid (FlatpakBwrap *bwrap,
diff --git a/pressure-vessel/flatpak-run.c b/pressure-vessel/flatpak-run.c
index b62c520f7..a43babb7b 100644
--- a/pressure-vessel/flatpak-run.c
+++ b/pressure-vessel/flatpak-run.c
@@ -727,8 +727,7 @@ flatpak_run_add_pulseaudio_args (FlatpakBwrap *bwrap)
     flatpak_bwrap_add_args (bwrap, "--dev-bind", "/dev/snd", "/dev/snd", NULL);
 }
 
-#if 0
-static void
+void
 flatpak_run_add_resolved_args (FlatpakBwrap *bwrap)
 {
   const char *resolved_socket = "/run/systemd/resolve/io.systemd.Resolve";
@@ -737,6 +736,7 @@ flatpak_run_add_resolved_args (FlatpakBwrap *bwrap)
     flatpak_bwrap_add_args (bwrap, "--bind", resolved_socket, resolved_socket, NULL);
 }
 
+#if 0
 static void
 flatpak_run_add_journal_args (FlatpakBwrap *bwrap)
 {
diff --git a/pressure-vessel/wrap-setup.c b/pressure-vessel/wrap-setup.c
index 5fb54a13f..081b43d0e 100644
--- a/pressure-vessel/wrap-setup.c
+++ b/pressure-vessel/wrap-setup.c
@@ -57,6 +57,8 @@ pv_wrap_share_sockets (FlatpakBwrap *bwrap,
   pv_environ_lock_env (container_env, "PULSE_SERVER", NULL);
   pv_environ_lock_env (container_env, "XAUTHORITY", NULL);
 
+  flatpak_run_add_resolved_args (sharing_bwrap);
+
   flatpak_run_add_font_path_args (sharing_bwrap);
 
   /* We need to set up IPC rendezvous points relatively late, so that
-- 
GitLab