From: Max Reitz <mreitz@redhat.com>
To: qemu-block@nongnu.org
Cc: qemu-devel@nongnu.org, Max Reitz <mreitz@redhat.com>,
Kevin Wolf <kwolf@redhat.com>, Eric Blake <eblake@redhat.com>,
Paolo Bonzini <pbonzini@redhat.com>,
Markus Armbruster <armbru@redhat.com>
Subject: [Qemu-devel] [PATCH v5 11/13] socket_scm_helper: Accept fd directly
Date: Tue, 25 Oct 2016 15:11:39 +0200 [thread overview]
Message-ID: <20161025131141.24762-12-mreitz@redhat.com> (raw)
In-Reply-To: <20161025131141.24762-1-mreitz@redhat.com>
This gives us more freedom about the fd that is passed to qemu, allowing
us to e.g. pass sockets.
Reviewed-by: Kevin Wolf <kwolf@redhat.com>
Signed-off-by: Max Reitz <mreitz@redhat.com>
---
tests/qemu-iotests/socket_scm_helper.c | 29 ++++++++++++++++++-----------
1 file changed, 18 insertions(+), 11 deletions(-)
diff --git a/tests/qemu-iotests/socket_scm_helper.c b/tests/qemu-iotests/socket_scm_helper.c
index 80cadf4..eb76d31 100644
--- a/tests/qemu-iotests/socket_scm_helper.c
+++ b/tests/qemu-iotests/socket_scm_helper.c
@@ -60,7 +60,7 @@ static int send_fd(int fd, int fd_to_send)
}
/* Convert string to fd number. */
-static int get_fd_num(const char *fd_str)
+static int get_fd_num(const char *fd_str, bool silent)
{
int sock;
char *err;
@@ -68,12 +68,16 @@ static int get_fd_num(const char *fd_str)
errno = 0;
sock = strtol(fd_str, &err, 10);
if (errno) {
- fprintf(stderr, "Failed in strtol for socket fd, reason: %s\n",
- strerror(errno));
+ if (!silent) {
+ fprintf(stderr, "Failed in strtol for socket fd, reason: %s\n",
+ strerror(errno));
+ }
return -1;
}
if (!*fd_str || *err || sock < 0) {
- fprintf(stderr, "bad numerical value for socket fd '%s'\n", fd_str);
+ if (!silent) {
+ fprintf(stderr, "bad numerical value for socket fd '%s'\n", fd_str);
+ }
return -1;
}
@@ -104,18 +108,21 @@ int main(int argc, char **argv, char **envp)
}
- sock = get_fd_num(argv[1]);
+ sock = get_fd_num(argv[1], false);
if (sock < 0) {
return EXIT_FAILURE;
}
- /* Now only open a file in readonly mode for test purpose. If more precise
- control is needed, use python script in file operation, which is
- supposed to fork and exec this program. */
- fd = open(argv[2], O_RDONLY);
+ fd = get_fd_num(argv[2], true);
if (fd < 0) {
- fprintf(stderr, "Failed to open file '%s'\n", argv[2]);
- return EXIT_FAILURE;
+ /* Now only open a file in readonly mode for test purpose. If more
+ precise control is needed, use python script in file operation, which
+ is supposed to fork and exec this program. */
+ fd = open(argv[2], O_RDONLY);
+ if (fd < 0) {
+ fprintf(stderr, "Failed to open file '%s'\n", argv[2]);
+ return EXIT_FAILURE;
+ }
}
ret = send_fd(sock, fd);
--
2.10.1
next prev parent reply other threads:[~2016-10-25 13:12 UTC|newest]
Thread overview: 28+ messages / expand[flat|nested] mbox.gz Atom feed top
2016-10-25 13:11 [Qemu-devel] [PATCH v5 00/13] qapi: Allow blockdev-add for NBD Max Reitz
2016-10-25 13:11 ` [Qemu-devel] [PATCH v5 01/13] block/nbd: Drop trailing "." in error messages Max Reitz
2016-10-25 13:11 ` [Qemu-devel] [PATCH v5 02/13] block/nbd: Reject port parameter without host Max Reitz
2016-10-25 13:11 ` [Qemu-devel] [PATCH v5 03/13] block/nbd: Default port in nbd_refresh_filename() Max Reitz
2016-10-25 13:11 ` [Qemu-devel] [PATCH v5 04/13] block/nbd: Use qdict_put() Max Reitz
2016-10-25 13:11 ` [Qemu-devel] [PATCH v5 05/13] block/nbd: Add nbd_has_filename_options_conflict() Max Reitz
2016-10-25 13:11 ` [Qemu-devel] [PATCH v5 06/13] block/nbd: Accept SocketAddress Max Reitz
2016-10-25 15:30 ` Kevin Wolf
2016-10-25 13:11 ` [Qemu-devel] [PATCH v5 07/13] block/nbd: Use SocketAddress options Max Reitz
2016-10-26 9:51 ` Kevin Wolf
2016-10-25 13:11 ` [Qemu-devel] [PATCH v5 08/13] qapi: Allow blockdev-add for NBD Max Reitz
2016-10-25 23:57 ` Eric Blake
2016-10-26 8:09 ` Kevin Wolf
2016-10-26 14:17 ` Max Reitz
2016-10-26 9:54 ` Kevin Wolf
2016-10-25 13:11 ` [Qemu-devel] [PATCH v5 09/13] iotests.py: Add qemu_nbd function Max Reitz
2016-10-26 10:04 ` Kevin Wolf
2016-10-25 13:11 ` [Qemu-devel] [PATCH v5 10/13] iotests.py: Allow concurrent qemu instances Max Reitz
2016-10-25 13:11 ` Max Reitz [this message]
2016-10-25 13:11 ` [Qemu-devel] [PATCH v5 12/13] iotests: Add assert_json_filename_equal() method Max Reitz
2016-10-26 10:41 ` Kevin Wolf
2016-10-26 14:24 ` Max Reitz
2016-10-25 13:11 ` [Qemu-devel] [PATCH v5 13/13] iotests: Add test for NBD's blockdev-add interface Max Reitz
2016-10-25 14:41 ` Markus Armbruster
2016-10-26 14:25 ` Max Reitz
2016-10-26 13:08 ` Kevin Wolf
2016-10-25 13:16 ` [Qemu-devel] [PATCH v5 00/13] qapi: Allow blockdev-add for NBD Max Reitz
2016-10-27 17:08 ` Kevin Wolf
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20161025131141.24762-12-mreitz@redhat.com \
--to=mreitz@redhat.com \
--cc=armbru@redhat.com \
--cc=eblake@redhat.com \
--cc=kwolf@redhat.com \
--cc=pbonzini@redhat.com \
--cc=qemu-block@nongnu.org \
--cc=qemu-devel@nongnu.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).