OpenVPN
clinat.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#if !defined(CLINAT_H)
25#define CLINAT_H
26
27#include "buffer.h"
28
29#define MAX_CLIENT_NAT 64
30
31#define CN_OUTGOING 0
32#define CN_INCOMING 1
33
35#define CN_SNAT 0
36#define CN_DNAT 1
37 int type;
38 in_addr_t network;
39 in_addr_t netmask;
40 in_addr_t foreign_network;
41};
42
47
49
51
53
54void print_client_nat_list(const struct client_nat_option_list *list, int msglevel);
55
57 const char *type,
58 const char *network,
59 const char *netmask,
60 const char *foreign_network,
61 int msglevel);
62
63void client_nat_transform(const struct client_nat_option_list *list,
64 struct buffer *ipbuf,
65 const int direction);
66
67#endif /* if !defined(CLINAT_H) */
void print_client_nat_list(const struct client_nat_option_list *list, int msglevel)
Definition clinat.c:52
void client_nat_transform(const struct client_nat_option_list *list, struct buffer *ipbuf, const int direction)
Definition clinat.c:193
#define MAX_CLIENT_NAT
Definition clinat.h:29
void add_client_nat_to_option_list(struct client_nat_option_list *dest, const char *type, const char *network, const char *netmask, const char *foreign_network, int msglevel)
Definition clinat.c:106
struct client_nat_option_list * new_client_nat_list(struct gc_arena *gc)
Definition clinat.c:75
struct client_nat_option_list * clone_client_nat_option_list(const struct client_nat_option_list *src, struct gc_arena *gc)
Definition clinat.c:83
void copy_client_nat_option_list(struct client_nat_option_list *dest, const struct client_nat_option_list *src)
Definition clinat.c:92
Wrapper structure for dynamically allocated memory.
Definition buffer.h:61
Definition clinat.h:34
int type
Definition clinat.h:37
in_addr_t network
Definition clinat.h:38
in_addr_t foreign_network
Definition clinat.h:40
in_addr_t netmask
Definition clinat.h:39
struct client_nat_entry entries[MAX_CLIENT_NAT]
Definition clinat.h:45
Garbage collection arena used to keep track of dynamically allocated memory.
Definition buffer.h:117
struct gc_arena gc
Definition test_ssl.c:155