mirror of
https://gitlab.com/libvirt/libvirt.git
synced 2024-12-22 13:45:38 +00:00
util: storagefile: Properly set transport type when parsing NBD strings
When parsing legacy NBD backing file strings such as 'nbd:unix:/tmp/sock:exportname=/' we'd fail to set the transport to VIR_STORAGE_NET_HOST_TRANS_UNIX. This started to be a problem once we actually started to generate config of the backing store on the command line with -blockdev as the JSON code would try to format it as TCP and fail with: internal error: argument key 'host' must not have null value Set the type properly and add a test. This bug was found by the libguestfs test suite in: https://bugzilla.redhat.com/show_bug.cgi?id=1791614 Signed-off-by: Peter Krempa <pkrempa@redhat.com> Reported-by: Ming Xie <mxie@redhat.com> Reviewed-by: Eric Blake <eblake@redhat.com> Tested-by: Richard W.M. Jones <rjones@redhat.com>
This commit is contained in:
parent
9bb3571f10
commit
5f2fa393f7
@ -2964,7 +2964,7 @@ virStorageSourceParseNBDColonString(const char *nbdstr,
|
||||
}
|
||||
|
||||
src->hosts->socket = g_strdup(backing[2]);
|
||||
|
||||
src->hosts->transport = VIR_STORAGE_NET_HOST_TRANS_UNIX;
|
||||
} else {
|
||||
src->hosts->name = g_strdup(backing[1]);
|
||||
|
||||
|
@ -1258,6 +1258,10 @@ mymain(void)
|
||||
"<source protocol='nbd' name=':test'>\n"
|
||||
" <host name='example.org' port='6000'/>\n"
|
||||
"</source>\n");
|
||||
TEST_BACKING_PARSE("nbd:unix:/tmp/sock:exportname=/",
|
||||
"<source protocol='nbd' name='/'>\n"
|
||||
" <host transport='unix' socket='/tmp/sock'/>\n"
|
||||
"</source>\n");
|
||||
TEST_BACKING_PARSE("nbd://example.org:1234",
|
||||
"<source protocol='nbd'>\n"
|
||||
" <host name='example.org' port='1234'/>\n"
|
||||
|
Loading…
Reference in New Issue
Block a user