Index: webrtc/sdk/objc/Framework/Classes/PeerConnection/RTCIceServer.mm |
diff --git a/webrtc/sdk/objc/Framework/Classes/PeerConnection/RTCIceServer.mm b/webrtc/sdk/objc/Framework/Classes/PeerConnection/RTCIceServer.mm |
index 7f276580b522ad62c3ff70da3c192595d8789aa1..b511da96bfb5a73269836af57742d9e1d621ce09 100644 |
--- a/webrtc/sdk/objc/Framework/Classes/PeerConnection/RTCIceServer.mm |
+++ b/webrtc/sdk/objc/Framework/Classes/PeerConnection/RTCIceServer.mm |
@@ -19,6 +19,7 @@ |
@synthesize credential = _credential; |
@synthesize tlsCertPolicy = _tlsCertPolicy; |
@synthesize hostname = _hostname; |
+@synthesize tlsAlpnProtocols = _tlsAlpnProtocols; |
- (instancetype)initWithURLStrings:(NSArray<NSString *> *)urlStrings { |
return [self initWithURLStrings:urlStrings |
@@ -51,6 +52,20 @@ |
credential:(NSString *)credential |
tlsCertPolicy:(RTCTlsCertPolicy)tlsCertPolicy |
hostname:(NSString *)hostname { |
+ return [self initWithURLStrings:urlStrings |
+ username:username |
+ credential:credential |
+ tlsCertPolicy:tlsCertPolicy |
+ hostname:hostname |
+ tlsAlpnProtocols:[NSMutableArray new]]; |
+} |
+ |
+- (instancetype)initWithURLStrings:(NSArray<NSString *> *)urlStrings |
+ username:(NSString *)username |
+ credential:(NSString *)credential |
+ tlsCertPolicy:(RTCTlsCertPolicy)tlsCertPolicy |
+ hostname:(NSString *)hostname |
+ tlsAlpnProtocols:(NSArray<NSString *> *)tlsAlpnProtocols { |
NSParameterAssert(urlStrings.count); |
if (self = [super init]) { |
_urlStrings = [[NSArray alloc] initWithArray:urlStrings copyItems:YES]; |
@@ -58,17 +73,20 @@ |
_credential = [credential copy]; |
_tlsCertPolicy = tlsCertPolicy; |
_hostname = [hostname copy]; |
+ _tlsAlpnProtocols = |
+ [[NSArray alloc] initWithArray:tlsAlpnProtocols copyItems:YES]; |
} |
return self; |
} |
- (NSString *)description { |
- return [NSString stringWithFormat:@"RTCIceServer:\n%@\n%@\n%@\n%@\n%@", |
+ return [NSString stringWithFormat:@"RTCIceServer:\n%@\n%@\n%@\n%@\n%@\n%@", |
_urlStrings, |
_username, |
_credential, |
[self stringForTlsCertPolicy:_tlsCertPolicy], |
- _hostname]; |
+ _hostname, |
+ _tlsAlpnProtocols]; |
} |
#pragma mark - Private |
@@ -89,6 +107,12 @@ |
iceServer.password = [NSString stdStringForString:_credential]; |
iceServer.hostname = [NSString stdStringForString:_hostname]; |
+ [_tlsAlpnProtocols enumerateObjectsUsingBlock:^(NSString *proto, |
+ NSUInteger idx, |
+ BOOL *stop) { |
+ iceServer.tls_alpn_protocols.push_back(proto.stdString); |
+ }]; |
+ |
[_urlStrings enumerateObjectsUsingBlock:^(NSString *url, |
NSUInteger idx, |
BOOL *stop) { |
@@ -118,6 +142,11 @@ |
NSString *username = [NSString stringForStdString:nativeServer.username]; |
NSString *credential = [NSString stringForStdString:nativeServer.password]; |
NSString *hostname = [NSString stringForStdString:nativeServer.hostname]; |
+ NSMutableArray *tlsAlpnProtocols = |
+ [NSMutableArray arrayWithCapacity:nativeServer.tls_alpn_protocols.size()]; |
+ for (auto const &proto : nativeServer.tls_alpn_protocols) { |
+ [tlsAlpnProtocols addObject:[NSString stringForStdString:proto]]; |
+ } |
RTCTlsCertPolicy tlsCertPolicy; |
switch (nativeServer.tls_cert_policy) { |
@@ -133,7 +162,8 @@ |
username:username |
credential:credential |
tlsCertPolicy:tlsCertPolicy |
- hostname:hostname]; |
+ hostname:hostname |
+ tlsAlpnProtocols:tlsAlpnProtocols]; |
return self; |
} |