From e2712473f611f2235033a3facf9973fc2984faf2 Mon Sep 17 00:00:00 2001 From: "Daniel P. Berrange" Date: Tue, 17 Jun 2008 04:02:50 -0400 Subject: [PATCH] Add error message when conecting to inactive VM (Hiroyuki Kaguchi) --- src/main.c | 22 ++++++++++++++++++---- 1 file changed, 18 insertions(+), 4 deletions(-) diff --git a/src/main.c b/src/main.c index 82d362b..0252023 100644 --- a/src/main.c +++ b/src/main.c @@ -785,6 +785,7 @@ viewer_start (const char *uri, const char *name, GtkWidget *vnc; virConnectPtr conn = NULL; virDomainPtr dom = NULL; + virDomainInfo domInfo; char *host = NULL; char *vncport = NULL; char *transport = NULL; @@ -813,11 +814,24 @@ viewer_start (const char *uri, const char *name, usleep(500*1000); } while (!dom); - viewer_extract_vnc_graphics(dom, &vncport); - if (!vncport && !waitvnc) { - fprintf(stderr, "unable to find vnc graphics for %s\n", name); - return 4; + if (virDomainGetInfo(dom, &domInfo) != 0) { + fprintf(stderr, "unable to get information for %s\n", name); + return 6; } + + if (domInfo.state == VIR_DOMAIN_SHUTOFF && !waitvnc) { + fprintf(stderr, "%s is not running\n", name); + return 7; + } + + if (domInfo.state != VIR_DOMAIN_SHUTOFF) { + viewer_extract_vnc_graphics(dom, &vncport); + if (!vncport) { + fprintf(stderr, "unable to find vnc graphics for %s\n", name); + return 4; + } + } + if (!vncport) { virDomainFree(dom); usleep(300*1000);