evbuf
void evtag_marshal(struct evbuffer *evbuf, ev_uint32_t tag, const void *data,
void encode_int(struct evbuffer *evbuf, ev_uint32_t number);
void evtag_marshal_int(struct evbuffer *evbuf, ev_uint32_t tag,
void evtag_marshal_timeval(struct evbuffer *evbuf, ev_uint32_t tag,
int evtag_peek(struct evbuffer *evbuf, ev_uint32_t *ptag);
int evtag_peek_length(struct evbuffer *evbuf, ev_uint32_t *plength);
int evtag_payload_length(struct evbuffer *evbuf, ev_uint32_t *plength);
int evtag_consume(struct evbuffer *evbuf);
int evtag_unmarshal_int(struct evbuffer *evbuf, ev_uint32_t need_tag,
int evtag_unmarshal_string(struct evbuffer *evbuf, ev_uint32_t need_tag,
int evtag_unmarshal_timeval(struct evbuffer *evbuf, ev_uint32_t need_tag,
if (evbuf != NULL)
evbuffer_add(evbuf, data, bytes);
decode_tag_internal(ev_uint32_t *ptag, struct evbuffer *evbuf, int dodrain)
ev_uint8_t *data = EVBUFFER_DATA(evbuf);
int len = EVBUFFER_LENGTH(evbuf);
evbuffer_drain(evbuf, count);
evtag_decode_tag(ev_uint32_t *ptag, struct evbuffer *evbuf)
return (decode_tag_internal(ptag, evbuf, 1 /* dodrain */));
evtag_marshal(struct evbuffer *evbuf, ev_uint32_t tag,
evtag_encode_tag(evbuf, tag);
encode_int(evbuf, len);
evbuffer_add(evbuf, data, len);
evtag_marshal_int(struct evbuffer *evbuf, ev_uint32_t tag, ev_uint32_t integer)
evtag_encode_tag(evbuf, tag);
encode_int(evbuf, EVBUFFER_LENGTH(_buf));
evbuffer_add_buffer(evbuf, _buf);
evtag_marshal_timeval(struct evbuffer *evbuf, ev_uint32_t tag, struct timeval *tv)
evtag_marshal(evbuf, tag, EVBUFFER_DATA(_buf),
decode_int_internal(ev_uint32_t *pnumber, struct evbuffer *evbuf, int dodrain)
ev_uint8_t *data = EVBUFFER_DATA(evbuf);
int len = EVBUFFER_LENGTH(evbuf);
evbuffer_drain(evbuf, len);
evtag_decode_int(ev_uint32_t *pnumber, struct evbuffer *evbuf)
return (decode_int_internal(pnumber, evbuf, 1) == -1 ? -1 : 0);
evtag_peek(struct evbuffer *evbuf, ev_uint32_t *ptag)
return (decode_tag_internal(ptag, evbuf, 0 /* dodrain */));
evtag_peek_length(struct evbuffer *evbuf, ev_uint32_t *plength)
len = decode_tag_internal(NULL, evbuf, 0 /* dodrain */);
tmp = *evbuf;
evtag_payload_length(struct evbuffer *evbuf, ev_uint32_t *plength)
len = decode_tag_internal(NULL, evbuf, 0 /* dodrain */);
tmp = *evbuf;
evtag_consume(struct evbuffer *evbuf)
if (decode_tag_internal(NULL, evbuf, 1 /* dodrain */) == -1)
if (evtag_decode_int(&len, evbuf) == -1)
evbuffer_drain(evbuf, len);
evtag_unmarshal_int(struct evbuffer *evbuf, ev_uint32_t need_tag,
if (decode_tag_internal(&tag, evbuf, 1 /* dodrain */) == -1)
if (evtag_decode_int(&integer, evbuf) == -1)
if (EVBUFFER_LENGTH(evbuf) < len)
if (evbuffer_add(_buf, EVBUFFER_DATA(evbuf), len) == -1)
evbuffer_drain(evbuf, len);
evtag_unmarshal_string(struct evbuffer *evbuf, ev_uint32_t need_tag,
if (evtag_unmarshal(evbuf, &tag, _buf) == -1 || tag != need_tag)
evtag_unmarshal_timeval(struct evbuffer *evbuf, ev_uint32_t need_tag,
if (evtag_unmarshal(evbuf, &tag, _buf) == -1 || tag != need_tag)
int evtag_decode_int(ev_uint32_t *pnumber, struct evbuffer *evbuf);
int evtag_encode_tag(struct evbuffer *evbuf, ev_uint32_t tag);
int evtag_decode_tag(ev_uint32_t *ptag, struct evbuffer *evbuf);
encode_int(struct evbuffer *evbuf, ev_uint32_t number)
evbuffer_add(evbuf, data, (off + 1) / 2);
evtag_encode_tag(struct evbuffer *evbuf, ev_uint32_t tag)
int evtag_decode_int(uint32_t *pnumber, struct evbuffer *evbuf);
int evtag_encode_tag(struct evbuffer *evbuf, uint32_t number);
int evtag_decode_tag(uint32_t *pnumber, struct evbuffer *evbuf);
char *evbuf, *last, **nargv = NULL;
if ((evbuf = strdup(p)) == NULL)
for ((p = strtok_r(evbuf, " ", &last)); p != NULL;
fcgi_add_stdin(struct client *clt, struct evbuffer *evbuf)
if (evbuf == NULL) {
h.content_len = htons(EVBUFFER_LENGTH(evbuf));
return bufferevent_write_buffer(clt->clt_srvbev, evbuf);
evbuf_enqueue(struct evbuf *eb, struct ibuf *buf)
evbuf_event_add(struct evbuf *eb)
evbuf_init(struct evbuf *eb, int fd, void (*handler)(int, short, void *),
evbuf_clear(struct evbuf *eb)
void evbuf_enqueue(struct evbuf *, struct ibuf *);
void evbuf_event_add(struct evbuf *);
void evbuf_init(struct evbuf *, int, void (*)(int, short, void *), void *);
void evbuf_clear(struct evbuf *);
struct evbuf wbuf;
zonestat_print(RES *ssl, struct evbuffer *evbuf, xfrd_state_type *xfrd,
if (evbuf) {
metrics_zonestat_print_one(evbuf, name, &stat0);
(void)evbuf;
process_stats(RES* ssl, struct evbuffer *evbuf, struct xfrd_state* xfrd, int peek)
assert((ssl && !evbuf) || (!ssl && evbuf));
if (evbuf) {
metrics_print_stats(evbuf, xfrd, &stattime, !peek, &total, zonestats,
metrics_print_stats(evbuf, xfrd, &stattime, !peek, &total, zonestats,
(void)evbuf;
struct evbuffer* evbuf,
void zonestat_print(struct remote_stream *ssl, struct evbuffer *evbuf,
char *vbuf, *evbuf, *bp;
evbuf = vbuf + (numvnodes + 20) *
sizeof(struct vnode)) > evbuf)
octet_counting(struct evbuffer *evbuf, char **msg, int drain)
buf = EVBUFFER_DATA(evbuf);
end = buf + EVBUFFER_LENGTH(evbuf);
evbuffer_drain(evbuf, p - buf);
non_transparent_framing(struct evbuffer *evbuf, char **msg)
buf = EVBUFFER_DATA(evbuf);
end = buf + EVBUFFER_LENGTH(evbuf);