Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(1431)

Unified Diff: talk/app/webrtc/peerconnectionfactory.cc

Issue 1269843005: Added DtlsCertificate, a ref counted object owning an SSLIdentity (Closed) Base URL: https://chromium.googlesource.com/external/webrtc.git@master
Patch Set: Cleanup Created 5 years, 4 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: talk/app/webrtc/peerconnectionfactory.cc
diff --git a/talk/app/webrtc/peerconnectionfactory.cc b/talk/app/webrtc/peerconnectionfactory.cc
index 3524af7932a4f92f60da84e552f742d1a2aaa7ac..cdfa80517f37cfe5539bd5c8e9488915bfa33801 100644
--- a/talk/app/webrtc/peerconnectionfactory.cc
+++ b/talk/app/webrtc/peerconnectionfactory.cc
@@ -207,16 +207,36 @@ PeerConnectionFactory::CreatePeerConnection(
PortAllocatorFactoryInterface* allocator_factory,
DTLSIdentityServiceInterface* dtls_identity_service,
PeerConnectionObserver* observer) {
- DCHECK(signaling_thread_->IsCurrent());
- DCHECK(allocator_factory || default_allocator_factory_);
+ PortAllocatorFactoryInterface* chosen_allocator_factory =
+ CreatePeerConnectionCommon(allocator_factory);
if (!dtls_identity_service) {
dtls_identity_service = new DtlsIdentityService(dtls_identity_store_.get());
}
+ rtc::scoped_refptr<PeerConnection> pc(
+ new rtc::RefCountedObject<PeerConnection>(this));
+ // Note: |pc| takes ownership of |dtls_identity_service|.
+ if (!pc->Initialize(
+ configuration,
+ constraints,
+ chosen_allocator_factory,
+ dtls_identity_service,
+ observer)) {
+ return nullptr;
+ }
+ return PeerConnectionProxy::Create(signaling_thread(), pc);
+}
+
+rtc::scoped_refptr<PeerConnectionInterface>
+PeerConnectionFactory::CreatePeerConnection(
+ const PeerConnectionInterface::RTCConfiguration& configuration,
+ const MediaConstraintsInterface* constraints,
+ PortAllocatorFactoryInterface* allocator_factory,
+ rtc::scoped_refptr<DtlsCertificate> certificate,
+ PeerConnectionObserver* observer) {
PortAllocatorFactoryInterface* chosen_allocator_factory =
- allocator_factory ? allocator_factory : default_allocator_factory_.get();
- chosen_allocator_factory->SetNetworkIgnoreMask(options_.network_ignore_mask);
+ CreatePeerConnectionCommon(allocator_factory);
rtc::scoped_refptr<PeerConnection> pc(
new rtc::RefCountedObject<PeerConnection>(this));
@@ -224,13 +244,26 @@ PeerConnectionFactory::CreatePeerConnection(
configuration,
constraints,
chosen_allocator_factory,
- dtls_identity_service,
+ certificate,
observer)) {
- return NULL;
+ return nullptr;
}
return PeerConnectionProxy::Create(signaling_thread(), pc);
}
+PortAllocatorFactoryInterface*
+PeerConnectionFactory::CreatePeerConnectionCommon(
+ PortAllocatorFactoryInterface* allocator_factory) {
+ DCHECK(signaling_thread_->IsCurrent());
+ DCHECK(allocator_factory || default_allocator_factory_);
+
+ PortAllocatorFactoryInterface* chosen_allocator_factory =
+ allocator_factory ? allocator_factory : default_allocator_factory_.get();
+ chosen_allocator_factory->SetNetworkIgnoreMask(options_.network_ignore_mask);
+
+ return chosen_allocator_factory;
+}
+
rtc::scoped_refptr<MediaStreamInterface>
PeerConnectionFactory::CreateLocalMediaStream(const std::string& label) {
DCHECK(signaling_thread_->IsCurrent());

Powered by Google App Engine
This is Rietveld 408576698