49 HttpEvent(std::vector<netplus::socket*> serversocket,
int timeout = 1000);
51 virtual void RequestEvent(
HttpRequest &curreq,
const int tid,ULONG_PTR args);
52 virtual void ResponseEvent(
HttpRequest &curreq,
const int tid,ULONG_PTR args);
53 virtual void ConnectEvent(
HttpRequest &curreq,
const int tid,ULONG_PTR args);
54 virtual void DisconnectEvent(
HttpRequest &curreq,
const int tid,ULONG_PTR args);
56 virtual bool Http2RequestEvent(netplus::con &curcon,
59 const std::string &alpn,
60 const netplus::ssl::FramingCallback &frame_cb);
61 virtual void Http3StreamEvent(netplus::socket *sock,
63 const std::vector<uint8_t> &data,
67 void CreateConnection(std::shared_ptr<netplus::con> &res);
68 std::string _altSvcH3;
71 struct H3StreamBuffer {
72 std::vector<uint8_t> data;
74 std::mutex _h3BufferMutex;
75 std::map<uint64_t, H3StreamBuffer> _h3StreamBuffers;
76 void _dispatchH2Stream(
HttpRequest &cureq, std::string &out,
78 const std::vector<hpack::HeaderField> &decoded,
79 const std::string &reqBody,
80 const int tid, ULONG_PTR args);
81 void RequestEvent(netplus::con &curcon,
const int tid, ULONG_PTR args);
82 void ResponseEvent(netplus::con &curcon,
const int tid,ULONG_PTR args);
83 void ConnectEvent(netplus::con &curcon,
const int tid,ULONG_PTR args);
84 void DisconnectEvent(netplus::con &curcon,
const int tid,ULONG_PTR args);
90 HttpD(
int argc,
char** argv);
91 HttpD(
const std::string &httpaddr,
int port,
int maxconnections,
const std::string &sslcertpath,
const std::string &sslkeypath);
93 std::vector<netplus::socket*> getServerSockets();
99 std::vector<std::unique_ptr<netplus::socket>> _ServerSockets;
100 std::map<std::string, netplus::ssl::CertificateBundle> _certBundle;