Changing directories for storage on tvOS because tvOS does not allow permanent storage

This commit is contained in:
Diego Waxemberg
2018-08-26 21:54:49 -07:00
parent 293dc26b2e
commit 44550baaa9
2 changed files with 16 additions and 6 deletions
+3 -1
View File
@@ -142,7 +142,9 @@ static NSOperationQueue* mainQueue;
} }
- (NSURL*) getStoreURL { - (NSURL*) getStoreURL {
#if TARGET_OS_IPHONE #if TARGET_OS_TV
return [[[[NSFileManager defaultManager] URLsForDirectory:NSCachesDirectory inDomains:NSUserDomainMask] lastObject] URLByAppendingPathComponent:@"Moonlight_tvOS.sqlite"];
#elif TARGET_OS_IPHONE
return [[self applicationDocumentsDirectory] URLByAppendingPathComponent:@"Limelight_iOS.sqlite"]; return [[self applicationDocumentsDirectory] URLByAppendingPathComponent:@"Limelight_iOS.sqlite"];
#else #else
return [[self applicationDocumentsDirectory] URLByAppendingPathComponent:@"moonlight_mac.sqlite"]; return [[self applicationDocumentsDirectory] URLByAppendingPathComponent:@"moonlight_mac.sqlite"];
+13 -5
View File
@@ -162,7 +162,7 @@ static NSData* p12 = nil;
// TODO: these three methods are almost identical, fix the copy-pasta // TODO: these three methods are almost identical, fix the copy-pasta
+ (NSData*) readCertFromFile { + (NSData*) readCertFromFile {
if (cert == nil) { if (cert == nil) {
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES); NSArray *paths = [CryptoManager getPaths];
NSString *documentsDirectory = [paths objectAtIndex:0]; NSString *documentsDirectory = [paths objectAtIndex:0];
NSString *certFile = [documentsDirectory stringByAppendingPathComponent:@"client.crt"]; NSString *certFile = [documentsDirectory stringByAppendingPathComponent:@"client.crt"];
cert = [NSData dataWithContentsOfFile:certFile]; cert = [NSData dataWithContentsOfFile:certFile];
@@ -172,7 +172,7 @@ static NSData* p12 = nil;
+ (NSData*) readP12FromFile { + (NSData*) readP12FromFile {
if (p12 == nil) { if (p12 == nil) {
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES); NSArray *paths = [CryptoManager getPaths];
NSString *documentsDirectory = [paths objectAtIndex:0]; NSString *documentsDirectory = [paths objectAtIndex:0];
NSString *p12File = [documentsDirectory stringByAppendingPathComponent:@"client.p12"]; NSString *p12File = [documentsDirectory stringByAppendingPathComponent:@"client.p12"];
p12 = [NSData dataWithContentsOfFile:p12File]; p12 = [NSData dataWithContentsOfFile:p12File];
@@ -182,7 +182,7 @@ static NSData* p12 = nil;
+ (NSData*) readKeyFromFile { + (NSData*) readKeyFromFile {
if (key == nil) { if (key == nil) {
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES); NSArray *paths = [CryptoManager getPaths];
NSString *documentsDirectory = [paths objectAtIndex:0]; NSString *documentsDirectory = [paths objectAtIndex:0];
NSString *keyFile = [documentsDirectory stringByAppendingPathComponent:@"client.key"]; NSString *keyFile = [documentsDirectory stringByAppendingPathComponent:@"client.key"];
key = [NSData dataWithContentsOfFile:keyFile]; key = [NSData dataWithContentsOfFile:keyFile];
@@ -191,7 +191,7 @@ static NSData* p12 = nil;
} }
+ (bool) keyPairExists { + (bool) keyPairExists {
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES); NSArray *paths = [CryptoManager getPaths];
NSString *documentsDirectory = [paths objectAtIndex:0]; NSString *documentsDirectory = [paths objectAtIndex:0];
NSString *keyFile = [documentsDirectory stringByAppendingPathComponent:@"client.key"]; NSString *keyFile = [documentsDirectory stringByAppendingPathComponent:@"client.key"];
NSString *p12File = [documentsDirectory stringByAppendingPathComponent:@"client.p12"]; NSString *p12File = [documentsDirectory stringByAppendingPathComponent:@"client.p12"];
@@ -226,7 +226,7 @@ static NSData* p12 = nil;
Log(LOG_I, @"Generating Certificate... "); Log(LOG_I, @"Generating Certificate... ");
CertKeyPair certKeyPair = generateCertKeyPair(); CertKeyPair certKeyPair = generateCertKeyPair();
NSArray* paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES); NSArray* paths = [CryptoManager getPaths];
NSString* documentsDirectory = [paths objectAtIndex:0]; NSString* documentsDirectory = [paths objectAtIndex:0];
NSString* certFile = [documentsDirectory stringByAppendingPathComponent:@"client.crt"]; NSString* certFile = [documentsDirectory stringByAppendingPathComponent:@"client.crt"];
NSString* keyPairFile = [documentsDirectory stringByAppendingPathComponent:@"client.key"]; NSString* keyPairFile = [documentsDirectory stringByAppendingPathComponent:@"client.key"];
@@ -240,4 +240,12 @@ static NSData* p12 = nil;
}); });
} }
+ (NSArray*) getPaths {
#if TARGET_OS_TV
return NSSearchPathForDirectoriesInDomains(NSCachesDirectory, NSUserDomainMask, YES);
#else
return NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
#endif
}
@end @end