From: Visarion Alexandru <viorel.visarion(a)gmail.com>
Learn to set the address that vnc is listening on.
We first remove the 'listen' attribute to avoid inconsistencies
checks between the 'listen' attribute and the 'address'
attribute of the 'listen' node.
---
.../libvirt-gconfig-domain-graphics-vnc.c | 28 ++++++++++++++++++++++
.../libvirt-gconfig-domain-graphics-vnc.h | 3 +++
libvirt-gconfig/libvirt-gconfig.sym | 1 +
3 files changed, 32 insertions(+)
diff --git a/libvirt-gconfig/libvirt-gconfig-domain-graphics-vnc.c
b/libvirt-gconfig/libvirt-gconfig-domain-graphics-vnc.c
index fc26bb9..dc7641b 100644
--- a/libvirt-gconfig/libvirt-gconfig-domain-graphics-vnc.c
+++ b/libvirt-gconfig/libvirt-gconfig-domain-graphics-vnc.c
@@ -120,6 +120,34 @@ void
gvir_config_domain_graphics_vnc_set_port(GVirConfigDomainGraphicsVnc *graph
NULL);
}
+/**
+ * gvir_config_domain_graphics_vnc_set_listen_address:
+ * @graphics: a #GVirConfigDomainGraphicsVnc
+ * @listens: (in) (element-type LibvirtGConfig.DomainGraphicsListen):
+ *
+ * This method is used to set the various listen nodes a #GVirConfigDomainGraphicsVnc
+ * device can handle.
+*/
+void gvir_config_domain_graphics_vnc_set_listen_address(GVirConfigDomainGraphicsVnc
*graphics,
+ GList *listens)
+{
+ GList *it;
+
+ g_return_if_fail(GVIR_CONFIG_IS_DOMAIN_GRAPHICS_VNC(graphics));
+
+ gvir_config_object_remove_attribute (GVIR_CONFIG_OBJECT(graphics),
+ "listen");
+ gvir_config_object_delete_children (GVIR_CONFIG_OBJECT (graphics),
+ "listen", NULL);
+
+ for (it = listens; it != NULL; it = it->next) {
+ g_return_if_fail(GVIR_CONFIG_IS_DOMAIN_GRAPHICS_LISTEN(it->data));
+
+ gvir_config_object_attach_add(GVIR_CONFIG_OBJECT(graphics),
+ GVIR_CONFIG_OBJECT(it->data));
+ }
+}
+
void gvir_config_domain_graphics_vnc_set_password(GVirConfigDomainGraphicsVnc *graphics,
const char *password)
{
diff --git a/libvirt-gconfig/libvirt-gconfig-domain-graphics-vnc.h
b/libvirt-gconfig/libvirt-gconfig-domain-graphics-vnc.h
index fe78621..f524dcc 100644
--- a/libvirt-gconfig/libvirt-gconfig-domain-graphics-vnc.h
+++ b/libvirt-gconfig/libvirt-gconfig-domain-graphics-vnc.h
@@ -73,6 +73,9 @@ int gvir_config_domain_graphics_vnc_get_port(GVirConfigDomainGraphicsVnc
*graphi
void gvir_config_domain_graphics_vnc_set_port(GVirConfigDomainGraphicsVnc *graphics,
int port);
+void gvir_config_domain_graphics_vnc_set_listen_address(GVirConfigDomainGraphicsVnc
*graphics,
+ GList *listens);
+
void gvir_config_domain_graphics_vnc_set_password(GVirConfigDomainGraphicsVnc *graphics,
const char *password);
diff --git a/libvirt-gconfig/libvirt-gconfig.sym b/libvirt-gconfig/libvirt-gconfig.sym
index fab6059..117a648 100644
--- a/libvirt-gconfig/libvirt-gconfig.sym
+++ b/libvirt-gconfig/libvirt-gconfig.sym
@@ -768,6 +768,7 @@ global:
gvir_config_domain_graphics_listen_address_get_type;
gvir_config_domain_graphics_listen_address_new;
gvir_config_domain_graphics_listen_address_new_from_xml;
+ gvir_config_domain_graphics_vnc_set_listen_address;
} LIBVIRT_GCONFIG_0.2.2;
# .... define new API here using predicted next version number ....
--
2.7.4