OpenVPN 3 Core Library
Loading...
Searching...
No Matches
clamp.hpp
Go to the documentation of this file.
1
// OpenVPN -- An application to securely tunnel IP networks
2
// over a single port, with support for SSL/TLS-based
3
// session authentication and key exchange,
4
// packet encryption, packet authentication, and
5
// packet compression.
6
//
7
// Copyright (C) 2012- OpenVPN Inc.
8
//
9
// SPDX-License-Identifier: MPL-2.0 OR AGPL-3.0-only WITH openvpn3-openssl-exception
10
//
11
12
#pragma once
13
14
// loose emulation of std::clamp for pre-C++17
15
16
namespace
openvpn
{
17
18
template
<
typename
T>
19
T
clamp
(T value, T low, T high)
20
{
21
if
(value < low)
22
return
low;
23
else
if
(value > high)
24
return
high;
25
else
26
return
value;
27
}
28
29
// like clamp() above, but only clamp non-zero values
30
template
<
typename
T>
31
T
clamp_nonzero
(T value, T low, T high)
32
{
33
if
(value)
34
return
clamp
(value, low, high);
35
else
36
return
value;
37
}
38
}
// namespace openvpn
openvpn
Support deferred server-side state creation when client connects.
Definition
ovpncli.cpp:95
openvpn::clamp_nonzero
T clamp_nonzero(T value, T low, T high)
Definition
clamp.hpp:31
openvpn::clamp
T clamp(T value, T low, T high)
Definition
clamp.hpp:19
openvpn
common
clamp.hpp
Generated by
1.9.8