[libvirt] [PATCH] libvirt-php: fix libvirt_connect and libvirt_version failure without Xen
Michal Novotny
minovotn at redhat.com
Tue Mar 8 10:37:10 UTC 2011
Hi Tiziano,
thanks a lot for your patches. I pushed them already. Just one more
thing: By libvirt-php prefix I didn't mean to start subject with
libvirt-php directly but to format patches using `git format-patch -X
--subject-prefix="libvirt-php PATCH"` or you can set it directly in the
.git/config file in your cloned repository. You can use git send-email
since your version of git should support it however the resulting
subject will be:
[libvirt] [libvirt-php PATCH] something
and now it's still:
[libvirt] [PATCH] something
So if you don't put "libvirt-php" in the beginning of your commit line I
could get confused whether it's for libvirt-php or libvirt itself. You
can set it in your config also using the following command in the
libvirt-php cloned repository:
git config --local format.subjectprefix "libvirt-php PATCH" (or just
"libvirt-php" is OK too).
This is mentioned on the contributions page of libvirt-php available at [1].
Thanks,
Michal
[1] http://libvirt.org/php/contributions.html
On 03/08/2011 11:00 AM, Tiziano Mueller wrote:
> This is a revised patch to also fix the call to libvirt_version without
> arguments and without Xen.
>
> Currently libvirt_connect fails if libvirt has no Xen support.
> This is because virGetVersion checks for Xen if typeVer!=NULL.
> The same applies for libvirt_version if called without arguments
> and no Xen available.
>
> ---
> src/libvirt.c | 24 +++++++++++++++---------
> 1 files changed, 15 insertions(+), 9 deletions(-)
>
> diff --git a/src/libvirt.c b/src/libvirt.c
> index ce39a28..9636166 100644
> --- a/src/libvirt.c
> +++ b/src/libvirt.c
> @@ -173,13 +173,12 @@ PHP_RSHUTDOWN_FUNCTION(libvirt)
> PHP_MINFO_FUNCTION(libvirt)
> {
> unsigned long libVer;
> - unsigned long typeVer;
> char *version;
> php_info_print_table_start();
> php_info_print_table_row(2, "Libvirt support", "enabled");
> php_info_print_table_row(2, "Extension version", PHP_LIBVIRT_WORLD_VERSION);
>
> - if (virGetVersion(&libVer,NULL,&typeVer)== 0)
> + if (virGetVersion(&libVer,NULL,NULL)== 0)
> {
> version=emalloc(100);
> snprintf(version, 100, "%i.%i.%i", (long)((libVer/1000000) % 1000),(long)((libVer/1000) % 1000),(long)(libVer % 1000));
> @@ -590,13 +589,12 @@ PHP_FUNCTION(libvirt_connect)
> unsigned long index;
>
> unsigned long libVer;
> - unsigned long typeVer;
>
> if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "|sba",&url,&url_len,&readonly,&zcreds) == FAILURE) {
> RETURN_FALSE;
> }
>
> - if (virGetVersion(&libVer,NULL,&typeVer)!= 0)
> + if (virGetVersion(&libVer,NULL,NULL)!= 0)
> RETURN_FALSE;
>
> if (libVer<6002)
> @@ -3358,8 +3356,13 @@ PHP_FUNCTION(libvirt_version)
> RETURN_FALSE;
> }
>
> - if (virGetVersion(&libVer,type,&typeVer) != 0)
> - RETURN_FALSE;
> + if (ZEND_NUM_ARGS() == 0) {
> + if (virGetVersion(&libVer,NULL,NULL) != 0)
> + RETURN_FALSE;
> + } else {
> + if (virGetVersion(&libVer,type,&typeVer) != 0)
> + RETURN_FALSE;
> + }
>
> /* The version is returned as: major * 1,000,000 + minor * 1,000 + release. */
> array_init(return_value);
> @@ -3372,9 +3375,12 @@ PHP_FUNCTION(libvirt_version)
> add_assoc_long(return_value, "connector.major", VERSION_MAJOR);
> add_assoc_long(return_value, "connector.minor", VERSION_MINOR);
> add_assoc_long(return_value, "connector.release", VERSION_MICRO);
> - add_assoc_long(return_value, "type.release",(long)(typeVer %1000));
> - add_assoc_long(return_value, "type.minor",(long)((typeVer/1000) % 1000));
> - add_assoc_long(return_value, "type.major",(long)((typeVer/1000000) % 1000));
> +
> + if (ZEND_NUM_ARGS()> 0) {
> + add_assoc_long(return_value, "type.release",(long)(typeVer %1000));
> + add_assoc_long(return_value, "type.minor",(long)((typeVer/1000) % 1000));
> + add_assoc_long(return_value, "type.major",(long)((typeVer/1000000) % 1000));
> + }
> }
>
> /*
--
Michal Novotny<minovotn at redhat.com>, RHCE
Virtualization Team (xen userspace), Red Hat
More information about the libvir-list
mailing list