[libvirt] non-standard types in remote XDR definitions
Daniel P. Berrange
berrange at redhat.com
Wed Jan 25 16:15:18 UTC 2017
On Wed, Jan 25, 2017 at 11:12:33AM -0500, Matt Broadstone wrote:
> On Wed, Jan 25, 2017 at 10:59 AM, Daniel P. Berrange
> <berrange at redhat.com> wrote:
> > On Wed, Jan 25, 2017 at 10:55:37AM -0500, Matt Broadstone wrote:
> >> Hello,
> >>
> >> I have been experimenting with the remote protocol defined in the
> >> `src/remote/remote_protocol.x`
> >> (https://libvirt.org/git/?p=libvirt.git;a=blob_plain;f=src/remote/remote_protocol.x;hb=HEAD),
> >> and noticed that there a number of types used that are not defined in
> >> the XDR RFC, specifically: unsigned char, char, unsigned short, short
> >> (I might have missed one or two). I'm wondering if these are missing
> >> typedefs, or whether they are custom extensions to the RFC. Does
> >> anyone have more information on this? If the latter case is the fact,
> >> are these values padded to 4 bytes per the spec?
> >
> > The libvirt RPC protocol is an internal impl detail, not for 3rd party
> > use. So our only goal is to be compatible with rpcgen binaries that are
> > used during builds on supported platforms. As such what's in the RFC
> > is not particularly relevant.
> >
>
> It does appear that these types are indeed supported by rpcgen (though
> in the cases where char's are used, your definitions would benefit
> from a conversion to `opaque`, as to not incur the padding overhead).
> Thank you for the clarification.
Converting 'char' to 'opaque' would break wire ABI back-compatibility so
is not an option.
Regards,
Daniel
--
|: http://berrange.com -o- http://www.flickr.com/photos/dberrange/ :|
|: http://libvirt.org -o- http://virt-manager.org :|
|: http://entangle-photo.org -o- http://search.cpan.org/~danberr/ :|
More information about the libvir-list
mailing list