[libvirt] [libvirt-php][PATCH] screenshot of remote host is available

warp.kawada at gmail.com warp.kawada at gmail.com
Thu Jun 2 06:26:27 UTC 2011


screenshot of remote host is available.
get_domain_object make so many error to message log, so you had better not  
use .

diff --git a/examples/libvirt.php b/examples/libvirt.php
index 1ca71b6..bf903f6 100644
--- a/examples/libvirt.php
+++ b/examples/libvirt.php
@@ -29,9 +29,9 @@
}

function domain_get_screenshot($domain) {
- $dom = $this->get_domain_object($domain);
-
- $tmp = libvirt_domain_get_screenshot($dom);
+ $dom = libvirt_domain_lookup_by_uuid_string($this->conn, $domain);
+ $hostname = $this->get_hostname();
+ $tmp = libvirt_domain_get_screenshot($dom, $hostname);
return ($tmp) ? $tmp : $this->_set_last_error();
}

diff --git a/src/libvirt-php.cb/src/libvirt-php.c
index 87e0467..4a53e33 100644
--- a/src/libvirt-php.c
+++ b/src/libvirt-php.c
@@ -1880,6 +1880,7 @@ PHP_FUNCTION(libvirt_domain_get_screenshot)
int port = -1;
int scancode = 10;
char *path;
+ char *hostname;

path = get_feature_binary("screenshot");
if (access(path, X_OK) != 0) {
@@ -1887,7 +1888,7 @@ PHP_FUNCTION(libvirt_domain_get_screenshot)
RETURN_FALSE;
}

- GET_DOMAIN_FROM_ARGS("r|l",&zdomain, &scancode);
+ GET_DOMAIN_FROM_ARGS("rs|l",&zdomain, &hostname, &scancode);

xml=virDomainGetXMLDesc(domain->domain, 0);
if (xml==NULL) {
@@ -1912,10 +1913,16 @@ PHP_FUNCTION(libvirt_domain_get_screenshot)
RETURN_FALSE;

if (childpid == 0) {
+ char *prm = NULL;
char tmpp[8] = { 0 };
-
+
snprintf(tmpp, sizeof(tmpp), ":%d", port);
- retval = execlp(path, basename(path), tmpp, file, NULL);
+ prm = emalloc((sizeof(tmpp) + sizeof(hostname)) * sizeof(char));
+ sprintf(prm, "%s%s", hostname, tmpp);
+
+ retval = execlp(path, basename(path), prm, file, NULL);
+
+ free(prm);
_exit( retval );
}
else {
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://listman.redhat.com/archives/libvir-list/attachments/20110602/8f20949a/attachment-0001.htm>


More information about the libvir-list mailing list