forked from awwit/httpserver
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathSocketAdapterTls.h
More file actions
32 lines (24 loc) · 1.12 KB
/
SocketAdapterTls.h
File metadata and controls
32 lines (24 loc) · 1.12 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
#pragma once
#include "SocketAdapter.h"
#include "Socket.h"
namespace HttpServer
{
class SocketAdapterTls : public SocketAdapter
{
private:
::gnutls_session_t session;
public:
SocketAdapterTls() = delete;
SocketAdapterTls(const Socket &sock, ::gnutls_priority_t priority_cache, ::gnutls_certificate_credentials_t x509_cred);
SocketAdapterTls(const ::gnutls_session_t _session);
bool handshake();
long nonblock_send_all(const void *buf, const size_t length, const std::chrono::milliseconds &timeout) const;
virtual System::native_socket_type get_handle() const override;
virtual ::gnutls_session_t get_tls_session() const override;
virtual SocketAdapter *copy() const override;
virtual long nonblock_recv(std::vector<std::string::value_type> &buf, const std::chrono::milliseconds &timeout) const override;
virtual long nonblock_send(const std::string &buf, const std::chrono::milliseconds &timeout) const override;
virtual long nonblock_send(const std::vector<std::string::value_type> &buf, const size_t length, const std::chrono::milliseconds &timeout) const override;
virtual void close() override;
};
};