@@ -50,12 +50,7 @@ typedef void (^SRProxyConnectionCompletion)(NSError *error, NSInputStream *readS
if (!self) return self;
_url = url;
-
- NSString *scheme = url.scheme.lowercaseString;
- if ([scheme isEqualToString:@"wss"] || [scheme isEqualToString:@"https"]) {
- _secure = YES;
- }
+ _connectionRequiresSSL = SRURLRequiresSSL(url);
_writeQueue = [[NSOperationQueue alloc] init];
_inputQueue = [NSMutableArray arrayWithCapacity:2];
@@ -15,6 +15,8 @@ NS_ASSUME_NONNULL_BEGIN
// So instead, just map ws -> http and wss -> https.
extern NSString *SRURLOrigin(NSURL *url);
+extern BOOL SRURLRequiresSSL(NSURL *url);
+
// Extracts `user` and `password` from url (if available) into `Basic base64(user:password)`.
extern NSString *_Nullable SRBasicAuthorizationHeaderFromURL(NSURL *url);
@@ -33,6 +33,12 @@ NSString *SRURLOrigin(NSURL *url)
return origin;
}
+extern BOOL SRURLRequiresSSL(NSURL *url)
+{
+ NSString *scheme = url.scheme.lowercaseString;
+ return ([scheme isEqualToString:@"wss"] || [scheme isEqualToString:@"https"]);
+}
extern NSString *_Nullable SRBasicAuthorizationHeaderFromURL(NSURL *url)
{
NSData *data = [[NSString stringWithFormat:@"%@:%@", url.user, url.password] dataUsingEncoding:NSUTF8StringEncoding];
@@ -163,12 +163,7 @@ NSString *const SRHTTPResponseErrorKey = @"HTTPResponseStatusCode";
_requestedProtocols = [protocols copy];
- NSString *scheme = _url.scheme.lowercaseString;
- assert([scheme isEqualToString:@"ws"] || [scheme isEqualToString:@"http"] || [scheme isEqualToString:@"wss"] || [scheme isEqualToString:@"https"]);
+ _secure = SRURLRequiresSSL(_url);
_readyState = SR_CONNECTING;