Electroneum
Toggle main menu visibility
Loading...
Searching...
No Matches
rpc_args.h
Go to the documentation of this file.
1
// Copyrights(c) 2017-2021, The Electroneum Project
2
// Copyrights(c) 2014-2019, The Monero Project
3
//
4
// All rights reserved.
5
//
6
// Redistribution and use in source and binary forms, with or without modification, are
7
// permitted provided that the following conditions are met:
8
//
9
// 1. Redistributions of source code must retain the above copyright notice, this list of
10
// conditions and the following disclaimer.
11
//
12
// 2. Redistributions in binary form must reproduce the above copyright notice, this list
13
// of conditions and the following disclaimer in the documentation and/or other
14
// materials provided with the distribution.
15
//
16
// 3. Neither the name of the copyright holder nor the names of its contributors may be
17
// used to endorse or promote products derived from this software without specific
18
// prior written permission.
19
//
20
// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY
21
// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
22
// MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL
23
// THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
24
// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
25
// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
26
// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
27
// STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF
28
// THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
29
//
30
#pragma once
31
32
#include <boost/optional/optional.hpp>
33
#include <boost/program_options/options_description.hpp>
34
#include <boost/program_options/variables_map.hpp>
35
#include <string>
36
37
#include "
common/command_line.h
"
38
#include "
common/password.h
"
39
#include "
net/net_ssl.h
"
40
41
namespace
cryptonote
42
{
44
struct
rpc_args
45
{
46
// non-static construction prevents initialization order issues
47
struct
descriptors
48
{
49
descriptors
();
50
descriptors
(
const
descriptors
&) =
delete
;
51
descriptors
(
descriptors
&&) =
delete
;
52
descriptors
&
operator=
(
const
descriptors
&) =
delete
;
53
descriptors
&
operator=
(
descriptors
&&) =
delete
;
54
55
const
command_line::arg_descriptor<std::string>
rpc_bind_ip
;
56
const
command_line::arg_descriptor<std::string>
rpc_login
;
57
const
command_line::arg_descriptor<bool>
confirm_external_bind
;
58
const
command_line::arg_descriptor<std::string>
rpc_access_control_origins
;
59
const
command_line::arg_descriptor<std::string>
rpc_ssl
;
60
const
command_line::arg_descriptor<std::string>
rpc_ssl_private_key
;
61
const
command_line::arg_descriptor<std::string>
rpc_ssl_certificate
;
62
const
command_line::arg_descriptor<std::string>
rpc_ssl_ca_certificates
;
63
const
command_line::arg_descriptor<std::vector<std::string>
>
rpc_ssl_allowed_fingerprints
;
64
const
command_line::arg_descriptor<bool>
rpc_ssl_allow_chained
;
65
const
command_line::arg_descriptor<bool>
rpc_ssl_allow_any_cert
;
66
};
67
68
// `allow_any_cert` bool toggles `--rpc-ssl-allow-any-cert` configuration
69
70
static
const
char
*
tr
(
const
char
* str);
71
static
void
init_options
(boost::program_options::options_description& desc,
const
bool
any_cert_option =
false
);
72
74
static
boost::optional<rpc_args>
process
(
const
boost::program_options::variables_map& vm,
const
bool
any_cert_option =
false
);
75
77
static
boost::optional<epee::net_utils::ssl_options_t>
process_ssl
(
const
boost::program_options::variables_map& vm,
const
bool
any_cert_option =
false
);
78
79
std::string
bind_ip
;
80
std::vector<std::string>
access_control_origins
;
81
boost::optional<tools::login>
login
;
// currently `boost::none` if unspecified by user
82
epee::net_utils::ssl_options_t
ssl_options
=
epee::net_utils::ssl_support_t::e_ssl_support_enabled
;
83
};
84
}
epee::net_utils::ssl_options_t
Definition
net_ssl.h:74
command_line.h
tr
#define tr(x)
Definition
common_defines.h:4
cryptonote
Holds cryptonote related classes and helpers.
Definition
ban.cpp:40
epee::net_utils::ssl_support_t::e_ssl_support_enabled
@ e_ssl_support_enabled
Definition
net_ssl.h:48
net_ssl.h
password.h
command_line::arg_descriptor
Definition
command_line.h:54
cryptonote::rpc_args::descriptors::rpc_ssl_allow_any_cert
const command_line::arg_descriptor< bool > rpc_ssl_allow_any_cert
Definition
rpc_args.h:65
cryptonote::rpc_args::descriptors::rpc_ssl_private_key
const command_line::arg_descriptor< std::string > rpc_ssl_private_key
Definition
rpc_args.h:60
cryptonote::rpc_args::descriptors::operator=
descriptors & operator=(descriptors &&)=delete
cryptonote::rpc_args::descriptors::rpc_ssl_allow_chained
const command_line::arg_descriptor< bool > rpc_ssl_allow_chained
Definition
rpc_args.h:64
cryptonote::rpc_args::descriptors::descriptors
descriptors(const descriptors &)=delete
cryptonote::rpc_args::descriptors::rpc_access_control_origins
const command_line::arg_descriptor< std::string > rpc_access_control_origins
Definition
rpc_args.h:58
cryptonote::rpc_args::descriptors::rpc_ssl_certificate
const command_line::arg_descriptor< std::string > rpc_ssl_certificate
Definition
rpc_args.h:61
cryptonote::rpc_args::descriptors::rpc_login
const command_line::arg_descriptor< std::string > rpc_login
Definition
rpc_args.h:56
cryptonote::rpc_args::descriptors::rpc_ssl
const command_line::arg_descriptor< std::string > rpc_ssl
Definition
rpc_args.h:59
cryptonote::rpc_args::descriptors::rpc_ssl_ca_certificates
const command_line::arg_descriptor< std::string > rpc_ssl_ca_certificates
Definition
rpc_args.h:62
cryptonote::rpc_args::descriptors::rpc_bind_ip
const command_line::arg_descriptor< std::string > rpc_bind_ip
Definition
rpc_args.h:55
cryptonote::rpc_args::descriptors::confirm_external_bind
const command_line::arg_descriptor< bool > confirm_external_bind
Definition
rpc_args.h:57
cryptonote::rpc_args::descriptors::descriptors
descriptors(descriptors &&)=delete
cryptonote::rpc_args::descriptors::operator=
descriptors & operator=(const descriptors &)=delete
cryptonote::rpc_args::descriptors::rpc_ssl_allowed_fingerprints
const command_line::arg_descriptor< std::vector< std::string > > rpc_ssl_allowed_fingerprints
Definition
rpc_args.h:63
cryptonote::rpc_args::descriptors::descriptors
descriptors()
Definition
rpc_args.cpp:92
cryptonote::rpc_args
Processes command line arguments related to server-side RPC.
Definition
rpc_args.h:45
cryptonote::rpc_args::ssl_options
epee::net_utils::ssl_options_t ssl_options
Definition
rpc_args.h:82
cryptonote::rpc_args::access_control_origins
std::vector< std::string > access_control_origins
Definition
rpc_args.h:80
cryptonote::rpc_args::process
static boost::optional< rpc_args > process(const boost::program_options::variables_map &vm, const bool any_cert_option=false)
Definition
rpc_args.cpp:125
cryptonote::rpc_args::login
boost::optional< tools::login > login
Definition
rpc_args.h:81
cryptonote::rpc_args::process_ssl
static boost::optional< epee::net_utils::ssl_options_t > process_ssl(const boost::program_options::variables_map &vm, const bool any_cert_option=false)
Definition
rpc_args.cpp:197
cryptonote::rpc_args::bind_ip
std::string bind_ip
Definition
rpc_args.h:79
cryptonote::rpc_args::init_options
static void init_options(boost::program_options::options_description &desc, const bool any_cert_option=false)
Definition
rpc_args.cpp:108
src
rpc
rpc_args.h
Generated on
for Electroneum by
1.17.0