aboutsummaryrefslogtreecommitdiffstats
path: root/connect.c
diff options
context:
space:
mode:
authorGerd Hoffmann <kraxel@redhat.com>2012-10-09 10:19:49 +0200
committerGerd Hoffmann <kraxel@redhat.com>2012-10-09 10:19:49 +0200
commit99aca14f3aa05f8012e039413f9f6388087b6ecc (patch)
tree8ea4e9eb70f53f6aea2417e5e413b21dbf39f4f2 /connect.c
parent9afddca3c27aa8aa2519ebc610d1dd59316a79ef (diff)
downloadvconsole-99aca14f3aa05f8012e039413f9f6388087b6ecc.tar.gz
error reporting
Diffstat (limited to 'connect.c')
-rw-r--r--connect.c23
1 files changed, 22 insertions, 1 deletions
diff --git a/connect.c b/connect.c
index 40d4dfc..dbee8f4 100644
--- a/connect.c
+++ b/connect.c
@@ -14,6 +14,25 @@ static int connect_domain_event(virConnectPtr c, virDomainPtr d,
return 0;
}
+static void connect_error(void *opaque, virErrorPtr err)
+{
+ struct vconsole_connect *conn = opaque;
+ GtkMessageType type;
+
+ switch (err->level) {
+ case VIR_ERR_WARNING:
+ type = GTK_MESSAGE_WARNING;
+ break;
+ case VIR_ERR_ERROR:
+ type = GTK_MESSAGE_ERROR;
+ break;
+ default:
+ type = GTK_MESSAGE_INFO;
+ break;
+ }
+ gtk_message(conn->win->toplevel, type, "%s", err->message);
+}
+
void connect_close(virConnectPtr c, int reason, void *opaque)
{
struct vconsole_connect *conn = opaque;
@@ -91,7 +110,8 @@ struct vconsole_connect *connect_init(struct vconsole_window *win,
conn = g_new0(struct vconsole_connect, 1);
conn->ptr = virConnectOpen(uri);
if (conn->ptr == NULL) {
- fprintf(stderr, "Failed to open connection to %s\n", uri);
+ gtk_message(win->toplevel, GTK_MESSAGE_ERROR,
+ "Failed to open connection to %s\n", uri);
g_free(conn);
return NULL;
}
@@ -99,6 +119,7 @@ struct vconsole_connect *connect_init(struct vconsole_window *win,
name = virConnectGetHostname(conn->ptr);
virConnectDomainEventRegister(conn->ptr, connect_domain_event,
conn, NULL);
+ virConnSetErrorFunc(conn->ptr, conn, connect_error);
#if LIBVIR_VERSION_NUMBER >= 10000 /* 0.10.0 */
virConnectRegisterCloseCallback(conn->ptr, connect_close,
conn, NULL);