curl-fuzzer C++ reference
Loading...
Searching...
No Matches
pop3s_mock_server.h
Go to the documentation of this file.
1/*
2 * Copyright (C) Max Dymond, <cmeister2@gmail.com>, et al.
3 *
4 * SPDX-License-Identifier: curl
5 */
6
9
10#ifndef PROTO_FUZZER_POP3S_MOCK_SERVER_H_
11#define PROTO_FUZZER_POP3S_MOCK_SERVER_H_
12
13#include <curl/curl.h>
14
15#include <cstddef>
16#include <memory>
17#include <string>
18
21
22namespace proto_fuzzer {
23
36class Pop3sMockServer final : public Pop3MockServer {
37 public:
39
40 ~Pop3sMockServer() override;
41
42 void ObserveState() override;
43
44 Pop3sMockServer(const Pop3sMockServer&) = delete;
45 Pop3sMockServer& operator=(const Pop3sMockServer&) = delete;
46
47 void Install(CURL* easy) override;
48
49 int negotiated_tls_version() const;
50
51 std::size_t completed_handshake_count() const;
52
53 std::string negotiated_alpn() const;
54
55 protected:
56 std::unique_ptr<MockConnection> CreateConnection() override;
57
58 private:
59 TlsMockTransport transport_;
60};
61
62} // namespace proto_fuzzer
63
64#endif // PROTO_FUZZER_POP3S_MOCK_SERVER_H_
Pop3MockServer()
Begin without a borrowed protobuf or open socketpair.
void Install(CURL *easy) override
Install the shared socket callbacks and a stable local trust anchor.
~Pop3sMockServer() override
Release the TLS connection before the carrier-owned server context.
std::size_t completed_handshake_count() const
Pop3sMockServer()
Construct the OpenSSL server carrier used by every POP3S scenario.
void ObserveState() override
Retain protocol outcomes in coverage and introspector builds.
std::unique_ptr< MockConnection > CreateConnection() override
Wrap one socketpair endpoint in an OpenSSL acceptor.
std::string negotiated_alpn() const
Reusable TLS carrier for protocol-specific mock peers.
Command-aware in-process peer for curl's POP3 state machine.
Reusable TLS transport for structured in-process protocol peers.