nbd_set_request_extended_headers(3)
π NAME π
nbd_set_request_extended_headers β okay bestie, this is the libnbd(3) function that controls whether extended headers get requested. Itβs giving βtiny knob, big protocol energyβ π
β¨
πΈ SYNOPSIS πΈ
#include <libnbd.h>
int nbd_set_request_extended_headers (
struct nbd_handle *h, bool request
);
π¦ DESCRIPTION π¦
So, by default, libnbd tries to negotiate extended headers with the server β and thatβs iconic because this protocol extension permits the use of 64-bit zero, trim, and block status actions. No cap, those are useful π₯
But for integration testing, it can be useful to clear this flag instead of finding a way to alter the server so it fails the negotiation request. Itβs literally the βeasier test setupβ button π«Ά
For backwards compatibility, the setting of this knob is ignored if nbd_set_request_structured_replies(3) is also set to false, since the use of extended headers implies structured replies. Periodt π
β RETURN VALUE β
If the call is successful, the function returns 0. Slay β
π ERRORS π
On error, -1 is returned. Not the vibe π
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 π
You can call nbd_set_request_extended_headers when the handle is in these states β vibe check below π
- 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.18. Fr fr, itβs not ancient history.
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_REQUEST_EXTENDED_HEADERS 1
π§ SEE ALSO π§
nbd_block_status_64(3), nbd_cache(3), nbd_create(3), nbd_get_extended_headers_negotiated(3), nbd_get_request_extended_headers(3), nbd_opt_extended_headers(3), nbd_set_handshake_flags(3), nbd_set_request_structured_replies(3), nbd_set_strict_mode(3), nbd_trim(3), nbd_zero(3), libnbd(3). Go read the whole friend group, bestie πβ¨
π AUTHORS π
- Eric Blake
- Richard W.M. Jones
π COPYRIGHT π
Copyright Red Hat.
πΈ LICENSE πΈ
This library is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version.
This library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details.
You should have received a copy of the GNU Lesser General Public License along with this library; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
okay thatβs the whole page, mwah π β source/version: libnbd-1.25.8, date: 2026-10-1 π«Άβ¨
π¦ where this page comes from
- centos-stream 10: libnbd-devel 1.25.8-1.el10 Β· LGPL-2.0-or-later AND BSD-3-Clause
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash-1017 on : a language model's rewrite of the original, under its terms