From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([208.118.235.92]:58866) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1TCCSa-0005oT-2T for qemu-devel@nongnu.org; Thu, 13 Sep 2012 12:40:13 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1TCCSP-0000W9-1u for qemu-devel@nongnu.org; Thu, 13 Sep 2012 12:40:11 -0400 Received: from mx1.redhat.com ([209.132.183.28]:2536) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1TCCSO-0000W0-Om for qemu-devel@nongnu.org; Thu, 13 Sep 2012 12:40:00 -0400 Message-ID: <50520C68.6020001@redhat.com> Date: Thu, 13 Sep 2012 19:40:08 +0300 From: Orit Wasserman MIME-Version: 1.0 References: <1347448378-23915-1-git-send-email-owasserm@redhat.com> <1347448378-23915-3-git-send-email-owasserm@redhat.com> <87sjamgki2.fsf@blackfin.pond.sub.org> In-Reply-To: <87sjamgki2.fsf@blackfin.pond.sub.org> Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit Subject: Re: [Qemu-devel] [PATCH v2 2/3] Separate inet_connect into inet_connect (blocking) and inet_nonblocking_connect List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: Markus Armbruster Cc: kwolf@redhat.com, aliguori@us.ibm.com, akong@redhat.com, mst@redhat.com, quintela@redhat.com, mdroth@linux.vnet.ibm.com, qemu-devel@nongnu.org, pbonzini@redhat.com, lcapitulino@redhat.com On 09/13/2012 03:44 PM, Markus Armbruster wrote: > Orit Wasserman writes: > >> No need to add non blocking parameters to the blocking inet_connect >> >> Signed-off-by: Orit Wasserman >> --- >> migration-tcp.c | 2 +- >> nbd.c | 2 +- >> qemu-sockets.c | 24 ++++++++++++++++++++---- >> qemu_socket.h | 4 +++- >> ui/vnc.c | 2 +- >> 5 files changed, 26 insertions(+), 8 deletions(-) >> >> diff --git a/migration-tcp.c b/migration-tcp.c >> index ac891c3..7f6ad98 100644 >> --- a/migration-tcp.c >> +++ b/migration-tcp.c >> @@ -88,7 +88,7 @@ int tcp_start_outgoing_migration(MigrationState *s, const char *host_port, >> s->write = socket_write; >> s->close = tcp_close; >> >> - s->fd = inet_connect(host_port, false, &in_progress, errp); >> + s->fd = inet_nonblocking_connect(host_port, &in_progress, errp); >> if (error_is_set(errp)) { >> migrate_fd_error(s); >> return -1; >> diff --git a/nbd.c b/nbd.c >> index 0dd60c5..206f75c 100644 >> --- a/nbd.c >> +++ b/nbd.c >> @@ -162,7 +162,7 @@ int tcp_socket_outgoing(const char *address, uint16_t port) >> >> int tcp_socket_outgoing_spec(const char *address_and_port) >> { >> - return inet_connect(address_and_port, true, NULL, NULL); >> + return inet_connect(address_and_port, NULL); >> } >> >> int tcp_socket_incoming(const char *address, uint16_t port) >> diff --git a/qemu-sockets.c b/qemu-sockets.c >> index 68e4d30..4f5eca8 100644 >> --- a/qemu-sockets.c >> +++ b/qemu-sockets.c >> @@ -518,16 +518,32 @@ int inet_listen(const char *str, char *ostr, int olen, >> return sock; >> } >> >> -int inet_connect(const char *str, bool block, bool *in_progress, Error **errp) >> +int inet_connect(const char *str, Error **errp) >> { >> QemuOpts *opts; >> int sock = -1; >> >> opts = qemu_opts_create(&dummy_opts, NULL, 0, NULL); >> if (inet_parse(opts, str) == 0) { >> - if (block) { >> - qemu_opt_set(opts, "block", "on"); >> - } >> + qemu_opt_set(opts, "block", "on"); >> + sock = inet_connect_opts(opts, NULL, errp); > > Let's go one step further: make inet_connect_opts() take a bool block > argument, and drop the stupid QemuOpt "block". That way, opts are again > for user options only. Very good idea ! > >> + } else { >> + error_set(errp, QERR_SOCKET_CREATE_FAILED); >> + } >> + qemu_opts_del(opts); >> + return sock; >> +} >> + >> + >> +int inet_nonblocking_connect(const char *str, bool *in_progress, >> + Error **errp) >> +{ >> + QemuOpts *opts; >> + int sock = -1; >> + >> + opts = qemu_opts_create(&dummy_opts, NULL, 0, NULL); >> + if (inet_parse(opts, str) == 0) { >> + qemu_opt_set(opts, "block", "off"); >> sock = inet_connect_opts(opts, in_progress, errp); >> } else { >> error_set(errp, QERR_SOCKET_CREATE_FAILED); > [...] >