nbd_aio_opt_structured_reply(3)

🌸 NAME 🌸

okay so bestie, this is nbd_aio_opt_structured_reply from the libnbd(3) manual β€” the async main-character move that asks the server to enable structured replies. πŸ’…βœ¨


✨ SYNOPSIS ✨

        #include <libnbd.h>

        typedef struct {
          int (*callback) (void *user_data, int *error);
          void *user_data;
          void (*free) (void *user_data);
        } nbd_completion_callback;

        int nbd_aio_opt_structured_reply (
              struct nbd_handle *h,
              nbd_completion_callback completion_callback
            );

πŸ’– DESCRIPTION πŸ’–

okay so you're requesting that the server use structured replies by sending "NBD_OPT_STRUCTURED_REPLY". It's giving the async twin of the synchronous counterpart nbd_opt_structured_reply(3), except this one does not wait for the server's response β€” she's busy, she's booked, she's asynchronous. πŸ¦‹

To figure out when the request completes, wait for nbd_aio_is_connecting(3) to return false. Not me refreshing that vibe check. 😭 Or supply the optional "completion_callback" which will be invoked as described in "Completion callbacks" in libnbd(3), except that it is automatically retired regardless of return value. Lowkey important: detecting whether the server returns an error (as is done by the return value of the synchronous counterpart) is only possible with a completion callback. Periodt. πŸ’…


πŸ”₯ RETURN VALUE πŸ”₯

If the call is successful the function returns 0. That's the slay. βœ…


😭 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_aio_opt_structured_reply can be called when the handle is in the following state β€” vibe check, bestie:

  • Handle created, before connecting β€” ❌ error
  • 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.16. So she's been iconic since then. πŸŽ€

If you need to test if this function is available at compile time check if the following macro is defined:

#define LIBNBD_HAVE_NBD_AIO_OPT_STRUCTURED_REPLY 1

πŸ‘‘ SEE ALSO πŸ‘‘

go read these besties, iykyk:


🫢 AUTHORS 🫢

shoutout to the icons who made this happen:

  • Eric Blake
  • Richard W.M. Jones

Copyright Red Hat

periodt. πŸ‘‘


πŸ“œ LICENSE πŸ“œ

okay legal bestie, here's the exact license tea β€” no cap, don't change a word:

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

k thx bye, bestie πŸ’–βœ¨ this page is from libnbd-1.25.8, dated 2026-10-13, and it's literally nbd_aio_opt_structured_reply(3) forever. πŸ«ΆπŸ‘‘

πŸ“¦ where this page comes from