From: Paolo Bonzini <pbonzini@redhat.com>
To: minyard@acm.org, qemu-devel@nongnu.org
Cc: mjg59@srcf.ucam.org, mst@redhat.com, hwd@huawei.com,
bcketchum@gmail.com, Corey Minyard <cminyard@mvista.com>,
afaerber@suse.de
Subject: Re: [Qemu-devel] [PATCH] chardev: Add reconnecting to client sockets
Date: Sat, 20 Sep 2014 00:33:18 +0200 [thread overview]
Message-ID: <541CAF2E.2030502@redhat.com> (raw)
In-Reply-To: <1411163937-19891-1-git-send-email-minyard@acm.org>
Il 19/09/2014 23:58, minyard@acm.org ha scritto:
> From: Corey Minyard <cminyard@mvista.com>
>
> Adds a "recon" option to socket backends that gives a reconnect
> timeout. This only applies to client sockets. If the other end
> of a socket closes the connection, qemu will attempt to reconnect
> after the given number of seconds.
>
> This rearranges things a bit, all socket configuration is moved to
> qmp_chardev_open_socket() and that only gets called once at startup.
> qemu_chr_open_socket_fd() is called to open or re-open the connection.
Please do this in a separate patch.
Also:
- qemu-char.c for various reasons is not using QEMU timers. Please use
glib timers instead.
> +# @recon: #optional If not a server socket, if the socket disconnect
> +# then reconnect after the given number of seconds. Setting
> +# to zero disables this function. (default: 0)
Please specify "Since: 2.2" inside the comment, and give a more
descriptive name such as reconnect-interval to the option.
> + s->addr = addr; /* Steal the address from the socket */
> + sock->addr = NULL;
Please do a deep copy instead. (The sock struct should really be
const). A function like this will do it for you:
*p_dest = NULL;
qov = qmp_output_visitor_new();
ov = qmp_output_get_visitor(qov);
visit_type_SocketAddress(ov, &src, NULL, errp);
obj = qmp_output_get_qobject(data->qov);
qmp_output_visitor_cleanup(qov);
if (!obj) {
return;
}
qiv = qmp_input_visitor_new(obj);
iv = qmp_input_get_visitor(qiv);
visit_type_SocketAddress(iv, p_dest, NULL, &error_abort);
qmp_input_visitor_cleanup(qiv);
qobject_decref(obj);
...
qapi_copy_SocketAddress(&s->addr, sock->addr, &error_abort);
(Something like this should really be automatically generated for all
types...).
I only skimmed the code, but nothing else jumped up.
Paolo
next prev parent reply other threads:[~2014-09-19 22:33 UTC|newest]
Thread overview: 4+ messages / expand[flat|nested] mbox.gz Atom feed top
2014-09-19 21:58 [Qemu-devel] [PATCH] chardev: Add reconnecting to client sockets minyard
2014-09-19 22:04 ` Matthew Garrett
2014-09-19 22:33 ` Paolo Bonzini [this message]
2014-09-19 23:27 ` Eric Blake
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=541CAF2E.2030502@redhat.com \
--to=pbonzini@redhat.com \
--cc=afaerber@suse.de \
--cc=bcketchum@gmail.com \
--cc=cminyard@mvista.com \
--cc=hwd@huawei.com \
--cc=minyard@acm.org \
--cc=mjg59@srcf.ucam.org \
--cc=mst@redhat.com \
--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).