SNode.C
Loading...
Searching...
No Matches
ConfigTls.cpp
Go to the documentation of this file.
1/*
2 * SNode.C - A Slim Toolkit for Network Communication
3 * Copyright (C) Volker Christian <me@vchrist.at>
4 * 2020, 2021, 2022, 2023, 2024, 2025, 2026
5 *
6 * This program is free software: you can redistribute it and/or modify
7 * it under the terms of the GNU Lesser General Public License as published
8 * by the Free Software Foundation, either version 3 of the License, or
9 * (at your option) any later version.
10 *
11 * This program is distributed in the hope that it will be useful,
12 * but WITHOUT ANY WARRANTY; without even the implied warranty of
13 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14 * GNU Lesser General Public License for more details.
15 *
16 * You should have received a copy of the GNU Lesser General Public License
17 * along with this program. If not, see <http://www.gnu.org/licenses/>.
18 */
19
20/*
21 * MIT License
22 *
23 * Permission is hereby granted, free of charge, to any person obtaining a copy
24 * of this software and associated documentation files (the "Software"), to deal
25 * in the Software without restriction, including without limitation the rights
26 * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
27 * copies of the Software, and to permit persons to whom the Software is
28 * furnished to do so, subject to the following conditions:
29 *
30 * The above copyright notice and this permission notice shall be included in
31 * all copies or substantial portions of the Software.
32 *
33 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
34 * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
35 * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
36 * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
37 * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
38 * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
39 * THE SOFTWARE.
40 */
41
42#include "net/config/ConfigTls.h"
43
44#ifndef DOXYGEN_SHOULD_SKIP_THIS
45
46#endif /* DOXYGEN_SHOULD_SKIP_THIS */
47
48namespace net::config {
49
51 }
52
53 ConfigTls& ConfigTls::setCert(const std::string& cert) {
55
56 return *this;
57 }
58
59 std::string ConfigTls::getCert() const {
60 return certOpt->as<std::string>();
61 }
62
63 ConfigTls& ConfigTls::setCertKey(const std::string& certKey) {
65
66 return *this;
67 }
68
69 std::string ConfigTls::getCertKey() const {
70 return certKeyOpt->as<std::string>();
71 }
72
73 ConfigTls& ConfigTls::setCertKeyPassword(const std::string& certKeyPassword) {
75
76 return *this;
77 }
78
79 std::string ConfigTls::getCertKeyPassword() const {
80 return certKeyPasswordOpt->as<std::string>();
81 }
82
83 ConfigTls& ConfigTls::setCaCert(const std::string& caCert) {
85
86 return *this;
87 }
88
89 std::string ConfigTls::getCaCert() const {
90 return caCertOpt->as<std::string>();
91 }
92
93 ConfigTls& ConfigTls::setCaCertDir(const std::string& caCertDir) {
95
96 return *this;
97 }
98
99 std::string ConfigTls::getCaCertDir() const {
100 return caCertDirOpt->as<std::string>();
101 }
102
104 setDefaultValue(caCertUseDefaultDirOpt, set ? "true" : "false");
105
106 return *this;
107 }
108
110 return caCertUseDefaultDirOpt->as<bool>();
111 }
112
114 setDefaultValue(caCertAcceptUnknownOpt, set ? "true" : "false");
115
116 return *this;
117 }
118
120 return caCertAcceptUnknownOpt->as<bool>();
121 }
122
123 ConfigTls& ConfigTls::setCipherList(const std::string& cipherList) {
125
126 return *this;
127 }
128
129 std::string ConfigTls::getCipherList() const {
130 return cipherListOpt->as<std::string>();
131 }
132
133 ConfigTls& ConfigTls::setSslOptions(ssl_option_t sslOptions) {
135
136 return *this;
137 }
138
139 ssl_option_t ConfigTls::getSslOptions() const {
140 return sslOptionsOpt->as<ssl_option_t>();
141 }
142
143 ConfigTls& ConfigTls::setNoCloseNotifyIsEOF(bool noCloseNotifyIsEOF) {
144 this->noCloseNotifyIsEOFOpt = noCloseNotifyIsEOF;
145
146 return *this;
147 }
148
151 }
152
153 ConfigTls& ConfigTls::setInitTimeout(const utils::Timeval& newInitTimeout) {
155
156 return *this;
157 }
158
160 return initTimeoutOpt->as<utils::Timeval>();
161 }
162
163 ConfigTls& ConfigTls::setShutdownTimeout(const utils::Timeval& newShutdownTimeout) {
164 setDefaultValue(shutdownTimeoutOpt, newShutdownTimeout);
165
166 return *this;
167 }
168
170 return shutdownTimeoutOpt //
171 ->as<utils::Timeval>();
172 }
173
176
177} // namespace net::config
ConfigTls & setCaCert(const std::string &caCert)
Definition ConfigTls.cpp:83
CLI::Option * caCertUseDefaultDirOpt
Definition ConfigTls.h:116
CLI::Option * certOpt
Definition ConfigTls.h:111
static float tlsInitTimeout
Definition ConfigTls.h:124
CLI::Option * shutdownTimeoutOpt
Definition ConfigTls.h:121
CLI::Option * caCertDirOpt
Definition ConfigTls.h:115
CLI::Option * caCertAcceptUnknownOpt
Definition ConfigTls.h:117
utils::Timeval getShutdownTimeout() const
CLI::Option * caCertOpt
Definition ConfigTls.h:114
std::string getCaCertDir() const
Definition ConfigTls.cpp:99
CLI::Option * certKeyOpt
Definition ConfigTls.h:112
bool getNoCloseNotifyIsEOF() const
ConfigTls & setCert(const std::string &cert)
Definition ConfigTls.cpp:53
static float tlsShutdownTimeout
Definition ConfigTls.h:125
ConfigTls & setCaCertUseDefaultDir(bool set=true)
std::string getCaCert() const
Definition ConfigTls.cpp:89
ConfigTls & setCertKey(const std::string &certKey)
Definition ConfigTls.cpp:63
ConfigTls & setInitTimeout(const utils::Timeval &newInitTimeout)
CLI::Option * initTimeoutOpt
Definition ConfigTls.h:120
CLI::Option * sslOptionsOpt
Definition ConfigTls.h:119
std::string getCipherList() const
ssl_option_t getSslOptions() const
bool getCaCertAcceptUnknown() const
bool getCaCertUseDefaultDir() const
ConfigTls & setSslOptions(ssl_option_t sslOptions)
std::string getCertKey() const
Definition ConfigTls.cpp:69
ConfigTls & setCaCertAcceptUnknown(bool set=true)
CLI::Option * certKeyPasswordOpt
Definition ConfigTls.h:113
ConfigTls & setNoCloseNotifyIsEOF(bool noCloseNotifyIsEOF=true)
ConfigTls & setCipherList(const std::string &cipherList)
ConfigTls & setCaCertDir(const std::string &caCertDir)
Definition ConfigTls.cpp:93
std::string getCert() const
Definition ConfigTls.cpp:59
CLI::Option * cipherListOpt
Definition ConfigTls.h:118
std::string getCertKeyPassword() const
Definition ConfigTls.cpp:79
ConfigTls & setShutdownTimeout(const utils::Timeval &newShutdownTimeout)
ConfigTls & setCertKeyPassword(const std::string &certKeyPassword)
Definition ConfigTls.cpp:73
utils::Timeval getInitTimeout() const
CLI::Option * setDefaultValue(CLI::Option *option, const ValueTypeT &value, bool clear=true) const
Definition SubCommand.h:337