OpenVPN
src
openvpn
mtcp.h
Go to the documentation of this file.
1
/*
2
* OpenVPN -- An application to securely tunnel IP networks
3
* over a single TCP/UDP port, with support for SSL/TLS-based
4
* session authentication and key exchange,
5
* packet encryption, packet authentication, and
6
* packet compression.
7
*
8
* Copyright (C) 2002-2024 OpenVPN Inc <sales@openvpn.net>
9
*
10
* This program is free software; you can redistribute it and/or modify
11
* it under the terms of the GNU General Public License version 2
12
* as published by the Free Software Foundation.
13
*
14
* This program is distributed in the hope that it will be useful,
15
* but WITHOUT ANY WARRANTY; without even the implied warranty of
16
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
17
* GNU General Public License for more details.
18
*
19
* You should have received a copy of the GNU General Public License along
20
* with this program; if not, write to the Free Software Foundation, Inc.,
21
* 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
22
*/
23
24
/*
25
* TCP specific code for --mode server
26
*/
27
28
#ifndef MTCP_H
29
#define MTCP_H
30
31
#include "
event.h
"
32
33
/*
34
* Extra state info needed for TCP mode
35
*/
36
struct
multi_tcp
37
{
38
struct
event_set
*
es
;
39
struct
event_set_return
*
esr
;
40
int
n_esr
;
41
int
maxevents
;
42
unsigned
int
tun_rwflags
;
43
#ifdef ENABLE_MANAGEMENT
44
unsigned
int
management_persist_flags
;
45
#endif
46
};
47
48
struct
multi_instance
;
49
struct
context
;
50
51
struct
multi_tcp
*
multi_tcp_init
(
int
maxevents
,
int
*maxclients);
52
53
void
multi_tcp_free
(
struct
multi_tcp
*mtcp);
54
55
void
multi_tcp_dereference_instance
(
struct
multi_tcp
*mtcp,
struct
multi_instance
*mi);
56
57
bool
multi_tcp_instance_specific_init
(
struct
multi_context
*m,
struct
multi_instance
*mi);
58
59
void
multi_tcp_instance_specific_free
(
struct
multi_instance
*mi);
60
61
void
multi_tcp_link_out_deferred
(
struct
multi_context
*m,
struct
multi_instance
*mi);
62
63
64
/**************************************************************************/
71
void
tunnel_server_tcp
(
struct
context
*top);
72
73
74
void
multi_tcp_delete_event
(
struct
multi_tcp
*mtcp,
event_t
event);
75
76
#endif
/* ifndef MTCP_H */
multi_tcp::maxevents
int maxevents
Definition:
mtcp.h:41
multi_instance
Server-mode state structure for one single VPN tunnel.
Definition:
multi.h:101
context
Contains all state information for one tunnel.
Definition:
openvpn.h:476
multi_tcp
Definition:
mtcp.h:36
multi_tcp_instance_specific_init
bool multi_tcp_instance_specific_init(struct multi_context *m, struct multi_instance *mi)
Definition:
mtcp.c:171
tunnel_server_tcp
void tunnel_server_tcp(struct context *top)
Main event loop for OpenVPN in TCP server mode.
Definition:
mtcp.c:789
multi_tcp_link_out_deferred
void multi_tcp_link_out_deferred(struct multi_context *m, struct multi_instance *mi)
multi_tcp::es
struct event_set * es
Definition:
mtcp.h:38
event.h
multi_tcp::n_esr
int n_esr
Definition:
mtcp.h:40
multi_tcp::tun_rwflags
unsigned int tun_rwflags
Definition:
mtcp.h:42
multi_context
Main OpenVPN server state structure.
Definition:
multi.h:155
multi_tcp_init
struct multi_tcp * multi_tcp_init(int maxevents, int *maxclients)
Definition:
mtcp.c:197
multi_tcp_instance_specific_free
void multi_tcp_instance_specific_free(struct multi_instance *mi)
Definition:
mtcp.c:191
event_set
Definition:
event.h:124
event_set_return
Definition:
event.h:118
rw_handle
Definition:
win32.h:79
multi_tcp_free
void multi_tcp_free(struct multi_tcp *mtcp)
Definition:
mtcp.c:225
multi_tcp::management_persist_flags
unsigned int management_persist_flags
Definition:
mtcp.h:44
multi_tcp_dereference_instance
void multi_tcp_dereference_instance(struct multi_tcp *mtcp, struct multi_instance *mi)
Definition:
mtcp.c:236
multi_tcp::esr
struct event_set_return * esr
Definition:
mtcp.h:39
multi_tcp_delete_event
void multi_tcp_delete_event(struct multi_tcp *mtcp, event_t event)
Definition:
mtcp.c:216
Generated by
1.8.17