diff --git a/webrtc/sdk/objc/Framework/Classes/RTCConfiguration+Private.h b/webrtc/sdk/objc/Framework/Classes/RTCConfiguration+Private.h index 4c020f9588..7f90b35246 100644 --- a/webrtc/sdk/objc/Framework/Classes/RTCConfiguration+Private.h +++ b/webrtc/sdk/objc/Framework/Classes/RTCConfiguration+Private.h @@ -16,13 +16,6 @@ NS_ASSUME_NONNULL_BEGIN @interface RTCConfiguration () -/** - * RTCConfiguration struct representation of this RTCConfiguration. This is - * needed to pass to the underlying C++ APIs. - */ -@property(nonatomic, readonly) - webrtc::PeerConnectionInterface::RTCConfiguration* nativeConfiguration; - + (webrtc::PeerConnectionInterface::IceTransportsType) nativeTransportsTypeForTransportPolicy:(RTCIceTransportPolicy)policy; @@ -55,6 +48,13 @@ NS_ASSUME_NONNULL_BEGIN + (NSString *)stringForTcpCandidatePolicy:(RTCTcpCandidatePolicy)policy; +/** + * RTCConfiguration struct representation of this RTCConfiguration. This is + * needed to pass to the underlying C++ APIs. + */ +- (webrtc::PeerConnectionInterface::RTCConfiguration *) + createNativeConfiguration; + @end NS_ASSUME_NONNULL_END diff --git a/webrtc/sdk/objc/Framework/Classes/RTCConfiguration.mm b/webrtc/sdk/objc/Framework/Classes/RTCConfiguration.mm index 5beae99ed9..0a63f69fd9 100644 --- a/webrtc/sdk/objc/Framework/Classes/RTCConfiguration.mm +++ b/webrtc/sdk/objc/Framework/Classes/RTCConfiguration.mm @@ -75,7 +75,8 @@ #pragma mark - Private -- (webrtc::PeerConnectionInterface::RTCConfiguration*)nativeConfiguration { +- (webrtc::PeerConnectionInterface::RTCConfiguration *) + createNativeConfiguration { std::unique_ptr nativeConfig(new webrtc::PeerConnectionInterface::RTCConfiguration()); @@ -105,7 +106,7 @@ rtc::RTCCertificateGenerator::GenerateCertificate( rtc::KeyParams(keyType), rtc::Optional()); if (!certificate) { - RTCLogWarning(@"Failed to generate certificate."); + RTCLogError(@"Failed to generate certificate."); return nullptr; } nativeConfig->certificates.push_back(certificate); diff --git a/webrtc/sdk/objc/Framework/Classes/RTCPeerConnection.mm b/webrtc/sdk/objc/Framework/Classes/RTCPeerConnection.mm index b91a200215..9a488fdf49 100644 --- a/webrtc/sdk/objc/Framework/Classes/RTCPeerConnection.mm +++ b/webrtc/sdk/objc/Framework/Classes/RTCPeerConnection.mm @@ -199,9 +199,10 @@ void PeerConnectionDelegateAdapter::OnIceCandidate( delegate:(id)delegate { NSParameterAssert(factory); std::unique_ptr config( - configuration.nativeConfiguration); - if (!config) - return nullptr; + [configuration createNativeConfiguration]); + if (!config) { + return nil; + } if (self = [super init]) { _observer.reset(new webrtc::PeerConnectionDelegateAdapter(self)); std::unique_ptr nativeConstraints = @@ -255,9 +256,10 @@ void PeerConnectionDelegateAdapter::OnIceCandidate( - (BOOL)setConfiguration:(RTCConfiguration *)configuration { std::unique_ptr config( - configuration.nativeConfiguration); - if (!config) - return false; + [configuration createNativeConfiguration]); + if (!config) { + return NO; + } return _peerConnection->SetConfiguration(*config); } diff --git a/webrtc/sdk/objc/Framework/UnitTests/RTCConfigurationTest.mm b/webrtc/sdk/objc/Framework/UnitTests/RTCConfigurationTest.mm index 9dec115210..f565adbefd 100644 --- a/webrtc/sdk/objc/Framework/UnitTests/RTCConfigurationTest.mm +++ b/webrtc/sdk/objc/Framework/UnitTests/RTCConfigurationTest.mm @@ -45,7 +45,8 @@ RTCContinualGatheringPolicyGatherContinually; std::unique_ptr - nativeConfig(config.nativeConfiguration); + nativeConfig([config createNativeConfiguration]); + EXPECT_TRUE(nativeConfig.get()); EXPECT_EQ(1u, nativeConfig->servers.size()); webrtc::PeerConnectionInterface::IceServer nativeServer = nativeConfig->servers.front();