xale-db 1.0
minimal SQL engine, written in c++
Loading...
Searching...
No Matches
LinuxSSLListenerSocket.h
Go to the documentation of this file.
1#ifndef NET_SOCKET_LINUX_SSL_LISTENER_SOCKET_H
2#define NET_SOCKET_LINUX_SSL_LISTENER_SOCKET_H
3
4#include <Logger.h>
5
8
9#include <string>
10#include <memory>
11#include <openssl/ssl.h>
12#include <openssl/err.h>
13#include <sys/socket.h>
14#include <netinet/in.h>
15#include <unistd.h>
16
17namespace Xale::Net
18{
23 {
24 public:
28 LinuxSSLListenerSocket(std::string certFile, std::string keyFile);
29
33 bool open(int port) override;
34
39 std::unique_ptr<IClientConnection> acceptClient() override;
40
44 void close() override;
45
46 private:
47 Xale::Logger::Logger<LinuxSSLListenerSocket>& _logger;
48 int _socket;
49 SSL_CTX* _ctx;
50 std::string _certFile;
51 std::string _keyFile;
52 };
53}
54
55#endif // NET_SOCKET_LINUX_SSL_LISTENER_SOCKET_H
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
Definition IPacket.h:8