curl-fuzzer C++ reference
Loading...
Searching...
No Matches
imaps_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_IMAPS_MOCK_SERVER_H_
11#define PROTO_FUZZER_IMAPS_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 ImapsMockServer final : public ImapMockServer {
37 public:
39
40 ~ImapsMockServer() override;
41
42 void ObserveState() override;
43
44 ImapsMockServer(const ImapsMockServer&) = delete;
45 ImapsMockServer& operator=(const ImapsMockServer&) = 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_IMAPS_MOCK_SERVER_H_
ImapMockServer()
Begin without a borrowed protobuf or open socketpair.
std::unique_ptr< MockConnection > CreateConnection() override
Wrap one socketpair endpoint in an OpenSSL acceptor.
std::string negotiated_alpn() const
void Install(CURL *easy) override
Install the shared socket callbacks and a stable local trust anchor.
~ImapsMockServer() override
Release the TLS connection before the carrier-owned server context.
ImapsMockServer()
Construct the OpenSSL server carrier used by every IMAPS scenario.
void ObserveState() override
Retain protocol outcomes in coverage and introspector builds.
std::size_t completed_handshake_count() const
Reusable TLS carrier for protocol-specific mock peers.
Command-aware in-process peer for curl's IMAP state machine.
Reusable TLS transport for structured in-process protocol peers.