Frediano, Thank you for the unix-socket patch for x11spice! I have
tried it and it works perfectly. (I did not encounter any problems/issues).
Incidentally, I stumbled upon a similar unix-socket patch
for xspice. Search for "patch xserver-xspice" in the following gist,
https://gist.github.com/tarruda/25bca9aa192a2a9ee690054c0b23aa08 . There is a
related thread at
https://discuss.linuxcontainers.org/t/tutorial-how-to-run-a-full-desktop-environment-on-lxd/14644
. I have tried the xspice patch and it also works perfectly.
On 2022-08-01, fredd...@gmail.com wrote: Hi, did you manage
to test this? Issues? Regards, Frediano Il giorno lun 18 lug 2022 alle ore
09:40 Frediano Ziglio ha scritto: > > Il giorno lun 18 lug 2022 alle ore
09:06 Frediano Ziglio > ha scritto: > > > > Il giorno lun 18
lug 2022 alle ore 08:56 bob cantor > > ha scritto: > > > >
> > Is it possible to connect to xspice via a unix-socket rather than
a tcp-port? (I would like to connect to xspice running in a LXC comtainer. The
container and host are on the same machine, but there is no network connection
between them). > > > > > > > Hi, > > currently
only TCP is supported but the change should not be that difficult. > >
> > Hi, > something like this should do (not tested): > >
diff --git a/src/listen.c b/src/listen.c > index d00358d..292b20a 100644
> --- a/src/listen.c > +++ b/src/listen.c > @@ -39,12 +39,15 @@ >
#include > #include > > +#include > + > #include "listen.h"
> #include "x11spice.h" > > #define SPICE_URI_PREFIX "spice://" >
+#define SPICE_UNIX_URI_PREFIX "spice+unix://" > > -int
listen_parse(const char *listen_spec, char **addr, int > *port_start, int
*port_end) > +int listen_parse(const char *listen_spec, char **addr, int
> *port_start, int *port_end, int *flags) > { > int leading = 0;
> int trailing = 0; > @@ -54,6 +57,15 @@ int listen_parse(const char
*listen_spec, char > **addr, int *port_start, int *por > > *port_start
= *port_end = -1; > *addr = NULL; > + *flags = 0; > + > + if
(strncmp(listen_spec, SPICE_UNIX_URI_PREFIX, >
strlen(SPICE_UNIX_URI_PREFIX)) == 0) { > + listen_spec +=
strlen(SPICE_UNIX_URI_PREFIX); > + > + *flags =
SPICE_ADDR_FLAG_UNIX_ONLY; > + *addr = strdup(listen_spec); > + return 0;
> + } > > /* Allow form of spice:// */ > if
(strlen(listen_spec) > strlen(SPICE_URI_PREFIX)) > diff --git
a/src/listen.h b/src/listen.h > index 78f8792..86d5594 100644 > ---
a/src/listen.h > +++ b/src/listen.h > @@ -25,7 +25,7 @@ >
/*
> ** Prototypes >
**--*/
> -int listen_parse(const char *listen_spec, char **addr, int >
*port_start, int *port_end); > +int listen_parse(const char *listen_spec,
char **addr, int > *port_start, int *port_end, int *flags); > int
listen_find_open_port(const char *addr, int start, int end, int *port); >
> #endif > diff --git a/src/spice.c b/src/spice.c > index
0c6c610..fe5be17 100644 > --- a/src/spice.c > +++ b/src/spice.c >
@@ -582,9 +582,10 @@ static int try_listen(spice_t *s, options_t *options) >
char *addr = NULL; > int start; > int rc; > + int flags; > >
> - rc = listen_parse(options->listen, &addr, &start, &port);
> + rc = listen_parse(options->listen, &addr, &start, &port,
&flags); > if (rc) > return rc; > > @@ -599,7 +600,7 @@
static int try_listen(spice_t *s, options_t *options) > } > > if
(addr) { > - spice_server_set_addr(s->server, addr, 0); > +
spice_server_set_addr(s->server, addr, flags); > free(addr); > } >
> Frediano
--
This mail was sent by Confidesk secure mail service. Check it on
https://www.confidesk.com