mirror of
https://github.com/smallmain/cocos-enhance-kit.git
synced 2025-01-15 07:21:07 +00:00
78 lines
2.6 KiB
Objective-C
78 lines
2.6 KiB
Objective-C
//
|
|
// Copyright (c) 2016-present, Facebook, Inc.
|
|
// All rights reserved.
|
|
//
|
|
// This source code is licensed under the BSD-style license found in the
|
|
// LICENSE file in the root directory of this source tree. An additional grant
|
|
// of patent rights can be found in the PATENTS file in the same directory.
|
|
//
|
|
|
|
#import "SRURLUtilities.h"
|
|
|
|
#import "SRHash.h"
|
|
|
|
NS_ASSUME_NONNULL_BEGIN
|
|
|
|
NSString *SRURLOrigin(NSURL *url)
|
|
{
|
|
NSMutableString *origin = [NSMutableString string];
|
|
|
|
NSString *scheme = url.scheme.lowercaseString;
|
|
if ([scheme isEqualToString:@"wss"]) {
|
|
scheme = @"https";
|
|
} else if ([scheme isEqualToString:@"ws"]) {
|
|
scheme = @"http";
|
|
}
|
|
[origin appendFormat:@"%@://%@", scheme, url.host];
|
|
|
|
NSNumber *port = url.port;
|
|
BOOL portIsDefault = (!port ||
|
|
([scheme isEqualToString:@"http"] && port.integerValue == 80) ||
|
|
([scheme isEqualToString:@"https"] && port.integerValue == 443));
|
|
if (!portIsDefault) {
|
|
[origin appendFormat:@":%@", port.stringValue];
|
|
}
|
|
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];
|
|
return [NSString stringWithFormat:@"Basic %@", SRBase64EncodedStringFromData(data)];
|
|
}
|
|
|
|
extern NSString *_Nullable SRStreamNetworkServiceTypeFromURLRequest(NSURLRequest *request)
|
|
{
|
|
NSString *networkServiceType = nil;
|
|
switch (request.networkServiceType) {
|
|
case NSURLNetworkServiceTypeDefault:
|
|
break;
|
|
case NSURLNetworkServiceTypeVoIP:
|
|
networkServiceType = NSStreamNetworkServiceTypeVoIP;
|
|
break;
|
|
case NSURLNetworkServiceTypeVideo:
|
|
networkServiceType = NSStreamNetworkServiceTypeVideo;
|
|
break;
|
|
case NSURLNetworkServiceTypeBackground:
|
|
networkServiceType = NSStreamNetworkServiceTypeBackground;
|
|
break;
|
|
case NSURLNetworkServiceTypeVoice:
|
|
networkServiceType = NSStreamNetworkServiceTypeVoice;
|
|
break;
|
|
#if (__MAC_OS_X_VERSION_MAX_ALLOWED >= 101200 || __IPHONE_OS_VERSION_MAX_ALLOWED >= 100000 || __TV_OS_VERSION_MAX_ALLOWED >= 100000 || __WATCH_OS_VERSION_MAX_ALLOWED >= 30000)
|
|
case NSURLNetworkServiceTypeCallSignaling:
|
|
networkServiceType = NSStreamNetworkServiceTypeCallSignaling;
|
|
break;
|
|
#endif
|
|
}
|
|
return networkServiceType;
|
|
}
|
|
|
|
NS_ASSUME_NONNULL_END
|