mirror of
https://gitlab.uni-freiburg.de/opensourcevdi/virt-viewer
synced 2025-12-27 06:23:42 +00:00
spice: add unix-path in .vv file support
This will allow to connect to a Spice server using a unix socket path, for example: [virt-viewer] type=spice unix-path=/var/run/user/1000/qemu/test/spice.sock Signed-off-by: Marc-André Lureau <marcandre.lureau@redhat.com> Reviewed-by: Christophe Fergeau <cfergeau@redhat.com>
This commit is contained in:
parent
f06a882b11
commit
be5ff83dfc
@ -162,7 +162,13 @@ fails.
|
||||
|
||||
The session type, either "spice", "vnc" or "ovirt".
|
||||
|
||||
=item C<host> (string, mandatory)
|
||||
=item C<unix-path> (string)
|
||||
|
||||
The server to connect to, using a Unix socket path. (supported with spice, since 8.0)
|
||||
|
||||
This option is incompatible with C<host>, C<port> and C<tls-port>.
|
||||
|
||||
=item C<host> (string)
|
||||
|
||||
The server host to connect to.
|
||||
|
||||
|
||||
@ -43,6 +43,7 @@
|
||||
* - newer-version-url: string specifying an URL to display when the minimum
|
||||
* version check fails
|
||||
* - type: string, mandatory, values: "spice" (later "vnc" etc..)
|
||||
* - unix-path: string
|
||||
* - host: string
|
||||
* - port: int
|
||||
* - tls-port: int
|
||||
@ -104,6 +105,7 @@ G_DEFINE_TYPE(VirtViewerFile, virt_viewer_file, G_TYPE_OBJECT);
|
||||
enum {
|
||||
PROP_DUMMY_PROPERTY,
|
||||
PROP_TYPE,
|
||||
PROP_UNIX_PATH,
|
||||
PROP_HOST,
|
||||
PROP_PORT,
|
||||
PROP_TLS_PORT,
|
||||
@ -326,6 +328,19 @@ virt_viewer_file_set_host(VirtViewerFile* self, const gchar* value)
|
||||
g_object_notify(G_OBJECT(self), "host");
|
||||
}
|
||||
|
||||
gchar*
|
||||
virt_viewer_file_get_unix_path(VirtViewerFile* self)
|
||||
{
|
||||
return virt_viewer_file_get_string(self, MAIN_GROUP, "unix-path");
|
||||
}
|
||||
|
||||
void
|
||||
virt_viewer_file_set_unix_path(VirtViewerFile* self, const gchar* value)
|
||||
{
|
||||
virt_viewer_file_set_string(self, MAIN_GROUP, "unix-path", value);
|
||||
g_object_notify(G_OBJECT(self), "unix-path");
|
||||
}
|
||||
|
||||
gchar*
|
||||
virt_viewer_file_get_file_type(VirtViewerFile* self)
|
||||
{
|
||||
@ -939,6 +954,9 @@ virt_viewer_file_set_property(GObject* object, guint property_id,
|
||||
case PROP_TYPE:
|
||||
virt_viewer_file_set_type(self, g_value_get_string(value));
|
||||
break;
|
||||
case PROP_UNIX_PATH:
|
||||
virt_viewer_file_set_unix_path(self, g_value_get_string(value));
|
||||
break;
|
||||
case PROP_HOST:
|
||||
virt_viewer_file_set_host(self, g_value_get_string(value));
|
||||
break;
|
||||
@ -1054,6 +1072,9 @@ virt_viewer_file_get_property(GObject* object, guint property_id,
|
||||
case PROP_TYPE:
|
||||
g_value_take_string(value, virt_viewer_file_get_file_type(self));
|
||||
break;
|
||||
case PROP_UNIX_PATH:
|
||||
g_value_take_string(value, virt_viewer_file_get_unix_path(self));
|
||||
break;
|
||||
case PROP_HOST:
|
||||
g_value_take_string(value, virt_viewer_file_get_host(self));
|
||||
break;
|
||||
|
||||
@ -54,6 +54,8 @@ VirtViewerFile* virt_viewer_file_new_from_buffer(const gchar* buf, gsize len,
|
||||
GError** error);
|
||||
gboolean virt_viewer_file_is_set(VirtViewerFile* self, const gchar* key);
|
||||
|
||||
gchar* virt_viewer_file_get_unix_path(VirtViewerFile* self);
|
||||
void virt_viewer_file_set_unix_path(VirtViewerFile* self, const gchar* value);
|
||||
gchar* virt_viewer_file_get_ca(VirtViewerFile* self);
|
||||
void virt_viewer_file_set_ca(VirtViewerFile* self, const gchar* value);
|
||||
gchar* virt_viewer_file_get_host(VirtViewerFile* self);
|
||||
|
||||
@ -505,21 +505,28 @@ fill_session(VirtViewerFile *file, SpiceSession *session)
|
||||
g_return_if_fail(VIRT_VIEWER_IS_FILE(file));
|
||||
g_return_if_fail(SPICE_IS_SESSION(session));
|
||||
|
||||
if (virt_viewer_file_is_set(file, "host")) {
|
||||
gchar *val = virt_viewer_file_get_host(file);
|
||||
g_object_set(G_OBJECT(session), "host", val, NULL);
|
||||
if (virt_viewer_file_is_set(file, "unix-path")) {
|
||||
gchar *val = virt_viewer_file_get_unix_path(file);
|
||||
g_object_set(G_OBJECT(session), "unix-path", val, NULL);
|
||||
g_free(val);
|
||||
}
|
||||
} else {
|
||||
if (virt_viewer_file_is_set(file, "host")) {
|
||||
gchar *val = virt_viewer_file_get_host(file);
|
||||
g_object_set(G_OBJECT(session), "host", val, NULL);
|
||||
g_free(val);
|
||||
}
|
||||
|
||||
if (virt_viewer_file_is_set(file, "port")) {
|
||||
gchar *port = g_strdup_printf("%d", virt_viewer_file_get_port(file));
|
||||
g_object_set(G_OBJECT(session), "port", port, NULL);
|
||||
g_free(port);
|
||||
}
|
||||
if (virt_viewer_file_is_set(file, "tls-port")) {
|
||||
gchar *tls_port = g_strdup_printf("%d", virt_viewer_file_get_tls_port(file));
|
||||
g_object_set(G_OBJECT(session), "tls-port", tls_port, NULL);
|
||||
g_free(tls_port);
|
||||
if (virt_viewer_file_is_set(file, "port")) {
|
||||
gchar *port = g_strdup_printf("%d", virt_viewer_file_get_port(file));
|
||||
g_object_set(G_OBJECT(session), "port", port, NULL);
|
||||
g_free(port);
|
||||
}
|
||||
|
||||
if (virt_viewer_file_is_set(file, "tls-port")) {
|
||||
gchar *tls_port = g_strdup_printf("%d", virt_viewer_file_get_tls_port(file));
|
||||
g_object_set(G_OBJECT(session), "tls-port", tls_port, NULL);
|
||||
g_free(tls_port);
|
||||
}
|
||||
}
|
||||
|
||||
if (virt_viewer_file_is_set(file, "username")) {
|
||||
|
||||
Loading…
Reference in New Issue
Block a user