path: root/nbd.c
diff options
authorKevin Wolf <kwolf@redhat.com>2013-03-15 11:55:29 +0100
committerKevin Wolf <kwolf@redhat.com>2013-03-22 17:51:31 +0100
commitf17c90bed11a6e277614b5a5d16434004f24d572 (patch)
tree5994d06681764c31bf5c679163ae1a3c9d1229df /nbd.c
parente62be8888a83aa0ab7f50eeb954deb2ec4e7201d (diff)
nbd: Keep hostname and port separate
The NBD block supports an URL syntax, for which a URL parser returns separate hostname and port fields. It also supports the traditional qemu syntax encoded in a filename. Until now, after parsing the URL to get each piece of information, a new string is built to be fed to socket functions. Instead of building a string in the URL case that is immediately parsed again, parse the string in both cases and use the QemuOpts interface to qemu-sockets.c. Signed-off-by: Kevin Wolf <kwolf@redhat.com> Reviewed-by: Eric Blake <eblake@redhat.com>
Diffstat (limited to 'nbd.c')
1 files changed, 12 insertions, 0 deletions
diff --git a/nbd.c b/nbd.c
index 0698a023ad..97879ca204 100644
--- a/nbd.c
+++ b/nbd.c
@@ -218,6 +218,18 @@ int tcp_socket_outgoing_spec(const char *address_and_port)
return fd;
+int tcp_socket_outgoing_opts(QemuOpts *opts)
+ Error *local_err = NULL;
+ int fd = inet_connect_opts(opts, &local_err, NULL, NULL);
+ if (local_err != NULL) {
+ qerror_report_err(local_err);
+ error_free(local_err);
+ }
+ return fd;
int tcp_socket_incoming(const char *address, uint16_t port)
char address_and_port[128];