10#ifndef PROTO_FUZZER_DICT_MOCK_SERVER_H_
11#define PROTO_FUZZER_DICT_MOCK_SERVER_H_
17namespace proto_fuzzer {
44 void Install(CURL* easy)
override;
49 void RunLoop(CURLM* multi, CURL* easy,
const curl::fuzzer::proto::Scenario&
scenario)
override;
51 void HandleLine(std::string_view line)
override;
56 void FinishResponse();
void Install(CURL *easy) override
Remove the operation deadline so a partial DICT request write exercises sendf()'s explicit no-timeout...
std::unique_ptr< MockConnection > CreateConnection() override
Construct the ordinary plaintext transport only when its client endpoint can queue the complete bound...
void HandleLine(std::string_view line) override
Answer the first lookup command in the request and ignore CLIENT, which is a bare identification line...
void RunLoop(CURLM *multi, CURL *easy, const curl::fuzzer::proto::Scenario &scenario) override
Split each sufficiently large socket write while curl constructs and uses this DICT connection.
void ObserveState() override
Retain protocol outcomes in coverage and introspector builds.
DictMockServer()
Begin without a borrowed protobuf or open socketpair.
~DictMockServer() override
Release the server-owned socketpair half after curl has returned its client descriptor.
void ResetProtocolState() override
Reset DICT's response bookkeeping for a new drive.
const curl::fuzzer::proto::Scenario * scenario() const
Borrowed scenario for the synchronous drive, or nullptr outside RunLoop().
PingpongMockServer — shared line-oriented command/response transport for the mail-style protocol peer...