18#ifndef _CODATUNNEL_PRIVATE_H_
19#define _CODATUNNEL_PRIVATE_H_
22#include <sys/socket.h>
27#include <gnutls/gnutls.h>
35 gettimeofday(&tt, 0); \
36 int myid = mapthread(uv_thread_self()); \
37 fprintf(stderr, "[%d] %ld:%ld %s:%d ", myid, tt.tv_sec, tt.tv_usec, \
38 __FUNCTION__, __LINE__); \
39 fprintf(stderr, __VA_ARGS__); \
48 fprintf(stderr, "%s:%d ", __FUNCTION__, __LINE__); \
49 fprintf(stderr, __VA_ARGS__); \
54void codatunneld(
int codatunnel_sockfd,
const char *tcp_bindaddr,
55 const char *udp_bindaddr,
const char *bind_service,
56 int onlytcp,
const char *
sslcertdir) __attribute__((noreturn));
75#define MAXRECEIVE (4500 + sizeof(ctp_t))
161static inline void free_tcphandle(uv_handle_t *handle)
172 const char *peername);
182ssize_t
eat_uvbytes(gnutls_transport_ptr_t,
void *,
size_t);
183int poll_uvbytes(gnutls_transport_ptr_t gtp,
unsigned int ms);
unsigned int uint32_t
Definition: coda.h:105
void printsockaddr(const struct sockaddr_storage *, socklen_t)
dest_t * getdest(const struct sockaddr_storage *, socklen_t)
Definition: remotedest.c:115
const char * tcpstatename(enum deststate)
Definition: remotedest.c:362
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:1257
void drain_outbound_queues(dest_t *d)
Definition: codatunneld.c:199
void outbound_worker_cb(uv_async_t *async)
Definition: codatunneld.c:550
void enq_element(dest_t *, const uv_buf_t *, int)
Definition: remotedest.c:226
void hexdump(char *desc, void *addr, int len)
Definition: codatunneld.c:1410
void free_dest(dest_t *d)
Definition: remotedest.c:191
int mapthread(uv_thread_t)
Definition: remotedest.c:340
dest_t * createdest(const struct sockaddr_storage *, socklen_t, const char *peername)
Definition: remotedest.c:132
ssize_t eat_uvbytes(gnutls_transport_ptr_t, void *, size_t)
Definition: remotedest.c:281
deststate
Definition: codatunnel.private.h:87
@ TLSHANDSHAKE
Definition: codatunnel.private.h:92
@ TCPATTEMPTING
Definition: codatunnel.private.h:90
@ TLSERROR
Definition: codatunnel.private.h:95
@ TCPACTIVE
Definition: codatunnel.private.h:93
@ ALLOCATED
Definition: codatunnel.private.h:89
@ FREE
Definition: codatunnel.private.h:88
@ TCPCLOSING
Definition: codatunnel.private.h:96
struct codatunnel_packet ctp_t
int poll_uvbytes(gnutls_transport_ptr_t gtp, unsigned int ms)
Definition: remotedest.c:258
#define UVBUFLIMIT
Definition: codatunnel.private.h:137
int socklen_t
Definition: mariner.cc:73
desc
Definition: gensrvstats.py:254
Definition: codatunnel.private.h:65
struct sockaddr_storage addr
Definition: codatunnel.private.h:72
char magic[8]
Definition: codatunnel.private.h:66
uint32_t is_init0
Definition: codatunnel.private.h:69
uint32_t msglen
Definition: codatunnel.private.h:70
uint32_t addrlen
Definition: codatunnel.private.h:71
uint32_t is_retry
Definition: codatunnel.private.h:67
Definition: codatunnel.private.h:101
uv_buf_t b
Definition: codatunnel.private.h:102
int numbytes
Definition: codatunnel.private.h:103
Definition: codatunneld.c:95
Definition: codatunnel.private.h:106
void * tls_send_queue
Definition: codatunnel.private.h:154
uv_mutex_t uvcount_mutex
Definition: codatunnel.private.h:140
uv_cond_t uvcount_nonzero
Definition: codatunnel.private.h:141
uv_tcp_t * tcphandle
Definition: codatunnel.private.h:119
struct minicb_tcp_req * outbound_queue
Definition: codatunnel.private.h:157
char certvalidation_failed
Definition: codatunnel.private.h:115
char * decrypted_record
Definition: codatunnel.private.h:123
uv_async_t wakeup
Definition: codatunnel.private.h:156
socklen_t destlen
Definition: codatunnel.private.h:108
int uvcount
Definition: codatunnel.private.h:139
uv_mutex_t outbound_mutex
Definition: codatunnel.private.h:158
enum deststate state
Definition: codatunnel.private.h:111
struct sockaddr_storage destaddr
Definition: codatunnel.private.h:107
const char * fqdn
Definition: codatunnel.private.h:109
uv_mutex_t tls_receive_record_mutex
Definition: codatunnel.private.h:152
enq_data_t enqarray[UVBUFLIMIT]
Definition: codatunnel.private.h:138
gnutls_session_t my_tls_session
Definition: codatunnel.private.h:121
int uvoffset
Definition: codatunnel.private.h:142
uv_mutex_t tls_send_mutex
Definition: codatunnel.private.h:153
Definition: rpc2.private.h:63
char d
Definition: tdb.c:54
const char * sslcertdir
Definition: venus.cc:93