17 #include "testsupport.h" 19 typedef struct buf_t buf_t;
25 size_t buf_get_default_chunk_size(
const buf_t *buf);
27 #define buf_free(b) FREE_AND_NULL(buf_t, buf_free_, (b)) 31 MOCK_DECL(
size_t, buf_datalen, (
const buf_t *buf));
36 size_t buf_get_total_allocation(
void);
43 size_t *buf_flushlen);
45 int buf_add(buf_t *buf,
const char *
string,
size_t string_len);
52 const
char *data,
size_t data_len,
int done);
53 int buf_move_to_buf(buf_t *buf_out, buf_t *buf_in,
size_t *buf_flushlen);
55 void buf_peek(const buf_t *buf,
char *
string,
size_t string_len);
57 int buf_get_bytes(buf_t *buf,
char *
string,
size_t string_len);
58 int buf_get_line(buf_t *buf,
char *data_out,
size_t *data_len);
60 #define PEEK_BUF_STARTSWITH_MAX 16 70 const char **head_out,
size_t *len_out);
73 #ifdef BUFFERS_PRIVATE 75 buf_t *buf_new_with_data(
const char *cp,
size_t sz);
79 #define DEBUG_CHUNK_ALLOC 81 typedef struct chunk_t {
85 #ifdef DEBUG_CHUNK_ALLOC 89 uint32_t inserted_time;
90 char mem[FLEXIBLE_ARRAY_MEMBER];
95 #define BUFFER_MAGIC 0xB0FFF312u 101 size_t default_chunk_size;
110 #define MIN_READ_LEN 8 115 CHUNK_REMAINING_CAPACITY(
const chunk_t *chunk)
117 return (chunk->mem + chunk->memlen) - (chunk->data + chunk->datalen);
123 CHUNK_WRITE_PTR(chunk_t *chunk)
125 return chunk->data + chunk->datalen;
void buf_clear(buf_t *buf)
Definition: buffers.c:369
size_t buf_slack(const buf_t *buf)
Definition: buffers.c:402
chunk_t * buf_add_chunk_with_capacity(buf_t *buf, size_t capacity, int capped)
Definition: buffers.c:463
buf_t * buf_new(void)
Definition: buffers.c:353
void buf_peek(const buf_t *buf, char *string, size_t string_len)
Definition: buffers.c:768
MOCK_DECL(int, router_have_minimum_dir_info,(void))
Header file to define uint32_t and friends.
int buf_move_to_buf(buf_t *buf_out, buf_t *buf_in, size_t *buf_flushlen)
Definition: buffers.c:815
void buf_free_(buf_t *buf)
Definition: buffers.c:412
Definition: compress.c:459
int buf_flush_to_socket(buf_t *buf, tor_socket_t s, size_t sz, size_t *buf_flushlen)
Definition: buffers.c:641
void buf_drain(buf_t *buf, size_t n)
Definition: buffers.c:318
buf_t * buf_new_with_capacity(size_t size)
Definition: buffers.c:344
void buf_add_vprintf(buf_t *buf, const char *format, va_list args)
Definition: buffers.c:737
int buf_peek_startswith(const buf_t *buf, const char *cmd)
Definition: buffers.c:979
void void int buf_add_compress(buf_t *buf, struct tor_compress_state_t *state, const char *data, size_t data_len, int done)
Definition: buffers.c:1045
buf_t * buf_copy(const buf_t *buf)
Definition: buffers.c:441
void buf_move_all(buf_t *buf_out, buf_t *buf_in)
Definition: buffers.c:848
int buf_get_line(buf_t *buf, char *data_out, size_t *data_len)
Definition: buffers.c:1018
void buf_pullup(buf_t *buf, size_t bytes, const char **head_out, size_t *len_out)
Definition: buffers.c:199
void buf_add_string(buf_t *buf, const char *string)
Definition: buffers.c:720
int buf_find_string_offset(const buf_t *buf, const char *s, size_t n)
Definition: buffers.c:960
int buf_add(buf_t *buf, const char *string, size_t string_len)
Definition: buffers.c:686
uint32_t buf_get_oldest_chunk_timestamp(const buf_t *buf, uint32_t now)
Definition: buffers.c:494
void buf_add_printf(buf_t *buf, const char *format,...)
Definition: buffers.c:727
int buf_get_bytes(buf_t *buf, char *string, size_t string_len)
Definition: buffers.c:795
char * buf_extract(buf_t *buf, size_t *sz_out)
Definition: buffers.c:750
size_t buf_allocation(const buf_t *buf)
Definition: buffers.c:389
int buf_read_from_socket(buf_t *buf, tor_socket_t s, size_t at_most, int *reached_eof, int *socket_error)
Definition: buffers.c:554
void buf_assert_ok(buf_t *buf)
Definition: buffers.c:1113
int buf_set_to_copy(buf_t **output, const buf_t *input)
Definition: buffers.c:1101
size_t buf_preferred_chunk_size(size_t target)
Definition: buffers.c:177