1#ifndef NET_SOCKET_LINUX_SSL_LISTENER_SOCKET_H
2#define NET_SOCKET_LINUX_SSL_LISTENER_SOCKET_H
11#include <openssl/ssl.h>
12#include <openssl/err.h>
13#include <sys/socket.h>
14#include <netinet/in.h>
33 bool open(
int port)
override;
39 std::unique_ptr<IClientConnection>
acceptClient()
override;
44 void close()
override;
47 Xale::Logger::Logger<LinuxSSLListenerSocket>& _logger;
50 std::string _certFile;
Server-side socket: binds a port and produces per-client connections.
Definition IListenerSocket.h:16
bool open(int port) override
Bind and start listening, initialise SSL context.
Definition LinuxSSLListenerSocket.cpp:13
void close() override
Close the listening socket and free SSL context.
Definition LinuxSSLListenerSocket.cpp:94
std::unique_ptr< IClientConnection > acceptClient() override
Block until a client connects, perform SSL handshake, return connection.
Definition LinuxSSLListenerSocket.cpp:67
LinuxSSLListenerSocket(std::string certFile, std::string keyFile)
Construct with paths to PEM certificate and key files.
Definition LinuxSSLListenerSocket.cpp:5