[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] [PATCH v3 7/8] char: refactor parsing of socket address
From: |
Marc-André Lureau |
Subject: |
Re: [Qemu-devel] [PATCH v3 7/8] char: refactor parsing of socket address information |
Date: |
Wed, 3 Jan 2018 19:57:21 +0100 |
Hi
On Fri, Dec 22, 2017 at 2:45 PM, Daniel P. Berrange <address@hidden> wrote:
> To prepare for handling more address types, refactor the parsing of
> socket address information to make it more robust and extensible.
>
> Signed-off-by: Daniel P. Berrange <address@hidden>
Reviewed-by: Marc-André Lureau <address@hidden>
> chardev/char-socket.c | 22 ++++++++++++++--------
> 1 file changed, 14 insertions(+), 8 deletions(-)
>
> diff --git a/chardev/char-socket.c b/chardev/char-socket.c
> index 6013972f72..9113ea0169 100644
> --- a/chardev/char-socket.c
> +++ b/chardev/char-socket.c
> @@ -987,21 +987,25 @@ static void qemu_chr_parse_socket(QemuOpts *opts,
> ChardevBackend *backend,
> SocketAddressLegacy *addr;
> ChardevSocket *sock;
>
> + if ((!!path + !!host) != 1) {
> + error_setg(errp,
> + "Exactly one of 'path' or 'host' required");
> + return;
> + }
> +
> backend->type = CHARDEV_BACKEND_KIND_SOCKET;
> - if (!path) {
> - if (!host) {
> - error_setg(errp, "chardev: socket: no host given");
> + if (path) {
> + if (tls_creds) {
> + error_setg(errp, "TLS can only be used over TCP socket");
> return;
> }
> + } else if (host) {
> if (!port) {
> error_setg(errp, "chardev: socket: no port given");
> return;
> }
> } else {
> - if (tls_creds) {
> - error_setg(errp, "TLS can only be used over TCP socket");
> - return;
> - }
> + g_assert_not_reached();
> }
>
> sock = backend->u.socket.data = g_new0(ChardevSocket, 1);
> @@ -1027,7 +1031,7 @@ static void qemu_chr_parse_socket(QemuOpts *opts,
> ChardevBackend *backend,
> addr->type = SOCKET_ADDRESS_LEGACY_KIND_UNIX;
> q_unix = addr->u.q_unix.data = g_new0(UnixSocketAddress, 1);
> q_unix->path = g_strdup(path);
> - } else {
> + } else if (host) {
> addr->type = SOCKET_ADDRESS_LEGACY_KIND_INET;
> addr->u.inet.data = g_new(InetSocketAddress, 1);
> *addr->u.inet.data = (InetSocketAddress) {
> @@ -1040,6 +1044,8 @@ static void qemu_chr_parse_socket(QemuOpts *opts,
> ChardevBackend *backend,
> .has_ipv6 = qemu_opt_get(opts, "ipv6"),
> .ipv6 = qemu_opt_get_bool(opts, "ipv6", 0),
> };
> + } else {
> + g_assert_not_reached();
> }
> sock->addr = addr;
> }
> --
> 2.14.3
>
>
--
Marc-André Lureau
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- Re: [Qemu-devel] [PATCH v3 7/8] char: refactor parsing of socket address information,
Marc-André Lureau <=