[Libvirt-cim] [PATCH V2] Fix kvm support check logic

Viktor Mihajlovski mihajlov at linux.vnet.ibm.com
Thu Jun 27 16:54:56 UTC 2013


On 06/27/2013 09:22 AM, Xu Wang wrote:
>   int parse_domain_type(xmlNodePtr node, char **value)
>   {
>           xmlNodePtr child = NULL;
> +        xmlNodePtr seek_node = NULL;
>           char *type = NULL;
> +        char *host_arch = NULL;
> +        char *guest_arch = NULL;
>
>           child = node->children;
> -        while (child != NULL) {
> -                if (XSTREQ(child->name, "domain")) {
> -                        type = get_attr_value(child, "type");
> -                        if (type != NULL) {
> +        while (child) {
> +                if (XSTREQ(child->name, "host")) {
> +                        seek_node = seek_subNode(child, "arch");
> +                        host_arch = get_node_content(seek_node);
> +                } else if (XSTREQ(child->name, "guest")) {
> +                        seek_node = seek_subNode(child, "arch");
> +                        guest_arch = get_attr_value(seek_node, "name");
> +                        if (XSTREQ(host_arch, guest_arch)) {
> +                                seek_node = seek_subNode(child, "domain");
> +                                type = get_attr_value(seek_node, "type");
>                                   *value = strdup(type);
> -                                goto out;
> +                                return 1;
unfortunately this logic is still returns the first guest domain type
in the capabilities XML which is "qemu". It would be necessary to
iterate all guest domains to find out whether one of them is of type "kvm".

BTW: this function is leaking type, host_arch and guest_arch...

>                           }
>                   }
> -


-- 

Mit freundlichen Grüßen/Kind Regards
    Viktor Mihajlovski

IBM Deutschland Research & Development GmbH
Vorsitzender des Aufsichtsrats: Martina Köderitz
Geschäftsführung: Dirk Wittkopp
Sitz der Gesellschaft: Böblingen
Registergericht: Amtsgericht Stuttgart, HRB 243294




More information about the Libvirt-cim mailing list