40 const std::map<std::string, std::string> &headers,
41 const std::string &leftoverBody,
48 const std::string& leftover,
49 std::function<
bool(
const char*,
size_t)> writeFn,
55 const std::map<std::string, std::string>& headers,
56 const std::string& leftover,
57 std::function<
bool(
const char*,
size_t)> writeFn,
62 static std::map<std::string, std::string>
parseHeaders(
const std::string &rawHeaders);
66 static bool receiveFixedLengthBodyToString(
Tcp &socket,
const std::map<std::string, std::string> &headers,
const std::string &leftover, std::string &out,
size_t maxLength,
bool *wasTruncated);
General-purpose TCP socket abstraction with optional TLS support for both client and server use.
static std::pair< std::string, std::string > receiveHeaderAndLeftover(Tcp &socket)
Receive raw headers from the socket until \r \r .
static bool receiveChunkedBodyToString(Tcp &socket, const std::string &leftover, std::string &out, size_t maxLength, bool *wasTruncated)
static bool receiveFixedLengthBodyToString(Tcp &socket, const std::map< std::string, std::string > &headers, const std::string &leftover, std::string &out, size_t maxLength, bool *wasTruncated)
static bool receiveFixedLengthBodyToFile(Tcp &socket, const std::map< std::string, std::string > &headers, const std::string &leftover, std::function< bool(const char *, size_t)> writeFn, size_t maxLength, bool *wasTruncated)
static bool receiveUnknownLengthBodyToString(Tcp &socket, const std::string &leftover, std::string &out, size_t maxLength, bool *wasTruncated)
static bool isChunkedEncoding(const std::map< std::string, std::string > &headers)
static int parseStatusCode(const std::string &statusLine)
Parses the HTTP status line to extract the status code.
static bool receiveBody(Tcp &socket, const std::map< std::string, std::string > &headers, const std::string &leftoverBody, std::string &outBody, size_t maxLength, bool *wasTruncated)
Receive the HTTP body from socket, using Content-Length or connection close.
static std::map< std::string, std::string > parseHeaders(const std::string &rawHeaders)
Parses the HTTP headers from a raw header string.
static bool receiveChunkedBodyToFile(Tcp &socket, const std::string &leftover, std::function< bool(const char *, size_t)> writeFn, size_t maxLength, bool *wasTruncated)
General-purpose TCP socket wrapper with optional TLS support via mbedTLS (altcp).