Re: [Qemu-devel] [PATCH v7 1/8] qemu-sockets: Export SocketAddress_to_str

2018-05-08 Thread Juan Quintela
Daniel P. Berrangé  wrote:
> On Wed, Apr 04, 2018 at 01:27:24PM +0200, Juan Quintela wrote:
>> Migration code needs that function in hmp.c (so we need to export it),
>> and it needs it on tests/migration-test.c, so we need to move it to a
>> place where it is compiled into the test framework.
>
> This code really does not belong in qemu-sockets.h - the syntax being
> printed here is the chardev specific syntax, hence those is_listen and
> is_telnet parameters. If we want a way to string-ify SocketAddress then
> it should be a generic format, not the chardev format.

Hi

Dropeed.  Don't make sense to try to generalize it for two users.  Just
copy to hmp.c one simplified copy.

Thanks, Juan.



Re: [Qemu-devel] [PATCH v7 1/8] qemu-sockets: Export SocketAddress_to_str

2018-04-13 Thread Daniel P . Berrangé
On Wed, Apr 04, 2018 at 01:27:24PM +0200, Juan Quintela wrote:
> Migration code needs that function in hmp.c (so we need to export it),
> and it needs it on tests/migration-test.c, so we need to move it to a
> place where it is compiled into the test framework.
> 
> Signed-off-by: Juan Quintela 
> ---
>  chardev/char-socket.c  | 29 -
>  include/qemu/sockets.h |  3 +++
>  util/qemu-sockets.c| 29 +
>  3 files changed, 32 insertions(+), 29 deletions(-)
> 
> diff --git a/chardev/char-socket.c b/chardev/char-socket.c
> index 159e69c3b1..3bbf3a37a0 100644
> --- a/chardev/char-socket.c
> +++ b/chardev/char-socket.c
> @@ -382,35 +382,6 @@ static void tcp_chr_free_connection(Chardev *chr)
>  s->connected = 0;
>  }
>  
> -static char *SocketAddress_to_str(const char *prefix, SocketAddress *addr,
> -  bool is_listen, bool is_telnet)
> -{
> -switch (addr->type) {
> -case SOCKET_ADDRESS_TYPE_INET:
> -return g_strdup_printf("%s%s:%s:%s%s", prefix,
> -   is_telnet ? "telnet" : "tcp",
> -   addr->u.inet.host,
> -   addr->u.inet.port,
> -   is_listen ? ",server" : "");
> -break;
> -case SOCKET_ADDRESS_TYPE_UNIX:
> -return g_strdup_printf("%sunix:%s%s", prefix,
> -   addr->u.q_unix.path,
> -   is_listen ? ",server" : "");
> -break;
> -case SOCKET_ADDRESS_TYPE_FD:
> -return g_strdup_printf("%sfd:%s%s", prefix, addr->u.fd.str,
> -   is_listen ? ",server" : "");
> -break;
> -case SOCKET_ADDRESS_TYPE_VSOCK:
> -return g_strdup_printf("%svsock:%s:%s", prefix,
> -   addr->u.vsock.cid,
> -   addr->u.vsock.port);
> -default:
> -abort();
> -}
> -}
> -
>  static void update_disconnected_filename(SocketChardev *s)
>  {
>  Chardev *chr = CHARDEV(s);
> diff --git a/include/qemu/sockets.h b/include/qemu/sockets.h
> index 8140fea685..efea0ea850 100644
> --- a/include/qemu/sockets.h
> +++ b/include/qemu/sockets.h
> @@ -110,4 +110,7 @@ SocketAddress *socket_remote_address(int fd, Error 
> **errp);
>   */
>  SocketAddress *socket_address_flatten(SocketAddressLegacy *addr);
>  
> +char *SocketAddress_to_str(const char *prefix, SocketAddress *addr,
> +   bool is_listen, bool is_telnet);
> +
>  #endif /* QEMU_SOCKETS_H */
> diff --git a/util/qemu-sockets.c b/util/qemu-sockets.c
> index 8bd8bb64eb..09f04bf76b 100644
> --- a/util/qemu-sockets.c
> +++ b/util/qemu-sockets.c
> @@ -1333,3 +1333,32 @@ SocketAddress 
> *socket_address_flatten(SocketAddressLegacy *addr_legacy)
>  
>  return addr;
>  }
> +
> +char *SocketAddress_to_str(const char *prefix, SocketAddress *addr,
> +  bool is_listen, bool is_telnet)
> +{
> +switch (addr->type) {
> +case SOCKET_ADDRESS_TYPE_INET:
> +return g_strdup_printf("%s%s:%s:%s%s", prefix,
> +   is_telnet ? "telnet" : "tcp",
> +   addr->u.inet.host,
> +   addr->u.inet.port,
> +   is_listen ? ",server" : "");
> +break;
> +case SOCKET_ADDRESS_TYPE_UNIX:
> +return g_strdup_printf("%sunix:%s%s", prefix,
> +   addr->u.q_unix.path,
> +   is_listen ? ",server" : "");
> +break;
> +case SOCKET_ADDRESS_TYPE_FD:
> +return g_strdup_printf("%sfd:%s%s", prefix, addr->u.fd.str,
> +   is_listen ? ",server" : "");
> +break;
> +case SOCKET_ADDRESS_TYPE_VSOCK:
> +return g_strdup_printf("%svsock:%s:%s", prefix,
> +   addr->u.vsock.cid,
> +   addr->u.vsock.port);
> +default:
> +abort();
> +}
> +}

