nbd: use "" as a default export name if none provided

If the user does not provide an export name and the server
is running the new style protocol, where export names are
mandatory, use "" as the default export name if the user
has not specified any. "" is defined in the NBD protocol
as the default name to use in such scenarios.

Signed-off-by: Daniel P. Berrange <berrange@redhat.com>
Message-Id: <1455129674-17255-13-git-send-email-berrange@redhat.com>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
This commit is contained in:
Daniel P. Berrange 2016-02-10 18:41:10 +00:00 committed by Paolo Bonzini
parent 9344e5f554
commit 69b49502d8
2 changed files with 3 additions and 2 deletions

View File

@ -315,8 +315,8 @@ int nbd_receive_negotiate(QIOChannel *ioc, const char *name, uint32_t *flags,
goto fail; goto fail;
} }
if (!name) { if (!name) {
error_setg(errp, "Server requires an export name"); TRACE("Using default NBD export name \"\"");
goto fail; name = "";
} }
if (fixedNewStyle) { if (fixedNewStyle) {
/* Check our desired export is present in the /* Check our desired export is present in the

View File

@ -220,6 +220,7 @@ static int nbd_negotiate_send_rep_list(QIOChannel *ioc, NBDExport *exp)
uint64_t magic, name_len; uint64_t magic, name_len;
uint32_t opt, type, len; uint32_t opt, type, len;
TRACE("Advertizing export name '%s'", exp->name ? exp->name : "");
name_len = strlen(exp->name); name_len = strlen(exp->name);
magic = cpu_to_be64(NBD_REP_MAGIC); magic = cpu_to_be64(NBD_REP_MAGIC);
if (nbd_negotiate_write(ioc, &magic, sizeof(magic)) != sizeof(magic)) { if (nbd_negotiate_write(ioc, &magic, sizeof(magic)) != sizeof(magic)) {