OpenVPN 3 Core Library
Loading...
Searching...
No Matches
proto_context_options.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
// Helper class to parse certain options needed by ProtoContext.
13
14
#ifndef OPENVPN_SSL_PROTO_CONTEXT_OPTIONS_H
15
#define OPENVPN_SSL_PROTO_CONTEXT_OPTIONS_H
16
17
#include <string>
18
19
#include <
openvpn/common/exception.hpp
>
20
#include <
openvpn/common/options.hpp
>
21
22
namespace
openvpn
{
23
struct
ProtoContextCompressionOptions
:
public
RC
<thread_safe_refcount>
24
{
25
typedef
RCPtr<ProtoContextCompressionOptions>
Ptr
;
26
27
enum
CompressionMode
28
{
29
COMPRESS_NO
,
30
COMPRESS_YES
,
31
COMPRESS_ASYM
32
};
33
34
ProtoContextCompressionOptions
()
35
:
compression_mode
(
COMPRESS_NO
)
36
{
37
}
38
39
bool
is_comp
()
const
40
{
41
return
compression_mode
!=
COMPRESS_NO
;
42
}
43
bool
is_comp_asym
()
const
44
{
45
return
compression_mode
==
COMPRESS_ASYM
;
46
}
47
48
void
parse_compression_mode
(
const
std::string &mode)
49
{
50
if
(mode ==
"no"
)
51
compression_mode
=
COMPRESS_NO
;
52
else
if
(mode ==
"yes"
)
53
compression_mode
=
COMPRESS_YES
;
54
else
if
(mode ==
"asym"
)
55
compression_mode
=
COMPRESS_ASYM
;
56
else
57
OPENVPN_THROW_ARG1
(option_error, ERR_INVALID_OPTION_VAL,
"error parsing compression mode: "
<< mode);
58
}
59
60
CompressionMode
compression_mode
;
61
};
62
}
// namespace openvpn
63
64
#endif
openvpn::RCPtr
The smart pointer class.
Definition
rc.hpp:119
openvpn::RC
Reference count base class for objects tracked by RCPtr. Disallows copying and assignment.
Definition
rc.hpp:912
exception.hpp
OPENVPN_THROW_ARG1
#define OPENVPN_THROW_ARG1(exc, arg, stuff)
Definition
exception.hpp:183
openvpn
Definition
ovpncli.cpp:97
options.hpp
openvpn::ProtoContextCompressionOptions
Definition
proto_context_options.hpp:24
openvpn::ProtoContextCompressionOptions::CompressionMode
CompressionMode
Definition
proto_context_options.hpp:28
openvpn::ProtoContextCompressionOptions::COMPRESS_ASYM
@ COMPRESS_ASYM
Definition
proto_context_options.hpp:31
openvpn::ProtoContextCompressionOptions::COMPRESS_YES
@ COMPRESS_YES
Definition
proto_context_options.hpp:30
openvpn::ProtoContextCompressionOptions::COMPRESS_NO
@ COMPRESS_NO
Definition
proto_context_options.hpp:29
openvpn::ProtoContextCompressionOptions::compression_mode
CompressionMode compression_mode
Definition
proto_context_options.hpp:60
openvpn::ProtoContextCompressionOptions::is_comp_asym
bool is_comp_asym() const
Definition
proto_context_options.hpp:43
openvpn::ProtoContextCompressionOptions::Ptr
RCPtr< ProtoContextCompressionOptions > Ptr
Definition
proto_context_options.hpp:25
openvpn::ProtoContextCompressionOptions::ProtoContextCompressionOptions
ProtoContextCompressionOptions()
Definition
proto_context_options.hpp:34
openvpn::ProtoContextCompressionOptions::is_comp
bool is_comp() const
Definition
proto_context_options.hpp:39
openvpn::ProtoContextCompressionOptions::parse_compression_mode
void parse_compression_mode(const std::string &mode)
Definition
proto_context_options.hpp:48
openvpn
ssl
proto_context_options.hpp
Generated by
1.9.8