Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- - (BOOL)mountManualPointWithDictionary:(NSDictionary *)theDict
- {
- return [self mountManualPointWithDictionary:theDict softLink:TRUE returnString:nil];
- }
- - (BOOL)mountManualPointWithDictionary:(NSDictionary *)theDict returnString:(NSString * *)rstring
- {
- return [self mountManualPointWithDictionary:theDict softLink:TRUE returnString:rstring];
- }
- - (BOOL)mountManualPointWithDictionary:(NSDictionary *)theDict softLink:(BOOL)link returnString:(NSString * *)rstring
- {
- BRTextWithSpinnerController *theController = [[BRTextWithSpinnerController alloc]initWithTitle:BRLocalizedString(@"Mounting Volume",@"Mounting Volume")
- text:BRLocalizedString(@"Mounting Volume Please Wait...", @"text for spinning progress controller while waiting for mount to finish")];
- [[[BRApplicationStackManager singleton] stack] pushController:theController];
- NSDictionary *mountProps = theDict;
- int mountTypes = [[mountProps valueForKey:@"mountType"] intValue];
- int requiresAuth = [[mountProps valueForKey:@"requiresAuth"] intValue];
- NSString *mountLocation = [mountProps valueForKey:@"mountAddress"];
- NSString *userName = [mountProps valueForKey:@"userLogin"];
- NSString *userPassword = [mountProps valueForKey:@"userPassword"];
- NSString *volumeName = [mountProps valueForKey:@"mountVolume"];
- int customMount = [[mountProps valueForKey:@"customMount"] intValue];
- if (customMount == nil)
- customMount = 0;
- NSString *customPath = [mountProps valueForKey:@"customPath"];
- if (customPath == nil)
- customPath = @"";
- NSString *newDevice = [@"/Volumes" stringByAppendingPathComponent:[volumeName lastPathComponent]];
- NSString *newDir = [NSHomeDirectory() stringByAppendingPathComponent:@"Movies"];//[[RUIPreferenceManager sharedPreferences] stringForKey:@"mountLocation" forDomain:@"com.apple.frontrow.appliance.nitoTV"];
- NSMutableString *mutString = [[NSMutableString alloc] init];
- switch (mountTypes) {
- case 0:
- [mutString appendString:@"afp://"];
- if (requiresAuth == 0)
- {
- // [mutString appendString:userName];
- // [mutString appendString:@":"];
- // [mutString appendString:userPassword];
- // [mutString appendString:@"@"];
- [mutString appendString:[NSString stringWithFormat:@"%@:%@@",userName,userPassword,nil]];
- }
- [mutString appendString:mountLocation];
- [mutString appendString:@"/"];
- [mutString appendString:volumeName];
- break;
- case 1:
- if (requiresAuth == 0)
- {
- //[mutString appendString:userName];
- //[mutString appendString:@":"];
- //[mutString appendString:userPassword];
- //[mutString appendString:@"@"];
- }
- [mutString appendString:mountLocation];
- [mutString appendString:@":"];
- [mutString appendString:volumeName];
- break;
- case 2:
- [mutString appendString:@"//"];
- if (requiresAuth == 0)
- {
- [mutString appendString:userName];
- [mutString appendString:@":"];
- [mutString appendString:userPassword];
- [mutString appendString:@"@"];
- }
- [mutString appendString:mountLocation];
- [mutString appendString:@"/"];
- [mutString appendString:volumeName];
- break;
- }
- //[mutString appendString:@" "];
- //[mutString appendString:newDevice];
- //NSLog(@"mount_afp %@", mutString);
- NSFileManager *man = [NSFileManager defaultManager];
- if (![man fileExistsAtPath:newDevice])
- [man createDirectoryAtPath:newDevice attributes:nil];
- //NSString *zstring;
- BOOL success= [self mountPoint:mutString atPoint:newDevice ofType:mountTypes returnString:rstring];
- [[[BRApplicationStackManager singleton]stack]popController];
- //returnString=rstring;
- /*
- * Need to define Failure Response HERE
- */
- if (!success) //mount failed
- {
- BRAlertController *alertController = [BRAlertController alertOfType:0
- titled:BRLocalizedString(@"Network Mount Failed!", @"alert when network mount fails")
- primaryText:*rstring
- secondaryText:BRLocalizedString(@"Popping this Alert in 10 secs", @"secondary text when network mount fails")];
- [alertController retain];
- [[[BRApplicationStackManager singleton] stack] pushController:alertController];
- [self performSelector:@selector(popController:) withObject:alertController afterDelay:10.0];
- return FALSE;
- }
- //NSLog(@"returnString: %@",*rstring);
- if (customMount == 1)
- {
- newDevice = [newDevice stringByAppendingPathComponent:customPath];
- //NSLog(@"customDir: %@", newDevice);
- }
- if (link) {
- NSLog(@"linking %@ to %@",newDevice,newDir);
- [self linkDirectory:newDevice toPath:newDir];
- }
- NSLog(@"ending");
- return TRUE;
- }
- - (BOOL)mountPoint:(NSString *)inpoint atPoint:(NSString *)outPoint ofType:(int)theType returnString:(NSString * *)rstring
- {
- NSString *errorString = nil;
- NSFileManager *man = [NSFileManager defaultManager];
- NSTask *afpTask = [[NSTask alloc] init];
- NSPipe *afpPipe = [[NSPipe alloc] init];
- NSFileHandle *afpHandle = [afpPipe fileHandleForReading];
- NSMutableArray *afpArray = [[NSMutableArray alloc] init];
- NSString *mountTool = nil;
- if (theType == SMAFPMount)
- {
- mountTool = @"/sbin/mount_afp";
- if ([man fileExistsAtPath:mountTool])
- {
- [afpTask setLaunchPath:mountTool];
- } else {
- NSLog(@"FIXME: mount_afp missing, cannot mount");
- return FALSE;
- }
- } else if (theType == SMNFSMount) {
- mountTool = @"/sbin/mount_nfs";
- if ([man fileExistsAtPath:mountTool])
- {
- [afpTask setLaunchPath:mountTool];
- [afpArray addObject:@"-T"];
- [afpArray addObject:@"-b"];
- [afpArray addObject:@"-R"];
- [afpArray addObject:@"100"];
- } else {
- NSLog(@"FIXME: mount_nfs missing, cannot mount");
- return FALSE;
- }
- } else if (theType == SMSMBMount) {
- mountTool = @"/sbin/mount_smbfs";
- if ([man fileExistsAtPath:mountTool])
- {
- [afpTask setLaunchPath:mountTool];
- } else {
- NSLog(@"FIXME: mount_smbfs missing, cannot mount");
- return FALSE;
- }
- }
- [afpArray addObject:inpoint];
- [afpArray addObject:outPoint];
- [afpTask setArguments:afpArray];
- [afpTask setStandardError:afpPipe];
- [afpTask setStandardOutput:afpPipe];
- //NSLog(@"%@ %@", mountTool, [afpArray componentsJoinedByString:@" "]);
- //NSLog(@"mount %@", [afpArray componentsJoinedByString:@" "]);
- [afpTask launch];
- [afpTask waitUntilExit];
- NSData *outData;
- outData = [afpHandle readDataToEndOfFile];
- NSString *temp = [[NSString alloc] initWithData:outData encoding:NSASCIIStringEncoding];
- temp = [temp stringByTrimmingCharactersInSet:[NSCharacterSet whitespaceAndNewlineCharacterSet]];
- int theTerm = [afpTask terminationStatus];
- NSLog(@"mountTask terminated with status: %i", theTerm);
- [afpArray release];
- [afpTask release];
- afpTask = nil;
- [afpPipe release];
- afpPipe = nil;
- if (rstring!=nil) {
- *rstring=[NSString stringWithString:temp];
- }
- //[temp release];
- switch (theTerm)
- {
- case 0: //success
- NSLog(@"mount success!");
- return TRUE;
- break;
- default: //anything BUT success
- errorString = temp;
- NSLog(@"failed with error: %@", temp);
- return FALSE;
- break;
- }
- return FALSE;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement