aboutsummaryrefslogtreecommitdiffstats
path: root/domain.c
diff options
context:
space:
mode:
authorGerd Hoffmann <kraxel@redhat.com>2012-08-23 14:30:19 +0200
committerGerd Hoffmann <kraxel@redhat.com>2012-08-23 14:30:19 +0200
commitb4a1753dbcaf6a183baa8d87626146791f4870f2 (patch)
treeeb054aaa9f122ae47a76eb6f6914bc3e2a0ab7c5 /domain.c
parentdeca9047094c875aa50ed773c6c08ea57042db13 (diff)
downloadvconsole-b4a1753dbcaf6a183baa8d87626146791f4870f2.tar.gz
handle libvirt disconnect
Diffstat (limited to 'domain.c')
-rw-r--r--domain.c11
1 files changed, 9 insertions, 2 deletions
diff --git a/domain.c b/domain.c
index 079994f..c60ee09 100644
--- a/domain.c
+++ b/domain.c
@@ -358,6 +358,14 @@ void domain_kill(struct vconsole_domain *dom)
}
}
+void domain_free(struct vconsole_domain *dom)
+{
+ virDomainPtr d = virDomainLookupByUUIDString(dom->conn->ptr, dom->uuid);
+
+ domain_close_tab(dom, d);
+ g_free(dom);
+}
+
void domain_update(struct vconsole_connect *conn,
virDomainPtr d, virDomainEventType event)
{
@@ -409,9 +417,8 @@ void domain_update(struct vconsole_connect *conn,
/* handle events */
switch (event) {
case VIR_DOMAIN_EVENT_UNDEFINED:
- domain_close_tab(dom, d);
gtk_tree_store_remove(conn->win->store, &guest);
- g_free(dom);
+ domain_free(dom);
return;
case VIR_DOMAIN_EVENT_STARTED:
domain_connect(dom, d);