28 lines
925 B
C
28 lines
925 B
C
|
#ifndef PROXYHTTPSESSION_H
|
||
|
#define PROXYHTTPSESSION_H
|
||
|
|
||
|
#include <boost/beast/core/flat_buffer.hpp>
|
||
|
#include <boost/beast/core/tcp_stream.hpp>
|
||
|
#include <boost/beast/http/parser.hpp>
|
||
|
#include <boost/beast/http/string_body.hpp>
|
||
|
#include <optional>
|
||
|
|
||
|
class ProxyHttpSession : public std::enable_shared_from_this<ProxyHttpSession> {
|
||
|
public:
|
||
|
ProxyHttpSession(boost::asio::io_context &ioContext, boost::asio::ip::tcp::socket &&socket);
|
||
|
void run();
|
||
|
|
||
|
protected:
|
||
|
void doRead();
|
||
|
void onRead(boost::beast::error_code ec, std::size_t);
|
||
|
|
||
|
private:
|
||
|
boost::asio::ip::tcp::resolver m_resolver;
|
||
|
std::optional<boost::beast::http::request_parser<boost::beast::http::string_body>> m_parser;
|
||
|
boost::beast::flat_buffer m_buffer{std::numeric_limits<std::uint64_t>::max()};
|
||
|
boost::beast::tcp_stream m_clientStream;
|
||
|
boost::beast::tcp_stream m_serverStream;
|
||
|
};
|
||
|
|
||
|
#endif // PROXYHTTPSESSION_H
|