nbd_connect_socket3
Connect directly to a connected socket
Usage
#include <libnbd.h>int nbd_connect_socket (struct nbd_handle *h, int sock);
Overview
Pass a connected socket "sock" through which libnbd will talk to the NBD server.
The caller is responsible for creating and connecting this socket by some method, before passing it to libnbd.
If this call returns without error then socket ownership is passed to libnbd. Libnbd will close the socket when the handle is closed. The caller must not use the socket in any way.
This call returns when the connection has been made. By default, this proceeds all the way to transmission phase, but nbd_set_opt_mode(3) can be used for manual control over option negotiation performed before transmission phase.
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". For more information see "Non-NULL parameters" in libnbd(3).
Handle state
nbd_connect_socket can be called when the handle is in the following state:
┌─────────────────────────────────────┬─────────────────────────┐│ Handle created, before connecting │ ✅ allowed ││ Connecting │ ❌ error ││ Connecting & handshaking (opt_mode) │ ❌ error ││ Connected to the server │ ❌ error ││ Connection shut down │ ❌ error ││ Handle dead │ ❌ error │└─────────────────────────────────────┴─────────────────────────┘
Version
This function first appeared in libnbd 1.2.
If you need to test if this function is available at compile time check if the following macro is defined:
#define LIBNBD_HAVE_NBD_CONNECT_SOCKET 1
Releases
4 releases since Debian 11 (Bullseye); the text changed 3 times.