'SocketAddress' structure was changed to contain 'inet' instead of 'tcp' since qemu commit c5f1ae3ae7b. Existing entries have a backward compatibility layer. Libvirt will parse 'inet' and 'tcp' as equivalents. --- src/util/virstoragefile.c | 23 +++++++++-------------- tests/virstoragetest.c | 2 +- 2 files changed, 10 insertions(+), 15 deletions(-) diff --git a/src/util/virstoragefile.c b/src/util/virstoragefile.c index 92bc561a2..7f2a50fd1 100644 --- a/src/util/virstoragefile.c +++ b/src/util/virstoragefile.c @@ -2802,18 +2802,17 @@ virStorageSourceParseBackingJSONSocketAddress(virStorageNetHostDefPtr host, const char *hostname = virJSONValueObjectGetString(json, "host"); const char *port = virJSONValueObjectGetString(json, "port"); const char *socket = virJSONValueObjectGetString(json, "socket"); - int transport; - if ((transport = virStorageNetHostTransportTypeFromString(type)) < 0) { - virReportError(VIR_ERR_INTERNAL_ERROR, - _("unknown backing store transport protocol '%s'"), type); + if (!type) { + virReportError(VIR_ERR_INVALID_ARG, "%s", + _("missing socket address type in " + "JSON backing volume definition")); return -1; } - host->transport = transport; + if (STREQ(type, "tcp") || STREQ(type, "inet")) { + host->transport = VIR_STORAGE_NET_HOST_TRANS_TCP; - switch ((virStorageNetHostTransport) transport) { - case VIR_STORAGE_NET_HOST_TRANS_TCP: if (!hostname) { virReportError(VIR_ERR_INVALID_ARG, "%s", _("missing hostname for tcp backing server in " @@ -2824,9 +2823,9 @@ virStorageSourceParseBackingJSONSocketAddress(virStorageNetHostDefPtr host, if (VIR_STRDUP(host->name, hostname) < 0 || VIR_STRDUP(host->port, port) < 0) return -1; - break; + } else if (STREQ(type, "unix")) { + host->transport = VIR_STORAGE_NET_HOST_TRANS_UNIX; - case VIR_STORAGE_NET_HOST_TRANS_UNIX: if (!socket) { virReportError(VIR_ERR_INVALID_ARG, "%s", _("missing socket path for udp backing server in " @@ -2834,13 +2833,9 @@ virStorageSourceParseBackingJSONSocketAddress(virStorageNetHostDefPtr host, return -1; } - if (VIR_STRDUP(host->socket, socket) < 0) return -1; - break; - - case VIR_STORAGE_NET_HOST_TRANS_RDMA: - case VIR_STORAGE_NET_HOST_TRANS_LAST: + } else { virReportError(VIR_ERR_INTERNAL_ERROR, _("backing store protocol '%s' is not yet supported"), type); diff --git a/tests/virstoragetest.c b/tests/virstoragetest.c index 70e24a1b7..117208289 100644 --- a/tests/virstoragetest.c +++ b/tests/virstoragetest.c @@ -1431,7 +1431,7 @@ mymain(void) "{ \"type\":\"unix\"," "\"socket\":\"/path/socket\"" "}," - "{ \"type\":\"tcp\"," + "{ \"type\":\"inet\"," "\"host\":\"example.com\"" "}" "]" -- 2.12.2 -- libvir-list mailing list libvir-list@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/libvir-list