Loading src/http.cpp +28 −0 Original line number Diff line number Diff line Loading @@ -640,6 +640,34 @@ std::vector<char> libhttppp::HttpClient::_h1ReadResponse(const std::string &labe return ret; } // Forward declarations for H2/H3 helpers (defined later in this file) static size_t h3EncodeVarInt(uint64_t value, uint8_t *out); static uint64_t h3DecodeVarInt(const uint8_t *data, size_t len, size_t &bytes_read); static void h3AppendFrame(std::vector<uint8_t> &out, uint64_t type, const std::vector<uint8_t> &payload); static constexpr uint8_t H2C_FRAME_DATA = 0x00; static constexpr uint8_t H2C_FRAME_HEADERS = 0x01; static constexpr uint8_t H2C_FRAME_SETTINGS = 0x04; static constexpr uint8_t H2C_FRAME_PING = 0x06; static constexpr uint8_t H2C_FRAME_GOAWAY = 0x07; static constexpr uint8_t H2C_FRAME_WINDOW_UPDATE = 0x08; static constexpr uint8_t H2C_FLAG_END_STREAM = 0x01; static constexpr uint8_t H2C_FLAG_ACK = 0x01; static constexpr uint8_t H2C_FLAG_END_HEADERS = 0x04; static constexpr size_t H2C_FRAME_HEADER_LEN = 9; static constexpr size_t H2C_MAX_FRAME_SIZE = 16384; static const char H2C_CLIENT_PREFACE[] = "PRI * HTTP/2.0\r\n\r\nSM\r\n\r\n"; static constexpr size_t H2C_CLIENT_PREFACE_LEN = 24; static std::string h2cBuildFrame(uint8_t type, uint8_t flags, uint32_t stream_id, const std::string &payload); static std::string h2cBuildSettings(); static std::string h2cBuildSettingsAck(); static std::string h2cBuildWindowUpdate(uint32_t stream_id, uint32_t increment); // ── Streaming API ────────────────────────────────────────────────────── bool libhttppp::HttpClient::isStreaming() const { Loading Loading
src/http.cpp +28 −0 Original line number Diff line number Diff line Loading @@ -640,6 +640,34 @@ std::vector<char> libhttppp::HttpClient::_h1ReadResponse(const std::string &labe return ret; } // Forward declarations for H2/H3 helpers (defined later in this file) static size_t h3EncodeVarInt(uint64_t value, uint8_t *out); static uint64_t h3DecodeVarInt(const uint8_t *data, size_t len, size_t &bytes_read); static void h3AppendFrame(std::vector<uint8_t> &out, uint64_t type, const std::vector<uint8_t> &payload); static constexpr uint8_t H2C_FRAME_DATA = 0x00; static constexpr uint8_t H2C_FRAME_HEADERS = 0x01; static constexpr uint8_t H2C_FRAME_SETTINGS = 0x04; static constexpr uint8_t H2C_FRAME_PING = 0x06; static constexpr uint8_t H2C_FRAME_GOAWAY = 0x07; static constexpr uint8_t H2C_FRAME_WINDOW_UPDATE = 0x08; static constexpr uint8_t H2C_FLAG_END_STREAM = 0x01; static constexpr uint8_t H2C_FLAG_ACK = 0x01; static constexpr uint8_t H2C_FLAG_END_HEADERS = 0x04; static constexpr size_t H2C_FRAME_HEADER_LEN = 9; static constexpr size_t H2C_MAX_FRAME_SIZE = 16384; static const char H2C_CLIENT_PREFACE[] = "PRI * HTTP/2.0\r\n\r\nSM\r\n\r\n"; static constexpr size_t H2C_CLIENT_PREFACE_LEN = 24; static std::string h2cBuildFrame(uint8_t type, uint8_t flags, uint32_t stream_id, const std::string &payload); static std::string h2cBuildSettings(); static std::string h2cBuildSettingsAck(); static std::string h2cBuildWindowUpdate(uint32_t stream_id, uint32_t increment); // ── Streaming API ────────────────────────────────────────────────────── bool libhttppp::HttpClient::isStreaming() const { Loading