OpenVPN
include
openvpn-msg.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) 2013-2023 Heiko Hund <heiko.hund@sophos.com>
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
#ifndef OPENVPN_MSG_H_
25
#define OPENVPN_MSG_H_
26
27
typedef
enum
{
28
msg_acknowledgement
,
29
msg_add_address
,
30
msg_del_address
,
31
msg_add_route
,
32
msg_del_route
,
33
msg_add_dns_cfg
,
34
msg_del_dns_cfg
,
35
msg_add_nbt_cfg
,
36
msg_del_nbt_cfg
,
37
msg_flush_neighbors
,
38
msg_add_block_dns
,
39
msg_del_block_dns
,
40
msg_register_dns
,
41
msg_enable_dhcp
,
42
msg_register_ring_buffers
,
43
msg_set_mtu
,
44
msg_add_wins_cfg
,
45
msg_del_wins_cfg
46
}
message_type_t
;
47
48
typedef
struct
{
49
message_type_t
type
;
50
size_t
size
;
51
int
message_id
;
52
}
message_header_t
;
53
54
typedef
union
{
55
struct
in_addr ipv4;
56
struct
in6_addr ipv6;
57
}
inet_address_t
;
58
59
typedef
struct
{
60
int
index
;
61
char
name[256];
62
}
interface_t
;
63
64
typedef
struct
{
65
message_header_t
header
;
66
short
family
;
67
inet_address_t
address
;
68
int
prefix_len
;
69
interface_t
iface
;
70
}
address_message_t
;
71
72
typedef
struct
{
73
message_header_t
header
;
74
short
family
;
75
inet_address_t
prefix
;
76
int
prefix_len
;
77
inet_address_t
gateway
;
78
interface_t
iface
;
79
int
metric
;
80
}
route_message_t
;
81
82
typedef
struct
{
83
message_header_t
header
;
84
interface_t
iface
;
85
char
domains[512];
86
short
family
;
87
int
addr_len
;
88
inet_address_t
addr[4];
/* support up to 4 dns addresses */
89
}
dns_cfg_message_t
;
90
91
typedef
struct
{
92
message_header_t
header
;
93
interface_t
iface
;
94
int
addr_len
;
95
inet_address_t
addr[4];
/* support up to 4 dns addresses */
96
}
wins_cfg_message_t
;
97
98
typedef
struct
{
99
message_header_t
header
;
100
interface_t
iface
;
101
int
disable_nbt
;
102
int
nbt_type
;
103
char
scope_id[256];
104
struct
in_addr primary_nbns;
105
struct
in_addr secondary_nbns;
106
}
nbt_cfg_message_t
;
107
108
/* TODO: NTP */
109
110
typedef
struct
{
111
message_header_t
header
;
112
short
family
;
113
interface_t
iface
;
114
}
flush_neighbors_message_t
;
115
116
typedef
struct
{
117
message_header_t
header
;
118
int
error_number
;
119
}
ack_message_t
;
120
121
typedef
struct
{
122
message_header_t
header
;
123
interface_t
iface
;
124
}
block_dns_message_t
;
125
126
typedef
struct
{
127
message_header_t
header
;
128
interface_t
iface
;
129
}
enable_dhcp_message_t
;
130
131
typedef
struct
{
132
message_header_t
header
;
133
HANDLE
device
;
134
HANDLE
send_ring_handle
;
135
HANDLE
receive_ring_handle
;
136
HANDLE
send_tail_moved
;
137
HANDLE
receive_tail_moved
;
138
}
register_ring_buffers_message_t
;
139
140
typedef
struct
{
141
message_header_t
header
;
142
interface_t
iface
;
143
short
family
;
144
int
mtu
;
145
}
set_mtu_message_t
;
146
147
#endif
/* ifndef OPENVPN_MSG_H_ */
ack_message_t::header
message_header_t header
Definition:
openvpn-msg.h:117
enable_dhcp_message_t::iface
interface_t iface
Definition:
openvpn-msg.h:128
set_mtu_message_t::mtu
int mtu
Definition:
openvpn-msg.h:144
address_message_t
Definition:
openvpn-msg.h:64
address_message_t::iface
interface_t iface
Definition:
openvpn-msg.h:69
msg_del_dns_cfg
@ msg_del_dns_cfg
Definition:
openvpn-msg.h:34
dns_cfg_message_t::family
short family
Definition:
openvpn-msg.h:86
block_dns_message_t::iface
interface_t iface
Definition:
openvpn-msg.h:123
msg_add_dns_cfg
@ msg_add_dns_cfg
Definition:
openvpn-msg.h:33
route_message_t::metric
int metric
Definition:
openvpn-msg.h:79
msg_register_dns
@ msg_register_dns
Definition:
openvpn-msg.h:40
dns_cfg_message_t
Definition:
openvpn-msg.h:82
dns_cfg_message_t::iface
interface_t iface
Definition:
openvpn-msg.h:84
set_mtu_message_t::iface
interface_t iface
Definition:
openvpn-msg.h:142
nbt_cfg_message_t::iface
interface_t iface
Definition:
openvpn-msg.h:100
enable_dhcp_message_t
Definition:
openvpn-msg.h:126
route_message_t::iface
interface_t iface
Definition:
openvpn-msg.h:78
enable_dhcp_message_t::header
message_header_t header
Definition:
openvpn-msg.h:127
register_ring_buffers_message_t::send_tail_moved
HANDLE send_tail_moved
Definition:
openvpn-msg.h:136
ack_message_t
Definition:
openvpn-msg.h:116
register_ring_buffers_message_t::header
message_header_t header
Definition:
openvpn-msg.h:132
message_header_t
Definition:
openvpn-msg.h:48
msg_set_mtu
@ msg_set_mtu
Definition:
openvpn-msg.h:43
msg_register_ring_buffers
@ msg_register_ring_buffers
Definition:
openvpn-msg.h:42
register_ring_buffers_message_t
Definition:
openvpn-msg.h:131
msg_add_route
@ msg_add_route
Definition:
openvpn-msg.h:31
set_mtu_message_t::family
short family
Definition:
openvpn-msg.h:143
msg_enable_dhcp
@ msg_enable_dhcp
Definition:
openvpn-msg.h:41
wins_cfg_message_t::addr_len
int addr_len
Definition:
openvpn-msg.h:94
interface_t::index
int index
Definition:
openvpn-msg.h:60
nbt_cfg_message_t::header
message_header_t header
Definition:
openvpn-msg.h:99
route_message_t
Definition:
openvpn-msg.h:72
route_message_t::prefix_len
int prefix_len
Definition:
openvpn-msg.h:76
block_dns_message_t::header
message_header_t header
Definition:
openvpn-msg.h:122
address_message_t::prefix_len
int prefix_len
Definition:
openvpn-msg.h:68
register_ring_buffers_message_t::receive_ring_handle
HANDLE receive_ring_handle
Definition:
openvpn-msg.h:135
ack_message_t::error_number
int error_number
Definition:
openvpn-msg.h:118
nbt_cfg_message_t::nbt_type
int nbt_type
Definition:
openvpn-msg.h:102
msg_add_block_dns
@ msg_add_block_dns
Definition:
openvpn-msg.h:38
address_message_t::address
inet_address_t address
Definition:
openvpn-msg.h:67
register_ring_buffers_message_t::device
HANDLE device
Definition:
openvpn-msg.h:133
wins_cfg_message_t::iface
interface_t iface
Definition:
openvpn-msg.h:93
msg_del_route
@ msg_del_route
Definition:
openvpn-msg.h:32
route_message_t::header
message_header_t header
Definition:
openvpn-msg.h:73
message_header_t::type
message_type_t type
Definition:
openvpn-msg.h:49
msg_add_nbt_cfg
@ msg_add_nbt_cfg
Definition:
openvpn-msg.h:35
register_ring_buffers_message_t::send_ring_handle
HANDLE send_ring_handle
Definition:
openvpn-msg.h:134
wins_cfg_message_t::header
message_header_t header
Definition:
openvpn-msg.h:92
route_message_t::prefix
inet_address_t prefix
Definition:
openvpn-msg.h:75
msg_add_wins_cfg
@ msg_add_wins_cfg
Definition:
openvpn-msg.h:44
block_dns_message_t
Definition:
openvpn-msg.h:121
route_message_t::family
short family
Definition:
openvpn-msg.h:74
register_ring_buffers_message_t::receive_tail_moved
HANDLE receive_tail_moved
Definition:
openvpn-msg.h:137
flush_neighbors_message_t::header
message_header_t header
Definition:
openvpn-msg.h:111
flush_neighbors_message_t
Definition:
openvpn-msg.h:110
message_header_t::message_id
int message_id
Definition:
openvpn-msg.h:51
dns_cfg_message_t::addr_len
int addr_len
Definition:
openvpn-msg.h:87
msg_del_nbt_cfg
@ msg_del_nbt_cfg
Definition:
openvpn-msg.h:36
set_mtu_message_t
Definition:
openvpn-msg.h:140
flush_neighbors_message_t::iface
interface_t iface
Definition:
openvpn-msg.h:113
address_message_t::header
message_header_t header
Definition:
openvpn-msg.h:65
msg_acknowledgement
@ msg_acknowledgement
Definition:
openvpn-msg.h:28
message_type_t
message_type_t
Definition:
openvpn-msg.h:27
msg_del_block_dns
@ msg_del_block_dns
Definition:
openvpn-msg.h:39
flush_neighbors_message_t::family
short family
Definition:
openvpn-msg.h:112
msg_del_address
@ msg_del_address
Definition:
openvpn-msg.h:30
msg_del_wins_cfg
@ msg_del_wins_cfg
Definition:
openvpn-msg.h:45
set_mtu_message_t::header
message_header_t header
Definition:
openvpn-msg.h:141
interface_t
Definition:
openvpn-msg.h:59
msg_add_address
@ msg_add_address
Definition:
openvpn-msg.h:29
nbt_cfg_message_t
Definition:
openvpn-msg.h:98
route_message_t::gateway
inet_address_t gateway
Definition:
openvpn-msg.h:77
message_header_t::size
size_t size
Definition:
openvpn-msg.h:50
nbt_cfg_message_t::disable_nbt
int disable_nbt
Definition:
openvpn-msg.h:101
wins_cfg_message_t
Definition:
openvpn-msg.h:91
msg_flush_neighbors
@ msg_flush_neighbors
Definition:
openvpn-msg.h:37
dns_cfg_message_t::header
message_header_t header
Definition:
openvpn-msg.h:83
address_message_t::family
short family
Definition:
openvpn-msg.h:66
inet_address_t
Definition:
openvpn-msg.h:54
Generated by
1.8.17