#include "../c++/tls.hpp" #include #include saw::error_or real_main(){ using namespace saw; auto eo_aio = setup_async_io(); if(eo_aio.is_error()){ return std::move(eo_aio.get_error()); } auto& aio = eo_aio.get_value(); wait_scope wait{aio.event_loop}; auto eo_tls_net = setup_tls_network(aio.io->get_network()); if(eo_tls_net.is_error()){ return std::move(eo_tls_net.get_error()); } auto& tls_net = eo_tls_net.get_value(); auto eo_tls_addr = tls_net->resolve_address("keldu.de", 443).take(); if(eo_tls_addr.is_error()){ return std::move(eo_tls_addr.get_error()); } auto& tls_addr = eo_tls_addr.get_value(); ring_buffer buff{4096u * 4096u}; own>> tls_io = nullptr; std::cout<<"Preparing to connect"<connect(*tls_addr).then([&](auto tls_io_str){ tls_io = std::move(tls_io_str); std::cout<<"Connected"<write(&get_req[0], get_req.size()); std::cout<<"Sending: "<("Never managed to connect"); } bool running = true; tls_io->on_read_disconnected().then([&running](){ running = false; }).detach(); while(running){ auto eo_read_res = tls_io->read(&buff.write(), buff.write_segment_length()); if(eo_read_res.is_error()){ auto& err = eo_read_res.get_error(); if(err.is_critical()){ std::cerr<<":("<