nbd_set_export_name3
Set the export name
Usage
#include <libnbd.h>int nbd_set_export_name (struct nbd_handle *h, const char *export_name);
Overview
Some NBD servers can serve multiple disk images ("exports"). The export is picked by the client, by requesting an export name during the negotiation phase. The default export is the empty string "".
Some NBD servers ignore this and serve the same content regardless. This is only relevant when connecting to servers using the newstyle protocol as the oldstyle protocol did not support export names.
The NBD protocol limits export names to 4096 bytes, but servers may not support the full length. The encoding of export names is always UTF-8.
When option mode is not in use, the export name must be set before beginning a connection. However, when nbd_set_opt_mode(3) has enabled option mode, it is possible to change the export name prior to nbd_opt_go(3). In particular, the use of nbd_opt_list(3) during negotiation can be used to determine a name the server is likely to accept, and nbd_opt_info(3) can be used to learn details about an export before connecting.
This call may be skipped if using nbd_connect_uri(3) to connect to a URI that includes an export name.
Return value
If the call is successful the function returns 0.
Errors
On error -1 is returned.
Refer to "ERROR HANDLING" in libnbd(3) for how to get further details of the error.
The following parameters must not be NULL: "h", "export_name". For more information see "Non-NULL parameters" in libnbd(3).
Handle state
nbd_set_export_name can be called when the handle is in the following states:
┌─────────────────────────────────────┬─────────────────────────┐│ Handle created, before connecting │ ✅ allowed ││ Connecting │ ❌ error ││ Connecting & handshaking (opt_mode) │ ✅ allowed ││ Connected to the server │ ❌ error ││ Connection shut down │ ❌ error ││ Handle dead │ ❌ error │└─────────────────────────────────────┴─────────────────────────┘
Version
This function first appeared in libnbd 1.0.
If you need to test if this function is available at compile time check if the following macro is defined:
#define LIBNBD_HAVE_NBD_SET_EXPORT_NAME 1
Releases
4 releases since Debian 11 (Bullseye); the text changed 3 times.