SNode.C
Loading...
Searching...
No Matches
tlslegacyserver.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
8#include "core/SNodeC.h"
9#include "log/Logger.h"
10#include "net/in/stream/tls/SocketServer.h"
11
12int main(int argc, char* argv[]) {
13 core::SNodeC::init(argc, argv);
14
15 using SocketServer = net::in::stream::tls::SocketServer<apps::tlslegacy::TlsLegacyServerSocketContextFactory>;
16 const SocketServer server("tls-legacy-server");
17
18 server.getConfig()->setCaCert("/home/voc/projects/snodec/snode.c/certs/Volker_Christian_-_Web_CA.crt");
19
20 server.getConfig()->setCert("/home/voc/projects/snodec/snode.c/certs/snodec.home.vchrist.at_-_snode.c_-_server.pem");
21 server.getConfig()->setCertKey("/home/voc/projects/snodec/snode.c/certs/Volker_Christian_-_Web_-_snode.c_-_server.key.encrypted.pem");
23
25 server.getConfig()->setNoCloseNotifyIsEOF(true); // switch back to unencrypted exchange in case tls shutdown was successful
26
27 server.listen([instanceName = server.getConfig()->getInstanceName()](const SocketServer::SocketAddress& socketAddress,
28 const core::socket::State& state) {
29 if (state == core::socket::State::OK) {
30 VLOG(1) << instanceName << ": listening on " << socketAddress.toString();
31 } else if (state == core::socket::State::ERROR) {
32 LOG(ERROR) << instanceName << ": " << socketAddress.toString() << ": " << state.what();
33 }
34 });
35
36 return core::SNodeC::start();
37}
#define LOG(level)
Definition Logger.h:148
#define VLOG(level)
Definition Logger.h:164
static void init(int argc, char *argv[])
Definition SNodeC.cpp:54
static int start(const utils::Timeval &timeOut={LONG_MAX, 0})
Definition SNodeC.cpp:60
Config * getConfig() const
Definition Socket.hpp:65
bool operator==(const int &state) const
Definition State.cpp:74
static constexpr int ERROR
Definition State.h:57
std::string what() const
Definition State.cpp:114
static constexpr int OK
Definition State.h:55
const SocketServer & listen(const std::function< void(const SocketAddress &, core::socket::State)> &onStatus) const
LogMessage(Level level, int verboseLevel=-1, bool withErrno=false)
Definition Logger.cpp:280
const std::string & getInstanceName() const
ConfigTls * setNoCloseNotifyIsEOF(bool noCloseNotifyIsEOF=true)
ConfigTls * setCertKey(const std::string &certKey)
Definition ConfigTls.cpp:63
ConfigTls * setCaCert(const std::string &caCert)
Definition ConfigTls.cpp:83
ConfigTls * setCert(const std::string &cert)
Definition ConfigTls.cpp:53
ConfigTls * setCaCertAcceptUnknown(bool set=true)
ConfigTls * setCertKeyPassword(const std::string &certKeyPassword)
Definition ConfigTls.cpp:73
std::string toString(bool expanded=true) const override
int main(int argc, char *argv[])
net::in::stream::SocketServer< core::socket::stream::tls::SocketAcceptor, net::in::stream::tls::config::ConfigSocketServer, SocketContextFactoryT, Args... > SocketServer