This code really does not belong in qemu-sockets.h - the syntax being
printed here is the chardev specific syntax, hence those is_listen and
is_telnet parameters. If we want a way to string-ify SocketAddress then
it should be a generic format, not the chardev format.

Regards,
Daniel
-- 
|: https://berrange.com  -o-https://www.flickr.com/photos/dberrange :|
|: https://libvirt.org -o-https://fstop138.berrange.com :|
|: https://entangle-photo.org-o-https://www.instagram.com/dberrange :|



[Qemu-devel] [PATCH v7 1/8] qemu-sockets: Export SocketAddress_to_str

2018-04-04 Thread Juan Quintela
Migration code needs that function in hmp.c (so we need to export it),
and it needs it on tests/migration-test.c, so we need to move it to a
place where it is compiled into the test framework.

Signed-off-by: Juan Quintela 
---
 chardev/char-socket.c  | 29 -
 include/qemu/sockets.h |  3 +++
 util/qemu-sockets.c| 29 +
 3 files changed, 32 insertions(+), 29 deletions(-)

diff --git a/chardev/char-socket.c b/chardev/char-socket.c
index 159e69c3b1..3bbf3a37a0 100644
--- a/chardev/char-socket.c
+++ b/chardev/char-socket.c
@@ -382,35 +382,6 @@ static void tcp_chr_free_connection(Chardev *chr)
 s->connected = 0;
 }
 
-static char *SocketAddress_to_str(const char *prefix, SocketAddress *addr,
-  bool is_listen, bool is_telnet)
-{
-switch (addr->type) {
-case SOCKET_ADDRESS_TYPE_INET:
-return g_strdup_printf("%s%s:%s:%s%s", prefix,
-   is_telnet ? "telnet" : "tcp",
-   addr->u.inet.host,
-   addr->u.inet.port,
-   is_listen ? ",server" : "");
-break;
-case SOCKET_ADDRESS_TYPE_UNIX:
-return g_strdup_printf("%sunix:%s%s", prefix,
-   addr->u.q_unix.path,
-   is_listen ? ",server" : "");
-break;
-case SOCKET_ADDRESS_TYPE_FD:
-return g_strdup_printf("%sfd:%s%s", prefix, addr->u.fd.str,
-   is_listen ? ",server" : "");
-break;
-case SOCKET_ADDRESS_TYPE_VSOCK:
-return g_strdup_printf("%svsock:%s:%s", prefix,
-   addr->u.vsock.cid,
-   addr->u.vsock.port);
-default:
-abort();
-}
-}
-
 static void update_disconnected_filename(SocketChardev *s)
 {
 Chardev *chr = CHARDEV(s);
diff --git a/include/qemu/sockets.h b/include/qemu/sockets.h
index 8140fea685..efea0ea850 100644
--- a/include/qemu/sockets.h
+++ b/include/qemu/sockets.h
@@ -110,4 +110,7 @@ SocketAddress *socket_remote_address(int fd, Error **errp);
  */
 SocketAddress *socket_address_flatten(SocketAddressLegacy *addr);
 
+char *SocketAddress_to_str(const char *prefix, SocketAddress *addr,
+   bool is_listen, bool is_telnet);
+
 #endif /* QEMU_SOCKETS_H */
diff --git a/util/qemu-sockets.c b/util/qemu-sockets.c
index 8bd8bb64eb..09f04bf76b 100644
--- a/util/qemu-sockets.c
+++ b/util/qemu-sockets.c
@@ -1333,3 +1333,32 @@ SocketAddress 
*socket_address_flatten(SocketAddressLegacy *addr_legacy)
 
 return addr;
 }
+
+char *SocketAddress_to_str(const char *prefix, SocketAddress *addr,
+  bool is_listen, bool is_telnet)
+{
+switch (addr->type) {
+case SOCKET_ADDRESS_TYPE_INET:
+return g_strdup_printf("%s%s:%s:%s%s", prefix,
+   is_telnet ? "telnet" : "tcp",
+   addr->u.inet.host,
+   addr->u.inet.port,
+   is_listen ? ",server" : "");
+break;
+case SOCKET_ADDRESS_TYPE_UNIX:
+return g_strdup_printf("%sunix:%s%s", prefix,
+   addr->u.q_unix.path,
+   is_listen ? ",server" : "");
+break;
+case SOCKET_ADDRESS_TYPE_FD:
+return g_strdup_printf("%sfd:%s%s", prefix, addr->u.fd.str,
+   is_listen ? ",server" : "");
+break;
+case SOCKET_ADDRESS_TYPE_VSOCK:
+return g_strdup_printf("%svsock:%s:%s", prefix,
+   addr->u.vsock.cid,
+   addr->u.vsock.port);
+default:
+abort();
+}
+}
-- 
2.14.3