On 30.03.2017 19:43, Markus Armbruster wrote: > SocketAddress is a simple union, and simple unions are awkward: they > have their variant members wrapped in a "data" object on the wire, and > require additional indirections in C. I intend to limit its use to > existing external interfaces, and convert all internal interfaces to > SocketAddressFlat. > > BlockdevOptionsNbd is an external interface using SocketAddress. We > already use SocketAddressFlat elsewhere in blockdev=add. Replace it
Still s/=/-/, but nothing I can't fix. ;-) Max > by SocketAddressFlat while we can (it's new in 2.9) for simplicity and > consistency. For example, > > { "execute": "blockdev-add", > "arguments": { "node-name": "foo", "driver": "nbd", > "server": { "type": "inet", > "data": { "host": "localhost", > "port": "12345" } } } } > > becomes > > { "execute": "blockdev-add", > "arguments": { "node-name": "foo", "driver": "nbd", > "server": { "type": "inet", > "host": "localhost", "port": "12345" } } } > > Since the internal interfaces still take SocketAddress, this requires > conversion function socket_address_crumple(). It'll go away when I > update the interfaces. > > Unfortunately, SocketAddress is also visible in -drive since 2.8: > > -drive > if=none,driver=nbd,server.type=inet,server.data.host=127.0.0.1,server.data.port=12345 > > Nobody should be using it, as it's fairly new and has never been > documented, so adding still more compatibility gunk to keep it working > isn't worth the trouble. You now have to use > > -drive > if=none,driver=nbd,server.type=inet,server.host=127.0.0.1,server.port=12345 > > Signed-off-by: Markus Armbruster <arm...@redhat.com> > Reviewed-by: Eric Blake <ebl...@redhat.com> > Reviewed-by: Max Reitz <mre...@redhat.com> > --- > block/nbd.c | 53 > +++++++++++++++++++++++++++------------------------- > qapi/block-core.json | 2 +- > 2 files changed, 29 insertions(+), 26 deletions(-)
signature.asc
Description: OpenPGP digital signature