Previously posted series patches:
This series adds blockdev-add support for SSH block driver.
This patch series has an additional patch 'Patch 3'.
Patch 1 prepares the code for the addition of a new option prefix,
which is "server.". This is accomplished by adding a
ssh_has_filename_options_conflict() function which helps to iterate
over the various options and check for conflict.
Patch 2 first adds InetSocketAddress compatibility to SSH block driver
and then makes it accept a InetSocketAddress under the "server" option.
The old options "host" and "port" are supported as legacy options and
then translated to the respective InetSocketAddress representation.
Patch 3 makes use of inet_connect_saddr() instead of inet_connect()
to establish socket connection.
Patch 4 drops the usage of "host" and "port" outside of
ssh_process_legacy_socket_options() functions in order to make them
legacy options completely.
Patch 5 helps to allow blockdev-add support for the SSH block driver
by making the SSH option available.
*** This series depends on the following patch: ***
"qdict: implement a qdict_crumple method for un-flattening a dict"
from Daniel's "QAPI/QOM work for non-scalar object properties"
Changes in v2:
- Use strstart() instead of strcmp() (Kevin)
- Use qobject_input_visitor_new_autocast() instead of
qmp_input_visitor_new() and change header files accordingly (Kevin)
- Use inet_connect_saddr() instead of inet_connect() (Kevin)
- Drop the contruction of <host>:<port> string (Kevin)
- Fix the bug in ssh_process_legacy_socket_options()
Ashijeet Acharya (5):
block/ssh: Add ssh_has_filename_options_conflict()
block/ssh: Add InetSocketAddress and accept it
block/ssh: Use inet_connect_saddr() to establish socket connection
block/ssh: Use InetSocketAddress options
qapi: allow blockdev-add for ssh
block/ssh.c | 120 ++++++++++++++++++++++++++++++++++++++++---------
include/qemu/sockets.h | 2 +
qapi/block-core.json | 24 +++++++++-
util/qemu-sockets.c | 2 +-
4 files changed, 124 insertions(+), 24 deletions(-)