[libvirt] [PATCHv2 9/9] phyp: another simplification

Matthias Bolte matthias.bolte at googlemail.com
Fri Apr 15 21:01:55 UTC 2011


2011/4/14 Eric Blake <eblake at redhat.com>:
> Rather than copying and pasting lots of code, factor it into a
> single helper function.
>
> * src/phyp/phyp_driver.c (phypExecInt): New function.
> (phypGetVIOSPartitionID, phypNumDomainsGeneric, phypGetLparID)
> (phypGetLparMem, phypGetLparCPUGeneric, phypGetRemoteSlot)
> (phypGetVIOSNextSlotNumber, phypAttachDevice)
> (phypGetStoragePoolSize, phypStoragePoolNumOfVolumes)
> (phypNumOfStoragePools, phypInterfaceDestroy)
> (phypInterfaceDefineXML, phypInterfaceLookupByName)
> (phypInterfaceIsActive, phypNumOfInterfaces): Use it.
> ---
>  src/phyp/phyp_driver.c |  316 ++++++++++--------------------------------------
>  1 files changed, 67 insertions(+), 249 deletions(-)
>
> diff --git a/src/phyp/phyp_driver.c b/src/phyp/phyp_driver.c
> index bc24b76..98d5cd6 100644
> --- a/src/phyp/phyp_driver.c
> +++ b/src/phyp/phyp_driver.c
> @@ -228,6 +228,26 @@ phypExecBuffer(LIBSSH2_SESSION *session, virBufferPtr buf, int *exit_status,
>     return ret;
>  }
>
> +/* Convenience wrapper function */
> +static int phypExecInt(LIBSSH2_SESSION *, virBufferPtr, virConnectPtr, int *)
> +    ATTRIBUTE_NONNULL(1) ATTRIBUTE_NONNULL(3) ATTRIBUTE_NONNULL(4);
> +static int
> +phypExecInt(LIBSSH2_SESSION *session, virBufferPtr buf, virConnectPtr conn,
> +            int *result)
> +{
> +    char *str;
> +    int ret;
> +
> +    str = phypExecBuffer(session, buf, &ret, conn, true);
> +    if (!str || ret) {
> +        VIR_FREE(str);
> +        return -1;
> +    }
> +    ret = virStrToLong_i(str, NULL, 10, result);

You made the parsing stricter by passing NULL as second argument to
virStrToLong_i. I don't expect it but this might be possible that this
breaks the behavior of the driver.

> +    VIR_FREE(str);
> +    return ret;
> +}
> +

The rest of the patch looks fine.

Matthias




More information about the libvir-list mailing list