OpenVPN
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-2021 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 {
45 
46 typedef struct {
48  size_t size;
51 
52 typedef union {
53  struct in_addr ipv4;
54  struct in6_addr ipv6;
56 
57 typedef struct {
58  int index;
59  char name[256];
60 } interface_t;
61 
62 typedef struct {
64  short family;
69 
70 typedef struct {
72  short family;
77  int metric;
79 
80 typedef struct {
83  char domains[512];
84  short family;
85  int addr_len;
86  inet_address_t addr[4]; /* support up to 4 dns addresses */
88 
89 typedef struct {
93  int nbt_type;
94  char scope_id[256];
95  struct in_addr primary_nbns;
96  struct in_addr secondary_nbns;
98 
99 /* TODO: NTP */
100 
101 typedef struct {
103  short family;
106 
107 typedef struct {
110 } ack_message_t;
111 
112 typedef struct {
116 
117 typedef struct {
121 
122 typedef struct {
124  HANDLE device;
130 
131 typedef struct {
134  short family;
135  int mtu;
137 
138 #endif /* ifndef OPENVPN_MSG_H_ */
message_header_t header
Definition: openvpn-msg.h:81
message_header_t header
Definition: openvpn-msg.h:132
inet_address_t prefix
Definition: openvpn-msg.h:73
inet_address_t address
Definition: openvpn-msg.h:65
interface_t iface
Definition: openvpn-msg.h:133
message_header_t header
Definition: openvpn-msg.h:71
inet_address_t gateway
Definition: openvpn-msg.h:75
message_type_t type
Definition: openvpn-msg.h:47
message_header_t header
Definition: openvpn-msg.h:90
message_header_t header
Definition: openvpn-msg.h:108
interface_t iface
Definition: openvpn-msg.h:76
message_type_t
Definition: openvpn-msg.h:27
message_header_t header
Definition: openvpn-msg.h:118
interface_t iface
Definition: openvpn-msg.h:82
message_header_t header
Definition: openvpn-msg.h:63
message_header_t header
Definition: openvpn-msg.h:102
interface_t iface
Definition: openvpn-msg.h:91
interface_t iface
Definition: openvpn-msg.h:67
message_header_t header
Definition: openvpn-msg.h:113
interface_t iface
Definition: openvpn-msg.h:114