25RCSIDH(lib_bio_fd_errno_h,
"$Id: 5976737ab264d0c0328b9513ddc53af68cda5b50 $")
27#include <freeradius-devel/bio/fd_priv.h>
44 fr_bio_io_t blocked_cb = is_write ? my->cb.write_blocked : my->cb.read_blocked;
52 if (*tries_p <= my->max_tries)
return true;
57#if defined(EWOULDBLOCK) && (EWOULDBLOCK != EAGAIN)
78 }
else if (blocked_cb) {
157#define FD_ENET_SUPPRESS \
159 if ((rcode == fr_bio_error(IO)) && ((errno == ENETDOWN) || (errno == ENETUNREACH))) return 0; \
int(* fr_bio_io_t)(fr_bio_t *bio)
bool read_blocked
did we block on read?
bool write_blocked
did we block on write?
static bool fr_bio_fd_errno_retry(fr_bio_fd_t *my, ssize_t *rcode_p, int *tries_p, bool is_write)
Turn a failed read / write into a bio return code.
int fr_bio_write_blocked(fr_bio_t *bio)
Internal BIO function to tell all BIOs that it's blocked.
int fr_bio_shutdown(fr_bio_t *bio)
Shut down a set of BIOs.