25 #include <freeradius-devel/bio/bio_priv.h>
26 #include <freeradius-devel/bio/null.h>
27 #include <freeradius-devel/util/syserror.h>
67 rcode = next->
read(next, packet_ctx,
buffer, size);
68 if (rcode >= 0)
return rcode;
90 rcode = next->
write(next, packet_ctx,
buffer, size);
91 if (rcode >= 0)
return rcode;
175 if (my->cb.shutdown && ((rcode = my->cb.shutdown(last)) < 0))
return rcode;
204 return "IO operation would block";
213 return "Packet fails verification";
216 return "Output buffer is full";
219 return "Output buffer is too small to cache the data";
static int const char char buffer[256]
fr_bio_write_t _CONST write
write to the underlying bio
fr_bio_read_t _CONST read
read from the underlying bio
fr_dlist_t _CONST entry
in the linked list of multiple bios
static fr_bio_t * fr_bio_prev(fr_bio_t *bio)
static fr_bio_t * fr_bio_next(fr_bio_t *bio)
int fr_bio_free(fr_bio_t *bio)
Free this bio, and everything it calls.
ssize_t fr_bio_eof_read(UNUSED fr_bio_t *bio, UNUSED void *packet_ctx, UNUSED void *buffer, UNUSED size_t size)
Always returns EOF on fr_bio_read()
int fr_bio_shutdown_intermediate(fr_bio_t *bio)
Like fr_bio_shutdown(), but can be called by anyone in the chain.
char const * fr_bio_strerror(ssize_t error)
int fr_bio_destructor(fr_bio_t *bio)
Free this bio.
ssize_t fr_bio_next_read(fr_bio_t *bio, void *packet_ctx, void *buffer, size_t size)
Internal bio function which just reads from the "next" bio.
ssize_t fr_bio_next_write(fr_bio_t *bio, void *packet_ctx, void const *buffer, size_t size)
Internal bio function which just writes to the "next" bio.
int fr_bio_shutdown(fr_bio_t *bio)
Shut down a set of BIOs.
ssize_t fr_bio_null_write(UNUSED fr_bio_t *bio, UNUSED void *packet_ctx, UNUSED void const *buffer, UNUSED size_t size)
Always return 0 on write.
char const * fr_syserror(int num)
Guaranteed to be thread-safe version of strerror.
char const * fr_strerror(void)
Get the last library error.