NAME
evbuffer_new
,
evbuffer_free
,
evbuffer_setcb
,
evbuffer_expand
,
evbuffer_add
,
evbuffer_add_buffer
,
evbuffer_add_printf
,
evbuffer_add_vprintf
,
evbuffer_drain
,
evbuffer_remove
,
evbuffer_write
,
evbuffer_read
,
evbuffer_find
,
evbuffer_readline
,
evbuffer_readln
—
libevent utility API for buffered
input/output
SYNOPSIS
#include
<event.h>
struct evbuffer *
evbuffer_new
(void);
void
evbuffer_free
(struct
evbuffer *buf);
void
evbuffer_setcb
(struct evbuffer
*buf, void (*cb)(struct evbuffer *, size_t, size_t,
void *), void *cbarg);
int
evbuffer_expand
(struct
evbuffer *buf, size_t
datlen);
int
evbuffer_add
(struct
evbuffer *buf, const void
*data, size_t
size);
int
evbuffer_add_buffer
(struct
evbuffer *dst, struct
evbuffer *src);
int
evbuffer_add_printf
(struct
evbuffer *buf, const char
*fmt, ...);
int
evbuffer_add_vprintf
(struct
evbuffer *buf, const char
*fmt, va_list
ap);
void
evbuffer_drain
(struct
evbuffer *buf, size_t
size);
int
evbuffer_remove
(struct
evbuffer *buf, void
*data, size_t
datlen);
int
evbuffer_write
(struct
evbuffer *buf, int
fd);
int
evbuffer_read
(struct
evbuffer *buf, int
fd, int size);
u_char *
evbuffer_find
(struct
evbuffer *buf, const
u_char *data, size_t
size);
char *
evbuffer_readline
(struct
evbuffer *buf);
char *
evbuffer_readln
(struct evbuffer
*buf, size_t *read_out, enum
evbuffer_eol_style eol_style);
size_t
EVBUFFER_LENGTH
(const
struct evbuffer *buf);
DESCRIPTION
The evbuffer API provides an implementation of buffering for use with libevent.
evbuffer_new
()
allocates and initialises a new evbuffer structure.
evbuffer_free
()
deallocates the evbuffer structure buf and any
referenced storage.
evbuffer_setcb
()
sets the callback cb to be invoked with argument
cbarg when the data in evbuffer
buf is modified.
evbuffer_expand
()
expands the available space in buf to at least
datlen bytes.
evbuffer_add
()
appends a copy of size bytes from buffer
data to the end of the evbuffer
buf.
evbuffer_add_buffer
()
moves the data off the src evbuffer and appends it to
dst.
evbuffer_add_printf
()
appends a printf(3) style formatted string specified by
fmt to the end of buf.
evbuffer_add_vprintf
()
appends a vprintf(3) style formatted string specified by
fmt with a va_list ap to the end
of buf.
evbuffer_drain
()
deletes size bytes from the beginning of the evbuffer
buf.
evbuffer_remove
()
reads and drains up to datlen bytes from the beginning
of the evbuffer buf into
data.
evbuffer_write
()
writes and drains the contents of evbuffer buf to the
file descriptor fd.
evbuffer_read
()
appends up to size bytes on to the end of the evbuffer
buf by reading from the file descriptor
fd.
evbuffer_find
()
finds the size length string
data in the evbuffer buf.
evbuffer_readline
()
reads and drains a single line from the evbuffer buf.
A line is delimited by "\n", "\r", "\r\n", or
"\n\r". It is the responsibility of the caller to free the
returned line with
free(3).
evbuffer_readln
()
reads and drains a single line from the evbuffer buf.
The length of the line will be stored in read_out on
success. It is the responsibility of the caller to free the returned line
with free(3). The line delimiter is specified as one of the following:
EVBUFFER_EOL_ANY
- Any sequence of newline or carriage return characters.
EVBUFFER_EOL_CRLF
- A new line optionally preceded by a carriage return.
EVBUFFER_EOL_CRLF_STRICT
- A carriage return followed by a new line character.
EVBUFFER_EOL_LF
- A new line character.
EVBUFFER_LENGTH
()
reports how many bytes are stored in the evbuffer
buf.
RETURN VALUES
evbuffer_new
() returns a pointer to a
newly allocated buffer on success, or NULL
on
failure and sets errno to indicate the failure.
evbuffer_expand
(),
evbuffer_add
(), and
evbuffer_add_buffer
() return 0 on success, or -1 on
failure and set errno to indicate the failure.
evbuffer_add_printf
() and
evbuffer_add_vprintf
() return the number of bytes
added on success, or -1 on failure.
evbuffer_remove
() returns the number of
bytes read.
evbuffer_write
() returns the number of
bytes written and drained on success, or -1 on failure and sets
errno to indicate the failure.
evbuffer_read
() returns the number of
bytes appended to the evbuffer on success, 0 on an end of file condition, or
-1 on failure and sets errno to indicate the
failure.
evbuffer_find
() returns a pointer to the
start of the string within the evbuffer on success, or
NULL
on failure.
evbuffer_readline
() and
evbuffer_readln
() return a pointer to the line on
success, or NULL
on failure.
EVBUFFER_LENGTH
() returns the number of
bytes available in the evbuffer.
SEE ALSO
AUTHORS
The event
library was written by
Niels Provos.