If the bucket plist is missing, skip trying to read the bucket name.

This commit is contained in:
Stefan Reitshamer 2013-03-09 07:19:18 -05:00
parent 1e5fc7028b
commit d4466f4314

View file

@ -229,30 +229,27 @@
} }
} }
NSData *data = [s3 dataAtPath:path error:error]; NSString *bucketName = @"(unknown)";
if (data == nil) { NSData *data = [s3 dataAtPath:path error:NULL];
return NO; if (data != nil) {
} if (!strncmp([data bytes], "encrypted", 9)) {
data = [data subdataWithRange:NSMakeRange(9, [data length] - 9)];
if (!strncmp([data bytes], "encrypted", 9)) { CryptoKey *cryptoKey = [[[CryptoKey alloc] initWithPassword:encryptionPassword salt:salt error:error] autorelease];
data = [data subdataWithRange:NSMakeRange(9, [data length] - 9)]; if (cryptoKey == nil) {
CryptoKey *cryptoKey = [[[CryptoKey alloc] initWithPassword:encryptionPassword salt:salt error:error] autorelease]; return NO;
if (cryptoKey == nil) { }
return NO; data = [data decryptWithCryptoKey:cryptoKey error:error];
if (data == nil) {
HSLogError(@"failed to decrypt %@", path);
return NO;
}
} }
data = [data decryptWithCryptoKey:cryptoKey error:error]; DictNode *plist = [DictNode dictNodeWithXMLData:data error:NULL];
if (data == nil) { if (plist != nil) {
HSLogError(@"failed to decrypt %@", path); bucketName = [[plist stringNodeForKey:@"BucketName"] stringValue];
return NO;
} }
} }
DictNode *plist = [DictNode dictNodeWithXMLData:data error:error];
if (plist == nil) {
return NO;
}
NSString *bucketName = [[plist stringNodeForKey:@"BucketName"] stringValue];
NSError *uacError = nil; NSError *uacError = nil;
NSData *uacData = [s3 dataAtPath:[NSString stringWithFormat:@"/%@/%@/computerinfo", s3BucketName, computerUUID] error:&uacError]; NSData *uacData = [s3 dataAtPath:[NSString stringWithFormat:@"/%@/%@/computerinfo", s3BucketName, computerUUID] error:&uacError];
UserAndComputer *uac = nil; UserAndComputer *uac = nil;