diff --git a/Limelight/AppDelegate.m b/Limelight/AppDelegate.m index ecfae4b..68f6d47 100644 --- a/Limelight/AppDelegate.m +++ b/Limelight/AppDelegate.m @@ -142,7 +142,9 @@ static NSOperationQueue* mainQueue; } - (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"]; #else return [[self applicationDocumentsDirectory] URLByAppendingPathComponent:@"moonlight_mac.sqlite"]; diff --git a/Limelight/Crypto/CryptoManager.m b/Limelight/Crypto/CryptoManager.m index 38b4e8b..a47ec3d 100644 --- a/Limelight/Crypto/CryptoManager.m +++ b/Limelight/Crypto/CryptoManager.m @@ -162,7 +162,7 @@ static NSData* p12 = nil; // TODO: these three methods are almost identical, fix the copy-pasta + (NSData*) readCertFromFile { if (cert == nil) { - NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES); + NSArray *paths = [CryptoManager getPaths]; NSString *documentsDirectory = [paths objectAtIndex:0]; NSString *certFile = [documentsDirectory stringByAppendingPathComponent:@"client.crt"]; cert = [NSData dataWithContentsOfFile:certFile]; @@ -172,7 +172,7 @@ static NSData* p12 = nil; + (NSData*) readP12FromFile { if (p12 == nil) { - NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES); + NSArray *paths = [CryptoManager getPaths]; NSString *documentsDirectory = [paths objectAtIndex:0]; NSString *p12File = [documentsDirectory stringByAppendingPathComponent:@"client.p12"]; p12 = [NSData dataWithContentsOfFile:p12File]; @@ -182,7 +182,7 @@ static NSData* p12 = nil; + (NSData*) readKeyFromFile { if (key == nil) { - NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES); + NSArray *paths = [CryptoManager getPaths]; NSString *documentsDirectory = [paths objectAtIndex:0]; NSString *keyFile = [documentsDirectory stringByAppendingPathComponent:@"client.key"]; key = [NSData dataWithContentsOfFile:keyFile]; @@ -191,7 +191,7 @@ static NSData* p12 = nil; } + (bool) keyPairExists { - NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES); + NSArray *paths = [CryptoManager getPaths]; NSString *documentsDirectory = [paths objectAtIndex:0]; NSString *keyFile = [documentsDirectory stringByAppendingPathComponent:@"client.key"]; NSString *p12File = [documentsDirectory stringByAppendingPathComponent:@"client.p12"]; @@ -226,7 +226,7 @@ static NSData* p12 = nil; Log(LOG_I, @"Generating Certificate... "); CertKeyPair certKeyPair = generateCertKeyPair(); - NSArray* paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES); + NSArray* paths = [CryptoManager getPaths]; NSString* documentsDirectory = [paths objectAtIndex:0]; NSString* certFile = [documentsDirectory stringByAppendingPathComponent:@"client.crt"]; 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