Message ID | 20220913064000.79353-13-lvivier@redhat.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | qapi: net: add unix socket type support to netdev backend | expand |
* Laurent Vivier (lvivier@redhat.com) wrote: > To be consistent with socket_uri(), add 'tcp:' prefix for inet type in > socket_parse(), by default socket_parse() use tcp when no prefix is > provided (format is host:port). > > In socket_uri(), use 'vsock:' prefix for vsock type rather than 'tcp:' > because it makes a vsock address look like an inet address with CID > misinterpreted as host. > Goes back to commit 9aca82ba31 "migration: Create socket-address parameter" > > Signed-off-by: Laurent Vivier <lvivier@redhat.com> Yeh I think that's safer than the last version for migrate URIs Reviewed-by: Dr. David Alan Gilbert <dgilbert@redhat.com> > --- > util/qemu-sockets.c | 7 ++++++- > 1 file changed, 6 insertions(+), 1 deletion(-) > > diff --git a/util/qemu-sockets.c b/util/qemu-sockets.c > index 9f6f655fd526..a9926af714c4 100644 > --- a/util/qemu-sockets.c > +++ b/util/qemu-sockets.c > @@ -1090,7 +1090,7 @@ char *socket_uri(SocketAddress *addr) > case SOCKET_ADDRESS_TYPE_FD: > return g_strdup_printf("fd:%s", addr->u.fd.str); > case SOCKET_ADDRESS_TYPE_VSOCK: > - return g_strdup_printf("tcp:%s:%s", > + return g_strdup_printf("vsock:%s:%s", > addr->u.vsock.cid, > addr->u.vsock.port); > default: > @@ -1124,6 +1124,11 @@ SocketAddress *socket_parse(const char *str, Error **errp) > if (vsock_parse(&addr->u.vsock, str + strlen("vsock:"), errp)) { > goto fail; > } > + } else if (strstart(str, "tcp:", NULL)) { > + addr->type = SOCKET_ADDRESS_TYPE_INET; > + if (inet_parse(&addr->u.inet, str + strlen("tcp:"), errp)) { > + goto fail; > + } > } else { > addr->type = SOCKET_ADDRESS_TYPE_INET; > if (inet_parse(&addr->u.inet, str, errp)) { > -- > 2.37.3 >
Laurent Vivier <lvivier@redhat.com> writes: > To be consistent with socket_uri(), add 'tcp:' prefix for inet type in > socket_parse(), by default socket_parse() use tcp when no prefix is > provided (format is host:port). > > In socket_uri(), use 'vsock:' prefix for vsock type rather than 'tcp:' > because it makes a vsock address look like an inet address with CID > misinterpreted as host. > Goes back to commit 9aca82ba31 "migration: Create socket-address parameter" > > Signed-off-by: Laurent Vivier <lvivier@redhat.com> > --- > util/qemu-sockets.c | 7 ++++++- > 1 file changed, 6 insertions(+), 1 deletion(-) > > diff --git a/util/qemu-sockets.c b/util/qemu-sockets.c > index 9f6f655fd526..a9926af714c4 100644 > --- a/util/qemu-sockets.c > +++ b/util/qemu-sockets.c > @@ -1090,7 +1090,7 @@ char *socket_uri(SocketAddress *addr) > case SOCKET_ADDRESS_TYPE_FD: > return g_strdup_printf("fd:%s", addr->u.fd.str); > case SOCKET_ADDRESS_TYPE_VSOCK: > - return g_strdup_printf("tcp:%s:%s", > + return g_strdup_printf("vsock:%s:%s", > addr->u.vsock.cid, > addr->u.vsock.port); > default: > @@ -1124,6 +1124,11 @@ SocketAddress *socket_parse(const char *str, Error **errp) > if (vsock_parse(&addr->u.vsock, str + strlen("vsock:"), errp)) { > goto fail; > } > + } else if (strstart(str, "tcp:", NULL)) { > + addr->type = SOCKET_ADDRESS_TYPE_INET; > + if (inet_parse(&addr->u.inet, str + strlen("tcp:"), errp)) { > + goto fail; > + } > } else { > addr->type = SOCKET_ADDRESS_TYPE_INET; > if (inet_parse(&addr->u.inet, str, errp)) { I'd be tempted to split this patch, but I'm a compulsive patch splitter ;) Reviewed-by: Markus Armbruster <armbru@redhat.com>
diff --git a/util/qemu-sockets.c b/util/qemu-sockets.c index 9f6f655fd526..a9926af714c4 100644 --- a/util/qemu-sockets.c +++ b/util/qemu-sockets.c @@ -1090,7 +1090,7 @@ char *socket_uri(SocketAddress *addr) case SOCKET_ADDRESS_TYPE_FD: return g_strdup_printf("fd:%s", addr->u.fd.str); case SOCKET_ADDRESS_TYPE_VSOCK: - return g_strdup_printf("tcp:%s:%s", + return g_strdup_printf("vsock:%s:%s", addr->u.vsock.cid, addr->u.vsock.port); default: @@ -1124,6 +1124,11 @@ SocketAddress *socket_parse(const char *str, Error **errp) if (vsock_parse(&addr->u.vsock, str + strlen("vsock:"), errp)) { goto fail; } + } else if (strstart(str, "tcp:", NULL)) { + addr->type = SOCKET_ADDRESS_TYPE_INET; + if (inet_parse(&addr->u.inet, str + strlen("tcp:"), errp)) { + goto fail; + } } else { addr->type = SOCKET_ADDRESS_TYPE_INET; if (inet_parse(&addr->u.inet, str, errp)) {
To be consistent with socket_uri(), add 'tcp:' prefix for inet type in socket_parse(), by default socket_parse() use tcp when no prefix is provided (format is host:port). In socket_uri(), use 'vsock:' prefix for vsock type rather than 'tcp:' because it makes a vsock address look like an inet address with CID misinterpreted as host. Goes back to commit 9aca82ba31 "migration: Create socket-address parameter" Signed-off-by: Laurent Vivier <lvivier@redhat.com> --- util/qemu-sockets.c | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-)