From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([2001:4830:134:3::10]:52403) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1bz1RL-0007tA-6v for qemu-devel@nongnu.org; Tue, 25 Oct 2016 09:06:56 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1bz1RG-0001ix-7h for qemu-devel@nongnu.org; Tue, 25 Oct 2016 09:06:51 -0400 From: Ashijeet Acharya Date: Tue, 25 Oct 2016 18:33:56 +0530 Message-Id: <1477400641-7750-1-git-send-email-ashijeetacharya@gmail.com> Subject: [Qemu-devel] [PATCH v4 0/5] Allow blockdev-add for SSH List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: kwolf@redhat.com Cc: rjones@redhat.com, jcody@redhat.com, mreitz@redhat.com, eblake@redhat.com, berrange@redhat.com, pbonzini@redhat.com, qemu-devel@nongnu.org, qemu-block@nongnu.org, Ashijeet Acharya Previously posted series patches: v3: https://lists.gnu.org/archive/html/qemu-devel/2016-10/msg03781.html v2: https://lists.gnu.org/archive/html/qemu-devel/2016-10/msg03403.html v1: http://lists.nongnu.org/archive/html/qemu-devel/2016-10/msg02137.html This series adds blockdev-add support for SSH block driver. 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 makes inet_connect_saddr() in util/qemu-sockets.c public. Patch 3 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 4 drops the usage of "host" and "port" outside of ssh_has_filename_options_conflict() and 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" series. Changes in v4: - remove hostport from BDRVSSHState and use s->inet->host in warning message Changes in v3: - reorder patch 2 and 3 from v2 (Max) - fix coding-style issue in patch 2 (Max) - drop testing to check for "server" as an object itself (Max) - fix strstart() bug (Max) - fix a segfault bug when host gets set to NULL (Max) - revert back to using qobject_input_visitor_new() (Max & Kevin) - use qemu_strtol() instead of atoi() for better error handling (Kevin) - make @user an optional argument in qapi/block-core.json (Max) - update documentation for BlockdevOptionsSsh (Max) 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 : string (Kevin) - Fix the bug in ssh_process_legacy_socket_options() Ashijeet Acharya (5): block/ssh: Add ssh_has_filename_options_conflict() util/qemu-sockets: Make inet_connect_saddr() public block/ssh: Add InetSocketAddress and accept it block/ssh: Use InetSocketAddress options qapi: allow blockdev-add for ssh block/ssh.c | 132 +++++++++++++++++++++++++++++++++++++++---------- include/qemu/sockets.h | 2 + qapi/block-core.json | 26 +++++++++- util/qemu-sockets.c | 4 +- 4 files changed, 135 insertions(+), 29 deletions(-) -- 2.6.2