From: Daniel P. Berrange Date: Mon, 12 Jun 2006 22:21:04 +0000 (+0000) Subject: Do a 'ping' test when opening connection to verify XenD really is there & alive X-Git-Url: http://xenbits.xensource.com/gitweb?a=commitdiff_plain;h=1213bedf6d9953b9d4fb5e40ac95bbc435cd3e89;p=libvirt.git Do a 'ping' test when opening connection to verify XenD really is there & alive --- diff --git a/ChangeLog b/ChangeLog index 9def3aaa20..0474e13430 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,10 @@ +Mon Jun 12 17:22:24 EDT 2006 Daniel P. Berrange + + * src/xend_internal.c: Call 'xenDomainGetVersion' when trying + to open a connection, as a sort of "ping" test to verify the + Xen daemon connection - fail the open method, if the "ping" is + not successful. + Mon Jun 05 22:31:20 EDT 2006 Daniel P. Berrange * src/test.c, src/test.h: New 'mock' hypervisor driver providing diff --git a/src/xend_internal.c b/src/xend_internal.c index 64cd72edda..37e5934f1b 100644 --- a/src/xend_internal.c +++ b/src/xend_internal.c @@ -1651,6 +1651,7 @@ xenDaemonOpen(virConnectPtr conn, const char *name, int flags) { xmlURIPtr uri; int ret; + unsigned long version; if (name == NULL) { name = "http://localhost:8000/"; @@ -1663,8 +1664,17 @@ xenDaemonOpen(virConnectPtr conn, const char *name, int flags) } xmlFreeURI(uri); - - return (xenDaemonOpen_tcp(conn, "localhost", 8000)); + + ret = xenDaemonOpen_tcp(conn, "localhost", 8000); + if (ret < 0) { + return ret; + } + + /* A sort of "ping" to make sure the daemon is actually + alive & well, rather than just assuming it is */ + if ((ret = xenDaemonGetVersion(conn, &version)) < 0) { + return ret; + } /* return(xenDaemonOpen_unix(conn, "/var/lib/xend/xend-socket")); */