[libvirt] [PATCH] vz: fix build for virNetDev* changes

Laine Stump laine at laine.org
Mon Jun 27 22:10:16 UTC 2016


On 06/27/2016 02:23 PM, Olga Krishtal wrote:
> Patch fixes vz build after changes in IP-related netdev functions(cf0568b0, fbc1843d).

Sorry about that. I *thought* I had searched in the drivers I couldn't 
build. (BTW, I tried downloading and installing the parallels-sdk on my 
Fedora system, but configure still says it's not there. Are there more 
verbose instructions somewhere so that I can just always build with 
--with-vz in the future?)

(BTW, although some of the patches I mistakenly pushed yesterday have 
been reverted, the patches that cause this build failure for the vz 
driver haven't.)

>
> Signed-off-by: Olga Krishtal <okrishtal at virtuozzo.com>
> ---
>   src/vz/vz_sdk.c | 49 +++++++++++++++++++++++++------------------------
>   1 file changed, 25 insertions(+), 24 deletions(-)
>
> diff --git a/src/vz/vz_sdk.c b/src/vz/vz_sdk.c
> index 1203ed6..7e75e44 100644
> --- a/src/vz/vz_sdk.c
> +++ b/src/vz/vz_sdk.c
> @@ -773,13 +773,13 @@ prlsdkAddDomainOpticalDisksInfo(vzDriverPtr driver, PRL_HANDLE sdkdom, virDomain
>       return -1;
>   }
>   
> -static virDomainNetIpDefPtr
> +static virNetDevIPAddrPtr
>   prlsdkParseNetAddress(char *addr)
>   {
>       char *maskstr = NULL;
>       int nbits;
>       virSocketAddr mask;
> -    virDomainNetIpDefPtr ip = NULL, ret = NULL;
> +    virNetDevIPAddrPtr ip = NULL, ret = NULL;
>   
>       if (!(maskstr = strchr(addr, '/')))
>           goto cleanup;
> @@ -829,7 +829,7 @@ prlsdkGetNetAddresses(PRL_HANDLE sdknet, virDomainNetDefPtr net)
>       prlsdkCheckRetGoto(pret, cleanup);
>   
>       for (i = 0; i < num; ++i) {
> -        virDomainNetIpDefPtr ip = NULL;
> +       virNetDevIPAddrPtr ip = NULL;

Indentation was off. I fixed it.

>           PRL_UINT32 buflen = 0;
>           char *addr;
>   
> @@ -845,7 +845,7 @@ prlsdkGetNetAddresses(PRL_HANDLE sdknet, virDomainNetDefPtr net)
>           if (!(ip = prlsdkParseNetAddress(addr)))
>               continue;
>   
> -        if (VIR_APPEND_ELEMENT(net->ips, net->nips, ip) < 0) {
> +        if (VIR_APPEND_ELEMENT(net->guestIP.ips, net->guestIP.nips, ip) < 0) {
>               VIR_FREE(ip);
>               goto cleanup;
>           }
> @@ -864,7 +864,7 @@ prlsdkGetRoutes(PRL_HANDLE sdknet, virDomainNetDefPtr net)
>       int ret = -1;
>       char *gw = NULL;
>       char *gw6 = NULL;
> -    virNetworkRouteDefPtr route = NULL;
> +    virNetDevIPRoutePtr route = NULL;
>   
>       if (!(gw = prlsdkGetStringParamVar(PrlVmDevNet_GetDefaultGateway, sdknet)))
>           goto cleanup;
> @@ -873,29 +873,30 @@ prlsdkGetRoutes(PRL_HANDLE sdknet, virDomainNetDefPtr net)
>           goto cleanup;
>   
>       if (*gw != '\0') {
> -        if (!(route = virNetworkRouteDefCreate(_("Domain interface"),
> +
> +        if (!(route = virNetDevIPRouteCreate(_("Domain interface"),
>                                                  "ipv4", VIR_SOCKET_ADDR_IPV4_ALL,
>                                                  NULL, gw, 0, true, 0, false)))

Indentation of the lines following the change was off.

>               goto cleanup;
>   
> -        if (VIR_APPEND_ELEMENT(net->routes, net->nroutes, route) < 0)
> +        if (VIR_APPEND_ELEMENT(net->guestIP.routes, net->guestIP.nroutes, route) < 0)
>               goto cleanup;
>       }
>   
>       if (*gw6 != '\0') {
> -        if (!(route = virNetworkRouteDefCreate(_("Domain interface"),
> +        if (!(route = virNetDevIPRouteCreate(_("Domain interface"),
>                                                  "ipv6", VIR_SOCKET_ADDR_IPV6_ALL,
>                                                  NULL, gw6, 0, true, 0, false)))

Again with indentation.

>               goto cleanup;
>   
> -        if (VIR_APPEND_ELEMENT(net->routes, net->nroutes, route) < 0)
> +        if (VIR_APPEND_ELEMENT(net->guestIP.routes, net->guestIP.nroutes, route) < 0)
>               goto cleanup;
>       }
>   
>       ret = 0;
>   
>    cleanup:
> -    VIR_FREE(route);
> +    virNetDevIPRouteFree(route);

This actually fixes a memory leak - even before the changes a route had 
a char* allocated for family, so you needed to call 
virNetworkRouteDefFree().

I'm unable to build with --with-vz, but assume that you've done this 
(since that was the entire reason for the patch :-), so ACK. I've pushed 
the patch so that the next RC of 2.0 will build properly.




More information about the libvir-list mailing list