A bunch of interfaces: Return scoped_ptr<SSLCertificate>
Instead of using a raw pointer output parameter. This affects
SSLStreamAdapter::GetPeerCertificate
Transport::GetRemoteSSLCertificate
TransportChannel::GetRemoteSSLCertificate
TransportController::GetRemoteSSLCertificate
WebRtcSession::GetRemoteSSLCertificate
This is a good idea in general, but will also be very convenient when
scoped_ptr is gone, since unique_ptr doesn't have an .accept() method.
BUG=webrtc:5520
Review URL: https://codereview.webrtc.org/1802013002
Cr-Commit-Position: refs/heads/master@{#12262}
diff --git a/webrtc/base/opensslstreamadapter.cc b/webrtc/base/opensslstreamadapter.cc
index 8a3044d..16dd980 100644
--- a/webrtc/base/opensslstreamadapter.cc
+++ b/webrtc/base/opensslstreamadapter.cc
@@ -290,12 +290,11 @@
role_ = role;
}
-bool OpenSSLStreamAdapter::GetPeerCertificate(SSLCertificate** cert) const {
- if (!peer_certificate_)
- return false;
-
- *cert = peer_certificate_->GetReference();
- return true;
+rtc::scoped_ptr<SSLCertificate> OpenSSLStreamAdapter::GetPeerCertificate()
+ const {
+ return peer_certificate_ ? rtc::scoped_ptr<SSLCertificate>(
+ peer_certificate_->GetReference())
+ : nullptr;
}
bool OpenSSLStreamAdapter::SetPeerCertificateDigest(const std::string