sslCipher(p.sslCipher),
sslFlags(p.sslFlags),
sslDomain(p.sslDomain),
+ parsedOptions(p.parsedOptions),
parsedFlags(p.parsedFlags),
certs(p.certs),
caFiles(p.caFiles),
sslVersion(p.sslVersion),
encryptTransport(p.encryptTransport)
{
- parseOptions(); // re-parse after sslOptions copied.
memcpy(&flags, &p.flags, sizeof(flags));
}
Security::PeerOptions::operator =(const Security::PeerOptions &p)
{
sslOptions = p.sslOptions;
- parseOptions(); // re-parse after sslOptions copied.
caDir = p.caDir;
crlFile = p.crlFile;
sslCipher = p.sslCipher;
sslFlags = p.sslFlags;
sslDomain = p.sslDomain;
+ parsedOptions = p.parsedOptions;
parsedFlags = p.parsedFlags;
certs = p.certs;
caFiles = p.caFiles;
if (gnutls_priority_init(&op, priorities, &err) != GNUTLS_E_SUCCESS) {
fatalf("Unknown TLS option '%s'", err);
}
- parsedOptions.reset(op);
+ parsedOptions = Security::ParsedOptions(op, [](gnutls_priority_t p) {
+ gnutls_priority_deinit(p);
+ });
#endif
}
/// flags governing Squid internal TLS operations
struct flags_ {
flags_() : tlsDefaultCa(true), tlsNpn(true) {}
+ flags_(const flags_ &) = default;
+ flags_ &operator =(const flags_ &) = default;
/// whether to use the system default Trusted CA when verifying the remote end certificate
YesNoNone tlsDefaultCa;
class KeyData;
#if !USE_OPENSSL && USE_GNUTLS
-typedef std::unique_ptr<struct gnutls_priority_st, HardFun<void, gnutls_priority_t, &gnutls_priority_deinit>> ParsedOptions;
+typedef std::shared_ptr<struct gnutls_priority_st> ParsedOptions;
#else
typedef long ParsedOptions;
#endif
#include "security/PeerOptions.h"
Security::PeerOptions Security::ProxyOutgoingConfig;
+//Security::PeerOptions::PeerOptions() STUB
+//Security::PeerOptions::PeerOptions(const Security::PeerOptions &) STUB
Security::PeerOptions &Security::PeerOptions::operator =(const Security::PeerOptions &) STUB_RETVAL(*this)
void Security::PeerOptions::parse(char const*) STUB
Security::ContextPointer Security::PeerOptions::createClientContext(bool) STUB_RETVAL(Security::ContextPointer())