26 using ReadFunction = size_t (*)(
char *, size_t);
29 std::uint32_t src_addr;
30 std::uint32_t dst_addr;
31 std::uint16_t src_port;
32 std::uint16_t dst_port;
37 std::uint16_t src_port;
38 std::uint16_t dst_port;
40 bool read_proxy_ipv4(
const std::string& addr,
ipv4_addr &proxy_header);
41 bool read_proxy_ipv6(
const std::string& addr,
ipv6_addr &proxy_header);
50 using string_iter = std::string::const_iterator;
51 bool read_ipv4(string_iter& start,
const string_iter end, std::uint32_t& addr);
52 bool read_ipv6(string_iter& start,
const string_iter end, in6_addr & addr);
53 bool read_port(string_iter& start,
const string_iter end, std::uint16_t& port);
55 const char v2sig[13] =
"\x0D\x0A\x0D\x0A\x00\x0D\x0A\x51\x55\x49\x54\x0A";
Interface between a user of a stream and the provider of a stream.