[libvirt] [PATCH v4 1/2] Add VIR_TYPED_PARAM_STRING

Eric Blake eblake at redhat.com
Mon Oct 31 21:31:27 UTC 2011


On 10/25/2011 05:51 PM, Eric Blake wrote:
> Shoot, we have another problem. The current Get interfaces are
> documented as returning 0 on success, rather than the number of
> successfully returned elements. virDomainGetSchedulerParameters is
> hard-wired in the RPC protocol to not pass an array length, and we
> repeated that mistake in virDomainGetSchedulerParamatersFlags. That
> means we _can't_ reduce *nparams by doing libvirt.c filtering of the
> results.

I stand (somewhat) corrected - the RPC protocol actually carries two 
length parameters, one built into the params<MAX> notation (used when 
returning a non-NULL list), and one as int nparams (used when params was 
NULL on entry, for calculating the hypervisor's max return).  So 
*nparams _is_ updated on return, and can be less on output than it was 
on input.  That said, the qemu driver is rather picky about rejecting 
calls if *nparams is too small on input, even though it might make sense 
to allow querying of only the first m elements rather than all n.

I'm still working on improving this patch series, with the goal of 
getting VIR_TYPED_PARAM_STRING stable in 0.9.7, if we agree that it 
looks safe enough.

-- 
Eric Blake   eblake at redhat.com    +1-801-349-2682
Libvirt virtualization library http://libvirt.org




More information about the libvir-list mailing list