43 #endif |
43 #endif |
44 |
44 |
45 typedef struct _session_handler SessionHandler; |
45 typedef struct _session_handler SessionHandler; |
46 typedef struct _connection Connection; |
46 typedef struct _connection Connection; |
47 |
47 |
|
48 typedef union ConnectionAddr ConnectionAddr; |
|
49 |
|
50 union ConnectionAddr { |
|
51 struct sockaddr_in address_v4; |
|
52 struct sockaddr_in6 address_v6; |
|
53 }; |
|
54 |
|
55 enum ConnectionAddrType { |
|
56 CONN_ADDR_IPV4 = 0, |
|
57 CONN_ADDR_IPV6 |
|
58 }; |
|
59 |
|
60 typedef enum ConnectionAddrType ConnectionAddrType; |
|
61 |
48 struct _connection { |
62 struct _connection { |
49 int fd; |
63 int fd; |
50 struct sockaddr_in address; |
64 ConnectionAddr address; |
|
65 ConnectionAddrType addr_type; |
51 HttpListener *listener; |
66 HttpListener *listener; |
52 SessionHandler *session_handler; |
67 SessionHandler *session_handler; |
53 SSL *ssl; |
68 SSL *ssl; |
54 WSBool ssl_accepted; |
69 WSBool ssl_accepted; |
55 int ssl_error; |
70 int ssl_error; |