crypto: add TrustList move operator, prevent copy

This commit is contained in:
Adrien Beraud committed 2017-05-01 16:26:12 -04:00
1 parent 4d78aea05b
commit d9bced965b
2 files changed
+15

No files matched your search

+6
View File
@@ -470,6 +470,10 @@ struct OPENDHT_PUBLIC TrustList
};
TrustList();
TrustList(TrustList&& o) : trust(std::move(o.trust)) {
o.trust = nullptr;
}
TrustList& operator=(TrustList&& o);
~TrustList();
void add(const Certificate& crt);
void add(const RevocationList& crl);
@@ -477,6 +481,8 @@ struct OPENDHT_PUBLIC TrustList
VerifyResult verify(const Certificate& crt) const;
private:
TrustList(const TrustList& o) = delete;
TrustList& operator=(const TrustList& o) = delete;
gnutls_x509_trust_list_t trust;
};
+9
View File
@@ -1180,6 +1180,15 @@ TrustList::~TrustList() {
gnutls_x509_trust_list_deinit(trust, 1);
}
TrustList&
TrustList::operator=(TrustList&& o)
{
if (trust)
gnutls_x509_trust_list_deinit(trust, true);
trust = std::move(o.trust);
o.trust = nullptr;
}
void TrustList::add(const Certificate& crt)
{
auto chain = crt.getChainWithRevocations(true);