OpenVPN
src
openvpn
pf-inline.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-2018 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(ENABLE_PF) && !defined(PF_INLINE_H)
25
#define PF_INLINE_H
26
27
/*
28
* Inline functions
29
*/
30
31
#define PCT_SRC 1
32
#define PCT_DEST 2
33
static
inline
bool
34
pf_c2c_test(
const
struct
context
*src,
const
struct
context
*
dest
,
const
char
*prefix)
35
{
36
bool
pf_cn_test(
struct
pf_set *pfs,
const
struct
tls_multi
*tm,
const
int
type,
const
char
*prefix);
37
38
return
(!src->
c2
.pf.enabled || pf_cn_test(src->
c2
.pf.pfs, dest->
c2
.
tls_multi
, PCT_DEST, prefix))
39
&& (!dest->
c2
.pf.enabled || pf_cn_test(dest->
c2
.pf.pfs, src->
c2
.
tls_multi
, PCT_SRC, prefix));
40
}
41
42
static
inline
bool
43
pf_addr_test(
const
struct
context
*src,
const
struct
mroute_addr
*dest,
const
char
*prefix)
44
{
45
bool
pf_addr_test_dowork(
const
struct
context
*src,
const
struct
mroute_addr
*dest,
const
char
*prefix);
46
47
if
(src->
c2
.pf.enabled)
48
{
49
return
pf_addr_test_dowork(src, dest, prefix);
50
}
51
else
52
{
53
return
true
;
54
}
55
}
56
57
static
inline
bool
58
pf_kill_test(
const
struct
pf_set *pfs)
59
{
60
return
pfs->kill;
61
}
62
63
#endif
/* if defined(ENABLE_PF) && !defined(PF_INLINE_H) */
context
Contains all state information for one tunnel.
Definition:
openvpn.h:498
tls_multi
Security parameter state for a single VPN tunnel.
Definition:
ssl_common.h:494
context::c2
struct context_2 c2
Level 2 context.
Definition:
openvpn.h:537
mroute_addr
Definition:
mroute.h:77
dest
char * dest
Definition:
compat-lz4.h:431
context_2::tls_multi
struct tls_multi * tls_multi
TLS state structure for this VPN tunnel.
Definition:
openvpn.h:334
Generated by
1.8.13