10#ifndef PROTO_FUZZER_HTTP_TRANSPORT_MOCK_SERVER_H_
11#define PROTO_FUZZER_HTTP_TRANSPORT_MOCK_SERVER_H_
17#include "curl_fuzzer.pb.h"
21namespace proto_fuzzer {
37 void Install(CURL* easy)
override;
49 static constexpr std::size_t kMaxTranscriptBytes = 64 * 1024;
51 curl::fuzzer::proto::HttpTransportMode mode_;
52 bool haproxy_protocol_;
53 std::string client_transcript_;
std::unique_ptr< MockConnection > CreateConnection() override
Create one socketpair and attach the transcript observer.
bool SupportsRepeatedPollsetProbe() const override
The request-aware peer drains every bounded perform turn, so repeated zero-timeout poll probes cannot...
const std::string & client_transcript() const
void ObserveState() override
Retain protocol outcomes in coverage and introspector builds.
void ObserveIncomingData(const unsigned char *data, std::size_t size) override
Retain a bounded raw transcript for strict request-shape tests.
HttpTransportMockServer(curl::fuzzer::proto::HttpTransportMode mode, bool haproxy_protocol)
Construct an idle transport peer for one policy-normalized mode.
void Install(CURL *easy) override
Install socket callbacks followed by the fixed routing options.
Receives bytes after any transport decoding.
MockServer(MultiDrivePolicy drive_policy=MultiDrivePolicy::kPerform)
Construct an idle MockServer with no scripted responses or open peers.
Optional observer for application bytes consumed by mock peers.
MockConnection and MockServer — the in-process peer that feeds canned response bytes to libcurl over ...