summaryrefslogtreecommitdiff
path: root/modules/io-tls/c++/tls.hpp
diff options
context:
space:
mode:
authorClaudius 'keldu' Holeksa <mail@keldu.de>2024-10-18 13:14:09 +0200
committerClaudius 'keldu' Holeksa <mail@keldu.de>2024-10-18 13:14:09 +0200
commit1456fc7c9a42992c2a601dffd26e251ebab99c3f (patch)
tree9cf60cd2f0edef76f5d5592d4d11eb734106bd0c /modules/io-tls/c++/tls.hpp
parent225134d485ec3795e839ea9bbafdae214771f340 (diff)
Fixing tls and writing a basic test for it
Diffstat (limited to 'modules/io-tls/c++/tls.hpp')
-rw-r--r--modules/io-tls/c++/tls.hpp20
1 files changed, 18 insertions, 2 deletions
diff --git a/modules/io-tls/c++/tls.hpp b/modules/io-tls/c++/tls.hpp
index c5c3da1..5082ee9 100644
--- a/modules/io-tls/c++/tls.hpp
+++ b/modules/io-tls/c++/tls.hpp
@@ -43,6 +43,20 @@ private:
};
template<typename T>
+class network_address<net::Tls<T>> final {
+private:
+ own<network_address<T>> internal_;
+public:
+ network_address(own<network_address<T>> internal__):
+ internal_{std::move(internal__)}
+ {}
+
+ network_address<T>& get_handle() {
+ return *internal_;
+ }
+};
+
+template<typename T>
class network<net::Tls<T>> {
public:
virtual ~network() = default;
@@ -63,15 +77,17 @@ public:
/**
* Set up a listener on this address
*/
- virtual error_or<own<server<T>>> listen(network_address<T> &bind_addr) = 0;
+ virtual error_or<own<server<net::Tls<T>>>> listen(network_address<net::Tls<T>> &bind_addr) = 0;
/**
* Connect to a remote address
*/
- virtual conveyor<own<io_stream<T>>> connect(network_address<T> &address) = 0;
+ virtual conveyor<own<io_stream<net::Tls<T>>>> connect(network_address<net::Tls<T>> &address) = 0;
};
template<typename T = net::Os>
error_or<own<network<net::Tls<T>>>> setup_tls_network(network<T> &network);
} // namespace saw
+
+#include "tls.tmpl.hpp"