listener.h
658 Bytes
#ifndef LISTENER_H
#define LISTENER_H
#include <string>
#include <memory>
#include "sslctxmanager.h"
enum class ListenerProtocol
{
IPv46,
IPv4,
IPv6
};
struct Listener
{
ListenerProtocol protocol = ListenerProtocol::IPv46;
std::string inet4BindAddress;
std::string inet6BindAddress;
int port = 0;
bool websocket = false;
std::string sslFullchain;
std::string sslPrivkey;
std::unique_ptr<SslCtxManager> sslctx;
void isValid();
bool isSsl() const;
std::string getProtocolName() const;
void loadCertAndKeyFromConfig();
std::string getBindAddress(ListenerProtocol p);
};
#endif // LISTENER_H