diff mbox series

[for,7.0,V10,2/6] util/qemu-sockets.c: Add inet_parse_base to handle InetSocketAddressBase

Message ID 20211112031112.9303-3-chen.zhang@intel.com (mailing list archive)
State New, archived
Headers show
Series Add passthrough support to object with network processing function | expand

Commit Message

Zhang Chen Nov. 12, 2021, 3:11 a.m. UTC
No need to carry the flag all the time in many scenarios.

Signed-off-by: Zhang Chen <chen.zhang@intel.com>
---
 include/qemu/sockets.h |  1 +
 util/qemu-sockets.c    | 14 ++++++++++++++
 2 files changed, 15 insertions(+)

Comments

Markus Armbruster Nov. 19, 2021, 3:47 p.m. UTC | #1
I normally look only at the QAPI schema changes when I'm not a subject
matter expert, but today my gaze wandered...

Zhang Chen <chen.zhang@intel.com> writes:

> No need to carry the flag all the time in many scenarios.
>
> Signed-off-by: Zhang Chen <chen.zhang@intel.com>
> ---
>  include/qemu/sockets.h |  1 +
>  util/qemu-sockets.c    | 14 ++++++++++++++
>  2 files changed, 15 insertions(+)
>
> diff --git a/include/qemu/sockets.h b/include/qemu/sockets.h
> index 0c34bf2398..3a0f8fa8f2 100644
> --- a/include/qemu/sockets.h
> +++ b/include/qemu/sockets.h
> @@ -32,6 +32,7 @@ int socket_set_fast_reuse(int fd);
>  int inet_ai_family_from_address(InetSocketAddress *addr,
>                                  Error **errp);
>  int inet_parse(InetSocketAddress *addr, const char *str, Error **errp);
> +int inet_parse_base(InetSocketAddressBase *addr, const char *str, Error **errp);
>  int inet_connect(const char *str, Error **errp);
>  int inet_connect_saddr(InetSocketAddress *saddr, Error **errp);
>  
> diff --git a/util/qemu-sockets.c b/util/qemu-sockets.c
> index 0585e7a629..f444921918 100644
> --- a/util/qemu-sockets.c
> +++ b/util/qemu-sockets.c
> @@ -713,6 +713,20 @@ int inet_parse(InetSocketAddress *addr, const char *str, Error **errp)
>      return 0;
>  }
>  
> +int inet_parse_base(InetSocketAddressBase *base, const char *str, Error **errp)
> +{
> +    InetSocketAddress *addr;
> +    int ret = 0;
> +
> +    addr = g_new0(InetSocketAddress, 1);
> +    ret = inet_parse(addr, str, errp);
> +
> +    base->host = addr->host;
> +    base->port = addr->port;
> +
> +    g_free(addr);
> +    return ret;
> +}

This accepts all the funky flags inet_parse() accepts, then silently
ignores them.  I seriously doubt we want that.

>  
>  /**
>   * Create a blocking socket and connect it to an address.
diff mbox series

Patch

diff --git a/include/qemu/sockets.h b/include/qemu/sockets.h
index 0c34bf2398..3a0f8fa8f2 100644
--- a/include/qemu/sockets.h
+++ b/include/qemu/sockets.h
@@ -32,6 +32,7 @@  int socket_set_fast_reuse(int fd);
 int inet_ai_family_from_address(InetSocketAddress *addr,
                                 Error **errp);
 int inet_parse(InetSocketAddress *addr, const char *str, Error **errp);
+int inet_parse_base(InetSocketAddressBase *addr, const char *str, Error **errp);
 int inet_connect(const char *str, Error **errp);
 int inet_connect_saddr(InetSocketAddress *saddr, Error **errp);
 
diff --git a/util/qemu-sockets.c b/util/qemu-sockets.c
index 0585e7a629..f444921918 100644
--- a/util/qemu-sockets.c
+++ b/util/qemu-sockets.c
@@ -713,6 +713,20 @@  int inet_parse(InetSocketAddress *addr, const char *str, Error **errp)
     return 0;
 }
 
+int inet_parse_base(InetSocketAddressBase *base, const char *str, Error **errp)
+{
+    InetSocketAddress *addr;
+    int ret = 0;
+
+    addr = g_new0(InetSocketAddress, 1);
+    ret = inet_parse(addr, str, errp);
+
+    base->host = addr->host;
+    base->port = addr->port;
+
+    g_free(addr);
+    return ret;
+}
 
 /**
  * Create a blocking socket and connect it to an address.