curl-fuzzer C++ reference
Loading...
Searching...
No Matches
ftps_mock_server.cc
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
11
12#include <cstddef>
13#include <memory>
14#include <string>
15
17
18namespace proto_fuzzer {
19
25
31
37void FtpsMockServer::Install(CURL* easy) {
39 transport_.Install(easy);
40}
41
46std::unique_ptr<MockConnection> FtpsMockServer::CreateConnection() { return transport_.CreateConnection(); }
47
52bool FtpsMockServer::SupportsActiveMode() const { return false; }
53
55int FtpsMockServer::negotiated_tls_version() const { return transport_.negotiated_tls_version(); }
56
59std::size_t FtpsMockServer::completed_handshake_count() const { return transport_.completed_handshake_count(); }
60
62std::string FtpsMockServer::negotiated_alpn() const { return transport_.negotiated_alpn(); }
63
66#if defined(PROTO_FUZZER_OBSERVE_STATE)
68 const volatile std::size_t ftps_observation[] = {
69 completed_handshake_count(), static_cast<std::size_t>(negotiated_tls_version()), negotiated_alpn().size()};
70 (void)ftps_observation;
71#endif
72}
73
74} // namespace proto_fuzzer
void ObserveState() override
Retain protocol outcomes in coverage and introspector builds.
void ReleaseConnections()
Close every server-owned transport before the borrowed scenario or a subclass transport disappears.
bool SupportsActiveMode() const override
Reject active-mode listener creation.
FtpsMockServer()
Construct the OpenSSL server carrier used by every FTPS scenario.
void Install(CURL *easy) override
Install the shared socket callbacks and a stable local trust anchor.
~FtpsMockServer() override
Release the TLS connections before the carrier-owned server context.
std::string negotiated_alpn() const
void ObserveState() override
Retain protocol outcomes in coverage and introspector builds.
std::size_t completed_handshake_count() const
std::unique_ptr< MockConnection > CreateConnection() override
Wrap one control or passive-data socketpair endpoint in an OpenSSL acceptor.
virtual void Install(CURL *easy)
Install the common OPENSOCKETFUNCTION / OPENSOCKETDATA / SOCKOPTFUNCTION callbacks on 'easy'.
Implicit-TLS in-process peer for curl's FTPS state machine.
MockConnection and MockServer — the in-process peer that feeds canned response bytes to libcurl over ...
TlsApplicationProtocol
Application protocol selected by the in-process TLS peer.
@ kHttp11
Ordinary HTTPS scripts contain HTTP/1.1 response bytes.