18#ifndef _CODATUNNELD_PRIVATE_H_
19#define _CODATUNNELD_PRIVATE_H_
22#include <sys/socket.h>
27#include <gnutls/gnutls.h>
37 gettimeofday(&tt, 0); \
38 int myid = mapthread(uv_thread_self()); \
39 fprintf(stderr, "[%d] %ld.%06ld %s:%d ", myid, (long)tt.tv_sec, \
40 (long)tt.tv_usec, __FUNCTION__, __LINE__); \
41 fprintf(stderr, __VA_ARGS__); \
50 fprintf(stderr, "%s:%d ", __FUNCTION__, __LINE__); \
51 fprintf(stderr, __VA_ARGS__); \
61static inline int ct_tlog_enabled(
void)
66 en = (getenv(
"CODATUNNEL_TLOG") !=
NULL);
72 if (ct_tlog_enabled()) { \
74 gettimeofday(&tt, 0); \
75 fprintf(stderr, "%ld.%06ld ", (long)tt.tv_sec, (long)tt.tv_usec); \
76 fprintf(stderr, __VA_ARGS__); \
82void codatunneld(
int codatunnel_sockfd,
const char *tcp_bindaddr,
83 const char *udp_bindaddr,
const char *bind_service,
84 int onlytcp,
const char *
sslcertdir) __attribute__((noreturn));
195static inline void free_tcphandle(uv_handle_t *handle)
208 const char *peername);
218ssize_t
eat_uvbytes(gnutls_transport_ptr_t,
void *,
size_t);
219int poll_uvbytes(gnutls_transport_ptr_t gtp,
unsigned int ms);
225void hexdump(
char *desc,
void *addr,
int len);
void initdestarray(uv_loop_t *mainloop)
Definition remotedest.c:60
void printsockaddr(const struct sockaddr_storage *, socklen_t)
dest_t * getdest(const struct sockaddr_storage *, socklen_t)
Definition remotedest.c:121
const char * tcpstatename(enum deststate)
Definition remotedest.c:406
void codatunneld(int codatunnel_sockfd, const char *tcp_bindaddr, const char *udp_bindaddr, const char *bind_service, int onlytcp, const char *sslcertdir) __attribute__((noreturn))
Definition codatunneld.c:2386
void drain_outbound_queues(dest_t *d)
Definition codatunneld.c:294
void outbound_worker_cb(uv_async_t *async)
Definition codatunneld.c:1469
void enq_element(dest_t *, const uv_buf_t *, int)
Definition remotedest.c:235
void resume_read_cb(uv_async_t *async)
Definition codatunneld.c:2021
void hexdump(char *desc, void *addr, int len)
Definition codatunneld.c:2548
void ct_fail_dest_transfers(dest_t *d)
Definition codatunneld.c:1086
void free_dest(dest_t *d)
Definition remotedest.c:197
int mapthread(uv_thread_t)
Definition remotedest.c:384
dest_t * createdest(const struct sockaddr_storage *, socklen_t, const char *peername)
Definition remotedest.c:138
void ct_redrive_cb(uv_async_t *async)
Definition codatunneld.c:1789
ssize_t eat_uvbytes(gnutls_transport_ptr_t, void *, size_t)
Definition remotedest.c:314
deststate
Definition codatunneld.private.h:99
@ TLSHANDSHAKE
Definition codatunneld.private.h:104
@ TCPATTEMPTING
Definition codatunneld.private.h:102
@ TLSERROR
Definition codatunneld.private.h:107
@ TCPACTIVE
Definition codatunneld.private.h:105
@ ALLOCATED
Definition codatunneld.private.h:101
@ FREE
Definition codatunneld.private.h:100
@ TCPCLOSING
Definition codatunneld.private.h:108
int poll_uvbytes(gnutls_transport_ptr_t gtp, unsigned int ms)
Definition remotedest.c:291
#define UVBUFLIMIT
Definition codatunneld.private.h:154
int socklen_t
Definition mariner.cc:73
Definition codatunneld.private.h:113
uv_buf_t b
Definition codatunneld.private.h:114
int numbytes
Definition codatunneld.private.h:115
Definition codatunneld.c:179
Definition codatunneld.private.h:118
uv_async_t resume_read
Definition codatunneld.private.h:188
void * tls_send_queue
Definition codatunneld.private.h:176
uv_mutex_t uvcount_mutex
Definition codatunneld.private.h:157
uv_cond_t uvcount_nonzero
Definition codatunneld.private.h:158
uv_tcp_t * tcphandle
Definition codatunneld.private.h:131
struct minicb_tcp_req * outbound_queue
Definition codatunneld.private.h:179
int read_paused
Definition codatunneld.private.h:187
char certvalidation_failed
Definition codatunneld.private.h:127
char * decrypted_record
Definition codatunneld.private.h:140
uv_async_t wakeup
Definition codatunneld.private.h:178
socklen_t destlen
Definition codatunneld.private.h:120
size_t max_data_payload
Definition codatunneld.private.h:134
int uvcount
Definition codatunneld.private.h:156
uv_mutex_t outbound_mutex
Definition codatunneld.private.h:180
enum deststate state
Definition codatunneld.private.h:123
struct sockaddr_storage destaddr
Definition codatunneld.private.h:119
const char * fqdn
Definition codatunneld.private.h:121
uv_mutex_t tls_receive_record_mutex
Definition codatunneld.private.h:169
enq_data_t enqarray[UVBUFLIMIT]
Definition codatunneld.private.h:155
gnutls_session_t my_tls_session
Definition codatunneld.private.h:133
uv_mutex_t tls_session_mutex
Definition codatunneld.private.h:175
uv_async_t redrive
Definition codatunneld.private.h:192
int uvoffset
Definition codatunneld.private.h:159
uv_mutex_t tls_send_mutex
Definition codatunneld.private.h:170
Definition rpc2.private.h:63
char d
Definition tdb.c:54
const char * sslcertdir
Definition venus.cc:93
#define NULL
Definition voltypes.h:44