With this series applied... * driver-specific command line options can be passed to protocols
* the protocol driver can be explicitly specified instead of being parsed from the file name; the file name can be left out if the protocol doesn't need it * a new .bdrv_parse_filename callback parses filenames into option QDicts that are used for the real bdrv_open() * NBD makes use of all of these feature so that you can now specify: qemu-system-x86_64 -drive file.driver=nbd,file.host=localhost Kevin Wolf (11): block: Add options QDict to bdrv_file_open() prototypes block: Pass bdrv_file_open() options to block drivers qemu-socket: Make socket_optslist public nbd: Keep hostname and port separate nbd: Remove unused functions nbd: Accept -drive options for the network connection block: Introduce .bdrv_parse_filename callback block: Rename variable to avoid shadowing block: Make find_image_format safe with NULL filename block: Allow omitting the file name when using driver-specific options nbd: Use default port if only host is specified block.c | 139 ++++++++++++++++++++++++++++++++++++++++------ block/blkdebug.c | 5 +- block/blkverify.c | 5 +- block/cow.c | 2 +- block/curl.c | 3 +- block/dmg.c | 13 ++++- block/gluster.c | 2 +- block/iscsi.c | 5 +- block/nbd.c | 118 ++++++++++++++++++++++++++++----------- block/qcow.c | 2 +- block/qcow2.c | 2 +- block/qed.c | 2 +- block/raw-posix.c | 15 +++-- block/sheepdog.c | 7 ++- block/vmdk.c | 2 +- block/vvfat.c | 3 +- blockdev.c | 10 +++- include/block/block.h | 3 +- include/block/block_int.h | 7 ++- include/block/nbd.h | 4 +- include/qemu/sockets.h | 3 + nbd.c | 13 +---- qemu-io.c | 2 +- util/qemu-sockets.c | 28 +++++----- 24 files changed, 288 insertions(+), 107 deletions(-) -- 1.8.1.4