File: conn.h

package info (click to toggle)
pen 0.34.1-1
  • links: PTS, VCS
  • area: main
  • in suites: buster
  • size: 844 kB
  • ctags: 686
  • sloc: ansic: 6,364; sh: 1,552; makefile: 38
file content (59 lines) | stat: -rw-r--r-- 1,768 bytes parent folder | download | duplicates (2)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
#include <time.h>
#ifdef HAVE_LIBSSL
#include <openssl/ssl.h>
#include <openssl/err.h>
#endif

#include <time.h>

#define CONNECTIONS_MAX	500	/* max simultaneous connections */

/* Connection states, as used in struct conn */
#define CS_UNUSED	(0)	/* not connected, unused slot */
#define CS_IN_PROGRESS	(1)	/* connection in progress */
#define CS_CONNECTED	(2)	/* successfully connected */
#define CS_CLOSED_UP	(4)	/* we read eof from upfd */
#define CS_CLOSED_DOWN	(8)	/* we read eof from downfd */
#define CS_CLOSED	(CS_CLOSED_UP | CS_CLOSED_DOWN)
#define CS_HALFDEAD	(16)	/* has not seen recent traffic */
#define CS_WAIT_PEEK	(32)	/* waiting for client's first frame */

typedef struct {
	int state;		/* as per above */
	time_t t;		/* time of connection attempt */
	int downfd, upfd;
	unsigned char *downb, *downbptr, *upb, *upbptr;
	int downn, upn;		/* pending bytes */
	unsigned long ssx, srx;	/* server total sent, received */
	unsigned long csx, crx;	/* client total sent, received */
	int client;		/* client index */
	int initial;		/* first server tried */
	int server;		/* server index */
	int pend;		/* node in pending_list */
#ifdef HAVE_LIBSSL
	SSL *ssl;
	time_t reneg;		/* last time client requested renegotiation */
#endif
} connection;

extern connection *conns;
extern int idle_timeout;
extern int pending_list;
extern int pending_queue;
extern int pending_max;
extern int connections_max;
extern int connections_used;
extern int connections_last;
extern int tracking_time;

extern void fd2conn_set(int, int);
extern int fd2conn_get(int);
extern int closing_time(int);
#ifdef HAVE_LIBSSL
int store_conn(int, SSL *, int);
#else
int store_conn(int, int);
#endif
extern int idler(int);
extern void close_conn(int);
extern void expand_conntable(size_t);