50#include <sys/socket.h>
53#include <uthash/uthash.h>
58#define CONN_IS_UDP_LISTENER(conn) \
59 conn->lc == 0 && conn->proto == 0
62#define CONN_IS_TCP_LISTENER(conn) \
63 conn->lc == 0 && conn->proto == 1
66#define CONN_IS_TCP_CONN(conn) \
67 conn->lc == 1 && conn->proto == 1
105 TCP_CONN_ST_ASSIGN_CONN_ID_ERR = 0,
113 TCP_CONN_ST_WAIT_FOR_QUERY_DATA,
325 struct sockaddr_storage *client_ip,
326 struct sockaddr_storage *local_ip);
329 char *err_buf,
size_t err_buf_len);
conn_t * conn_fifo_dequeue_release(conn_fifo_queue_t *queue)
Definition conn.c:725
struct conn_udp_s conn_udp_t
struct conn_tcp_s conn_tcp_t
void conn_fifo_enqueue_release(conn_fifo_queue_t *queue, conn_t *conn)
Definition conn.c:703
enum conn_tcp_state_e conn_tcp_state_t
conn_tcp_state_e
Definition conn.h:103
conn_t * conn_new_tcp(int fd, config_t *cfg, int ip_version, struct sockaddr_storage *client_ip, struct sockaddr_storage *local_ip)
Definition conn.c:180
conn_t * conn_listener_provision(config_t *cfg, int family, int protocol, char *err_buf, size_t err_buf_len)
Definition conn.c:507
void conn_fifo_remove_from_write_queue(conn_fifo_queue_t *queue, conn_t *conn_rm)
Definition conn.c:775
void conn_fifo_enqueue_read(conn_fifo_queue_t *queue, conn_t *entry)
Definition conn.c:575
conn_t * conn_fifo_dequeue_gen(conn_fifo_queue_t *queue)
Definition conn.c:638
void conn_fifo_enqueue_write(conn_fifo_queue_t *queue, conn_t *entry)
Definition conn.c:658
listener_start_error_e
Definition conn.h:70
bool conn_tcp_id_assign(uint64_t *id, conn_t **lru, uint64_t *base)
Definition conn.c:832
void conn_tcp_report_metrics(conn_tcp_t *conn_tcp, metrics_t *metrics)
Definition conn_tcp_report_metrics.c:37
void conn_udp_vectors_reset(conn_udp_t *conn_udp)
Definition conn.c:302
void conn_fifo_remove_from_read_queue(conn_fifo_queue_t *queue, conn_t *conn_rm)
Definition conn.c:749
conn_t * conn_lru_cache_get(conn_t **lru, uint64_t id)
Definition conn.c:806
conn_udp_t * conn_udp_new(config_t *cfg, int family)
Definition conn.c:234
void conn_release(conn_t *conn)
Definition conn.c:147
struct conn_fifo_queue_s conn_fifo_queue_t
void conn_udp_release(conn_udp_t *conn_udp)
Definition conn.c:120
conn_t * conn_fifo_dequeue_write(conn_fifo_queue_t *queue)
Definition conn.c:680
enum listener_start_error_e listener_start_error_t
void conn_tcp_release(conn_tcp_t *conn_tcp)
Definition conn.c:105
conn_t * conn_fifo_dequeue_read(conn_fifo_queue_t *queue)
Definition conn.c:597
void conn_fifo_enqueue_gen(conn_fifo_queue_t *queue, conn_t *conn)
Definition conn.c:619
@ TCP_CONN_ST_WAIT_FOR_WRITE
Definition conn.h:116
@ TCP_CONN_ST_CLOSED_FOR_READ
Definition conn.h:121
@ TCP_CONN_ST_READ_ERR
Definition conn.h:126
@ TCP_CONN_ST_CLOSED_FOR_WRITE
Definition conn.h:129
@ TCP_CONN_ST_WAIT_FOR_QUERY
Definition conn.h:108
@ TCP_CONN_ST_QUERY_SIZE_TOOLARGE
Definition conn.h:137
@ TCP_CONN_ST_WRITE_ERR
Definition conn.h:134
@ LISTENER_ERR_SOCKET_OPT_RCVBUF
Definition conn.h:96
@ LISTENER_ERR_SOCKET_OPT_IPV6_V6ONLY
Definition conn.h:90
@ LISTENER_ERR_SOCKET_OPT_SNDBUF
Definition conn.h:99
@ LISTENER_ERR_SOCKET_OPT_IPV6_RECVPKTINFO
Definition conn.h:93
@ LISTENER_ERR_BIND
Definition conn.h:81
@ LISTENER_ERR_SOCKET
Definition conn.h:72
@ LISTENER_ERR_SOCKET_OPT_REUSEADDR
Definition conn.h:75
@ LISTENER_ERR_SOCKET_OPT_IP_PKTINFO
Definition conn.h:87
@ LISTENER_ERR_SOCKET_OPT_REUSEPORT
Definition conn.h:78
@ LISTENER_ERR_LISTEN
Definition conn.h:84
conn_t * tail
Definition conn.h:303
conn_t * head
Definition conn.h:300
uint8_t waiting_for_read
Definition conn.h:257
struct conn_s * write_q_handle
Definition conn.h:279
uint8_t proto
Definition conn.h:249
uint8_t waiting_for_write
Definition conn.h:262
uint8_t ip_version
Definition conn.h:252
UT_hash_handle hh
Definition conn.h:238
uint8_t in_read_queue
Definition conn.h:265
struct conn_s * read_q_handle
Definition conn.h:276
uint64_t cid
Definition conn.h:243
uint8_t in_release_queue
Definition conn.h:273
uint8_t lc
Definition conn.h:246
struct conn_s * gen_q_handle
Definition conn.h:282
uint8_t in_write_queue
Definition conn.h:268
int fd
Definition conn.h:285
struct timespec end_time
Definition conn.h:194
size_t read_buffer_size
Definition conn.h:153
unsigned char * read_buffer
Definition conn.h:150
struct timespec start_time
Definition conn.h:186
size_t query_write_index
Definition conn.h:159
size_t queries_size
Definition conn.h:171
struct sockaddr_storage client_ip
Definition conn.h:144
query_t * queries
Definition conn.h:168
size_t tcp_keepalive
Definition conn.h:180
conn_tcp_state_t state
Definition conn.h:183
size_t write_index
Definition conn.h:165
size_t read_buffer_len
Definition conn.h:156
size_t queries_total_count
Definition conn.h:177
struct sockaddr_storage local_ip
Definition conn.h:147
size_t queries_count
Definition conn.h:174
struct timespec timeout
Definition conn.h:191
unsigned int write_vector_count
Definition conn.h:231
struct mmsghdr * read_vector
Definition conn.h:206
unsigned int vector_len
Definition conn.h:203
struct mmsghdr * write_vector
Definition conn.h:217
query_t * queries
Definition conn.h:212
unsigned int write_vector_write_index
Definition conn.h:226
unsigned int read_vector_count
Definition conn.h:209