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,
EVBUFFER_LENGTH,
EVBUFFER_DATA —
libevent utility API for buffered
input/output
SYNOPSIS
/* -levent */
#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);
u_char *
EVBUFFER_DATA(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.
EVBUFFER_DATA() returns a pointer to the
evbuffer buf on success.
SEE ALSO
AUTHORS
The event library was written by
Niels Provos.