Skip to content

Commit

Permalink
Update code conventions and fixing some stupid bugs.
Browse files Browse the repository at this point in the history
  • Loading branch information
Michael Gorbach committed Sep 23, 2009
1 parent a145ab6 commit 435a21b
Show file tree
Hide file tree
Showing 26 changed files with 2,333 additions and 913 deletions.
228 changes: 81 additions & 147 deletions FTPFS/FTPFSDelegate.m
Original file line number Diff line number Diff line change
Expand Up @@ -23,203 +23,148 @@
#import <Security/Security.h>
#import "MFClientFSUI.h"

static NSString* primaryViewControllerKey = @"sshfsPrimaryView";
static NSString* advancedViewControllerKey = @"sshfsAdvancedView";
static NSString *primaryViewControllerKey = @"sshfsPrimaryView";
static NSString *advancedViewControllerKey = @"sshfsAdvancedView";


@implementation FTPFSDelegate

#pragma mark Plugin Info
- (NSString*)askpassPath
{
return [[NSBundle bundleForClass: [self class]]
pathForResource:@"ftpfs_askpass"
ofType:nil
inDirectory:nil];
- (NSString *)askpassPath {
return [[NSBundle bundleForClass: [self class]] pathForResource:@"ftpfs_askpass" ofType:nil inDirectory:nil];
}


- (NSString*)executablePath
{
return [[NSBundle bundleForClass: [self class]]
pathForResource:@"curlftpfs_static_mg"
ofType:nil
inDirectory:nil];
- (NSString *)executablePath {
return [[NSBundle bundleForClass: [self class]] pathForResource:@"curlftpfs_static_mg" ofType:nil inDirectory:nil];
}

- (NSArray*)secretsClientsList;
{
- (NSArray *)secretsClientsList {
return [NSArray arrayWithObjects: [self askpassPath], nil];
}

#pragma mark Mounting
- (NSArray*)taskArgumentsForParameters:(NSDictionary*)parameters
{
- (NSArray *)taskArgumentsForParameters:(NSDictionary *)parameters {
NSMutableArray* arguments = [NSMutableArray array];
[arguments addObject: [NSString stringWithFormat:@"%@:%@/%@",
[parameters objectForKey: kNetFSHostParameter],
[parameters objectForKey: kNetFSPortParameter],
[parameters objectForKey: kNetFSDirectoryParameter]]];
[arguments addObject: [NSString stringWithFormat:@"%@:%@/%@", [parameters objectForKey: kNetFSHostParameter], [parameters objectForKey: kNetFSPortParameter], [parameters objectForKey: kNetFSDirectoryParameter]]];

[arguments addObject: [parameters objectForKey: kMFFSMountPathParameter ]];
[arguments addObject:[parameters objectForKey: kMFFSMountPathParameter]];

if ([parameters objectForKey: kNetFSUserParameter])
[arguments addObject: [NSString stringWithFormat: @"-ouser=%@",
[parameters objectForKey: kNetFSUserParameter]]];
if ([parameters objectForKey: kNetFSUserParameter]) {
[arguments addObject: [NSString stringWithFormat: @"-ouser=%@", [parameters objectForKey: kNetFSUserParameter]]];
}

[arguments addObject: [NSString stringWithFormat: @"-ovolname=%@",
[parameters objectForKey: kMFFSVolumeNameParameter]]];
[arguments addObject: [NSString stringWithFormat: @"-ovolname=%@", [parameters objectForKey: kMFFSVolumeNameParameter]]];
[arguments addObject: @"-f"];
[arguments addObject: [NSString stringWithFormat: @"-ovolicon=%@",
[parameters objectForKey: kMFFSVolumeIconPathParameter]]];
[arguments addObject: [NSString stringWithFormat: @"-ovolicon=%@", [parameters objectForKey: kMFFSVolumeIconPathParameter]]];
[arguments addObject: [NSString stringWithFormat: @"-odefer_permissions"]];
return [arguments copy];
}

- (NSDictionary*)taskEnvironmentForParameters:(NSDictionary*)params
{
NSMutableDictionary* env = [NSMutableDictionary dictionaryWithDictionary:
[[NSProcessInfo processInfo] environment]];
[env setObject: mfsecTokenForFilesystemWithUUID([params objectForKey: KMFFSUUIDParameter])
forKey: @"FTPFS_TOKEN"];
- (NSDictionary*)taskEnvironmentForParameters:(NSDictionary *)params {
NSMutableDictionary* env = [NSMutableDictionary dictionaryWithDictionary: [[NSProcessInfo processInfo] environment]];
[env setObject: mfsecTokenForFilesystemWithUUID([params objectForKey: KMFFSUUIDParameter]) forKey: @"FTPFS_TOKEN"];
[env setObject: [self askpassPath] forKey:@"FTPFS_ASKPASS"];

return [env copy];
}

# pragma mark Quickmount
- (NSArray*)urlSchemesHandled
{
- (NSArray*)urlSchemesHandled {
return [NSArray arrayWithObjects: @"ftp", nil];
}

- (NSDictionary*)parameterDictionaryForURL:(NSURL*)url
error:(NSError**)error
{
- (NSDictionary *)parameterDictionaryForURL:(NSURL *)url error:(NSError**)error {
NSString* host = [url host];
NSString* userName = [url user];
NSNumber* port = [url port];
NSString* directory = [url relativePath];

NSMutableDictionary* params = [[self defaultParameterDictionary] mutableCopy];
if (host)
if (host) {
[params setObject:host forKey:kNetFSHostParameter];
if (userName)
}
if (userName) {
[params setObject:userName forKey:kNetFSUserParameter];
if (port)
}
if (port) {
[params setObject:port forKey:kNetFSPortParameter];
if (directory)
}
if (directory) {
[params setObject:directory forKey:kNetFSDirectoryParameter];
}

return [params copy];
}

# pragma mark Parameters
- (NSArray*)parameterList
{
return [NSArray arrayWithObjects: kNetFSUserParameter,
kNetFSHostParameter, kNetFSDirectoryParameter, kNetFSUserParameter,
- (NSArray *)parameterList {
return [NSArray arrayWithObjects: kNetFSUserParameter, kNetFSHostParameter, kNetFSDirectoryParameter, kNetFSUserParameter,
kNetFSPortParameter, kNetFSProtocolParameter, nil ];
}

- (NSArray*)secretsList
{
- (NSArray*)secretsList {
return [NSArray arrayWithObjects: kNetFSPasswordParameter, nil];
}

- (NSDictionary*)defaultParameterDictionary
{
NSDictionary* defaultParameters = [NSDictionary dictionaryWithObjectsAndKeys:
@"", kNetFSDirectoryParameter,
[NSNumber numberWithInt: 21], kNetFSPortParameter,
[NSNumber numberWithInt: kSecProtocolTypeFTP], kNetFSProtocolParameter,
nil];
- (NSDictionary *)defaultParameterDictionary {
NSDictionary *defaultParameters = [NSDictionary dictionaryWithObjectsAndKeys:@"", kNetFSDirectoryParameter, [NSNumber numberWithInt: 21], kNetFSPortParameter, [NSNumber numberWithInt: kSecProtocolTypeFTP], kNetFSProtocolParameter, nil];

return defaultParameters;
}

- (NSString*)descriptionForParameters:(NSDictionary*)parameters
{
NSString* description = nil;
if ( ![parameters objectForKey: kNetFSHostParameter] )
{
- (NSString*)descriptionForParameters:(NSDictionary *)parameters {
NSString *description = nil;
if (![parameters objectForKey: kNetFSHostParameter]) {
description = @"No host specified";
}
else
{
if( [parameters objectForKey: kNetFSUserParameter] &&
![[parameters objectForKey: kNetFSUserParameter] isEqualTo: NSUserName()])
{
description = [NSString stringWithFormat:@"%@@%@",
[parameters objectForKey: kNetFSUserParameter],
[parameters objectForKey: kNetFSHostParameter]];
}
else
{
description = [NSString stringWithString:
[parameters objectForKey: kNetFSHostParameter]];
} else {
if( [parameters objectForKey: kNetFSUserParameter] && ![[parameters objectForKey: kNetFSUserParameter] isEqualTo: NSUserName()]) {
description = [NSString stringWithFormat:@"%@@%@", [parameters objectForKey: kNetFSUserParameter], [parameters objectForKey: kNetFSHostParameter]];
} else {
description = [NSString stringWithString:[parameters objectForKey: kNetFSHostParameter]];
}
}

return description;
}

- (id)impliedValueParameterNamed:(NSString*)parameterName
otherParameters:(NSDictionary*)parameters;
{
if ([parameterName isEqualToString: kMFFSMountPathParameter] &&
[parameters objectForKey: kNetFSHostParameter] )
{
NSString* mountBathBase =
[parameters objectForKey: kMFFSNameParameter] ?
[parameters objectForKey: kMFFSNameParameter] :
[parameters objectForKey: kNetFSHostParameter];
- (id)impliedValueParameterNamed:(NSString*)parameterName otherParameters:(NSDictionary*)parameters {
if ([parameterName isEqualToString: kMFFSMountPathParameter] && [parameters objectForKey: kNetFSHostParameter]) {
NSString* mountBathBase = [parameters objectForKey: kMFFSNameParameter] ? [parameters objectForKey: kMFFSNameParameter] : [parameters objectForKey: kNetFSHostParameter];

NSString* mountPath = [NSString stringWithFormat:
@"/Volumes/%@", mountBathBase];
NSString* mountPath = [NSString stringWithFormat:@"/Volumes/%@", mountBathBase];
return mountPath;
}
if ([parameterName isEqualToString: kMFFSVolumeNameParameter] &&
[parameters objectForKey: kNetFSHostParameter] )
{

if ([parameterName isEqualToString: kMFFSVolumeNameParameter] && [parameters objectForKey: kNetFSHostParameter]) {
return [parameters objectForKey: kNetFSHostParameter];
}

if ([parameterName isEqualToString: kMFFSVolumeIconPathParameter])
{
return [[NSBundle bundleForClass: [self class]]
pathForImageResource:@"ftpfs_icon"];
if ([parameterName isEqualToString: kMFFSVolumeIconPathParameter]) {
return [[NSBundle bundleForClass: [self class]] pathForImageResource:@"ftpfs_icon"];
}
if ([parameterName isEqualToString: kMFFSVolumeImagePathParameter])
{
return [[NSBundle bundleForClass: [self class]]
pathForImageResource: @"ftpfs"];

if ([parameterName isEqualToString: kMFFSVolumeImagePathParameter]) {
return [[NSBundle bundleForClass: [self class]] pathForImageResource: @"ftpfs"];
}
if ([parameterName isEqualToString: kMFFSNameParameter])

if ([parameterName isEqualToString: kMFFSNameParameter]) {
return [parameters objectForKey: kNetFSHostParameter];
}

return nil;
}

# pragma mark Validation
- (BOOL)validateValue:(id)value
forParameterName:(NSString*)paramName
error:(NSError**)error
{
if ([paramName isEqualToString: kNetFSPortParameter ])
{
- (BOOL)validateValue:(id)value forParameterName:(NSString *)paramName error:(NSError **)error {
if ([paramName isEqualToString: kNetFSPortParameter ]) {
NSNumber* converted = [NSNumber numberWithInt: [value intValue]];
if( [converted isKindOfClass: [NSNumber class]] &&
[converted intValue] > 0 &&
[converted intValue] < 65535 )
{
if( [converted isKindOfClass: [NSNumber class]] && [converted intValue] > 0 && [converted intValue] < 65535 ) {
return YES;
}
else
{
*error = [MFError invalidParameterValueErrorWithParameterName: kNetFSPortParameter
value: value
description: @"Must be positive number < 10000"];
} else {
if (error) {
*error = [MFError invalidParameterValueErrorWithParameterName:kNetFSPortParameter value: value description: @"Must be positive number < 10000"];
}
return NO;
}
}
Expand All @@ -228,66 +173,55 @@ - (BOOL)validateValue:(id)value
}

- (BOOL)validateParameters:(NSDictionary*)parameters
error:(NSError**)error
{
for (NSString* paramName in [parameters allKeys])
{
BOOL ok = [self validateValue: [parameters objectForKey: paramName]
forParameterName: paramName
error:(NSError**)error {
for (NSString* paramName in [parameters allKeys]) {
BOOL ok = [self validateValue: [parameters objectForKey: paramName] forParameterName: paramName
error: error];

if (!ok)
{
if (!ok) {
return NO;
}
}

if (![parameters objectForKey: kNetFSHostParameter])
{
*error = [MFError parameterMissingErrorWithParameterName: kNetFSHostParameter ];
if (![parameters objectForKey: kNetFSHostParameter]) {
if(error) {
*error = [MFError parameterMissingErrorWithParameterName: kNetFSHostParameter ];
}
return NO;
}

return YES;
}

- (NSError*)errorForParameters:(NSDictionary*)parameters
output:(NSString*)output
{
- (NSError *)errorForParameters:(NSDictionary *)parameters output:(NSString *)output {
// We need better errors here ...
return nil;
}

# pragma mark UI
- (NSViewController*)primaryViewController
{
NSViewController* primaryViewController = [[NSViewController alloc]
initWithNibName:@"ftpfsConfiguration"
bundle: [NSBundle bundleForClass: [self class]]];
- (NSViewController *)primaryViewController {
NSViewController* primaryViewController = [[NSViewController alloc] initWithNibName:@"ftpfsConfiguration" bundle: [NSBundle bundleForClass: [self class]]];
[primaryViewController setTitle: @"FTP"];
return primaryViewController;

}

- (NSViewController*)advancedviewController
{
- (NSViewController *)advancedviewController {
return nil;
}

- (NSArray*)viewControllerKeys
{
return [NSArray arrayWithObjects:
primaryViewControllerKey, kMFUIMacfusionAdvancedViewKey,
- (NSArray *)viewControllerKeys {
return [NSArray arrayWithObjects:primaryViewControllerKey, kMFUIMacfusionAdvancedViewKey,
nil];
}

- (NSViewController*)viewControllerForKey:(NSString*)key
{
if (key == primaryViewControllerKey)
- (NSViewController *)viewControllerForKey:(NSString *)key {
if (key == primaryViewControllerKey) {
return [self primaryViewController];
if (key == advancedViewControllerKey)
} else if (key == advancedViewControllerKey) {
return [self advancedviewController];
}

return nil;
}

@end
2 changes: 1 addition & 1 deletion MFClient.m
Original file line number Diff line number Diff line change
Expand Up @@ -268,7 +268,7 @@ - (MFClientFS*)quickMountFilesystemWithURL:(NSURL*)url
if (!remoteFS)
{
NSError* serverError = [server recentError];
if (serverError)
if (serverError && error)
*error = serverError;
return nil;
}
Expand Down
7 changes: 7 additions & 0 deletions MFClientFS.m
Original file line number Diff line number Diff line change
Expand Up @@ -286,6 +286,13 @@ - (NSImage*)coloredImage
NSBitmapImageRep* newImageRep = [[NSBitmapImageRep alloc] initWithCGImage: newCGImage ];
NSImage* newImage = [[NSImage alloc] initWithSize: oldSize];
[newImage addRepresentation: newImageRep];

CGColorRelease( tintColor );
CGImageRelease( cgImageOriginalRep );
CGImageRelease( newCGImage );
CGContextRelease( context );
CFRelease( imageSource );

return newImage;
}

Expand Down
3 changes: 1 addition & 2 deletions MFCommunicationServer.h
Original file line number Diff line number Diff line change
Expand Up @@ -19,8 +19,7 @@

@class MFFilesystemController, MFPluginController;

@interface MFCommunicationServer : NSObject <MFServerProtocol>
{
@interface MFCommunicationServer : NSObject <MFServerProtocol> {
NSError* recentError;
NSMutableArray* clients;
}
Expand Down
Loading

0 comments on commit 435a21b

Please sign in to comment.