[Spice-devel] [PATCH spice] reds: don't unlink existing UNIX socket
marcandre.lureau at redhat.com
marcandre.lureau at redhat.com
Thu Dec 20 13:37:40 UTC 2018
From: Marc-André Lureau <marcandre.lureau at redhat.com>
Since "reds: add Unix socket support" (commit
5365caeaae537f564d160936e60f71b2dc964ad1), the Spice server will
remove existing socket before binding.
Although it may seem handy at first, this is a bad idea, as it may
create confusion (or worse).
Fortunately, passing the Unix path is done mostly by command line,
with qemu addr= Spice argument. Libvirt uses fd-passing socketpair
instead, so the impact should be fairly limited, but we should
probably warn the users in the release notes if we adopt this patch.
Signed-off-by: Marc-André Lureau <marcandre.lureau at redhat.com>
---
server/reds.c | 1 -
server/tests/test-listen.c | 1 +
2 files changed, 1 insertion(+), 1 deletion(-)
diff --git a/server/reds.c b/server/reds.c
index cdbb94cb..8cd2bc86 100644
--- a/server/reds.c
+++ b/server/reds.c
@@ -2527,7 +2527,6 @@ static int reds_init_socket(const char *addr, int portnr, int family)
local.sun_family = AF_UNIX;
g_strlcpy(local.sun_path, addr, sizeof(local.sun_path));
- unlink(local.sun_path);
len = SUN_LEN(&local);
if (bind(slisten, (struct sockaddr *)&local, len) == -1) {
perror("bind");
diff --git a/server/tests/test-listen.c b/server/tests/test-listen.c
index 640e8f12..ec92bed0 100644
--- a/server/tests/test-listen.c
+++ b/server/tests/test-listen.c
@@ -330,6 +330,7 @@ static void test_connect_unix(void)
SpiceServer *server = spice_server_new();
spice_server_set_name(server, "SPICE listen test");
spice_server_set_noauth(server);
+ unlink("test-listen.unix");
spice_server_set_addr(server, "test-listen.unix", SPICE_ADDR_FLAG_UNIX_ONLY);
result = spice_server_init(server, event_loop.core);
g_assert_cmpint(result, ==, 0);
--
2.20.1.2.gb21ebb671b
More information about the Spice-devel
mailing list