Removed Mac Finder mode

This commit is contained in:
Pierre-Olivier Latour
2014-04-09 01:41:54 -07:00
parent d2c0d6da2b
commit 9f0544b449
3 changed files with 4 additions and 11 deletions

View File

@ -47,7 +47,6 @@
@property(nonatomic, copy) NSArray* allowedFileExtensions; // Default is nil i.e. all file extensions are allowed @property(nonatomic, copy) NSArray* allowedFileExtensions; // Default is nil i.e. all file extensions are allowed
@property(nonatomic) BOOL showHiddenFiles; // Default is NO @property(nonatomic) BOOL showHiddenFiles; // Default is NO
- (instancetype)initWithUploadDirectory:(NSString*)path; - (instancetype)initWithUploadDirectory:(NSString*)path;
- (instancetype)initWithUploadDirectory:(NSString*)path macFinderMode:(BOOL)macFinderMode; // If Mac Finder mode is ON, WebDAV server can be mounted read-write instead of read-only in OS X Finder
@end @end
@interface GCDWebDAVServer (Subclassing) @interface GCDWebDAVServer (Subclassing)

View File

@ -51,7 +51,6 @@ typedef NS_ENUM(NSInteger, DAVProperties) {
@interface GCDWebDAVServer () { @interface GCDWebDAVServer () {
@private @private
NSString* _uploadDirectory; NSString* _uploadDirectory;
BOOL _macMode;
id<GCDWebDAVServerDelegate> __unsafe_unretained _delegate; id<GCDWebDAVServerDelegate> __unsafe_unretained _delegate;
NSArray* _allowedExtensions; NSArray* _allowedExtensions;
BOOL _showHidden; BOOL _showHidden;
@ -74,7 +73,7 @@ static inline BOOL _IsMacFinder(GCDWebServerRequest* request) {
- (GCDWebServerResponse*)performOPTIONS:(GCDWebServerRequest*)request { - (GCDWebServerResponse*)performOPTIONS:(GCDWebServerRequest*)request {
GCDWebServerResponse* response = [GCDWebServerResponse response]; GCDWebServerResponse* response = [GCDWebServerResponse response];
if (_macMode && _IsMacFinder(request)) { if (_IsMacFinder(request)) {
[response setValue:@"1, 2" forAdditionalHeader:@"DAV"]; // Classes 1 and 2 [response setValue:@"1, 2" forAdditionalHeader:@"DAV"]; // Classes 1 and 2
} else { } else {
[response setValue:@"1" forAdditionalHeader:@"DAV"]; // Class 1 [response setValue:@"1" forAdditionalHeader:@"DAV"]; // Class 1
@ -446,7 +445,7 @@ static inline xmlNodePtr _XMLChildWithName(xmlNodePtr child, const xmlChar* name
} }
- (GCDWebServerResponse*)performLOCK:(GCDWebServerDataRequest*)request { - (GCDWebServerResponse*)performLOCK:(GCDWebServerDataRequest*)request {
if (!_macMode || !_IsMacFinder(request)) { if (!_IsMacFinder(request)) {
return [GCDWebServerErrorResponse responseWithClientError:kGCDWebServerHTTPStatusCode_MethodNotAllowed message:@"LOCK method only allowed for Mac Finder"]; return [GCDWebServerErrorResponse responseWithClientError:kGCDWebServerHTTPStatusCode_MethodNotAllowed message:@"LOCK method only allowed for Mac Finder"];
} }
@ -534,7 +533,7 @@ static inline xmlNodePtr _XMLChildWithName(xmlNodePtr child, const xmlChar* name
} }
- (GCDWebServerResponse*)performUNLOCK:(GCDWebServerRequest*)request { - (GCDWebServerResponse*)performUNLOCK:(GCDWebServerRequest*)request {
if (!_macMode || !_IsMacFinder(request)) { if (!_IsMacFinder(request)) {
return [GCDWebServerErrorResponse responseWithClientError:kGCDWebServerHTTPStatusCode_MethodNotAllowed message:@"UNLOCK method only allowed for Mac Finder"]; return [GCDWebServerErrorResponse responseWithClientError:kGCDWebServerHTTPStatusCode_MethodNotAllowed message:@"UNLOCK method only allowed for Mac Finder"];
} }
@ -560,13 +559,8 @@ static inline xmlNodePtr _XMLChildWithName(xmlNodePtr child, const xmlChar* name
@synthesize uploadDirectory=_uploadDirectory, delegate=_delegate, allowedFileExtensions=_allowedExtensions, showHiddenFiles=_showHidden; @synthesize uploadDirectory=_uploadDirectory, delegate=_delegate, allowedFileExtensions=_allowedExtensions, showHiddenFiles=_showHidden;
- (instancetype)initWithUploadDirectory:(NSString*)path { - (instancetype)initWithUploadDirectory:(NSString*)path {
return [self initWithUploadDirectory:path macFinderMode:NO];
}
- (instancetype)initWithUploadDirectory:(NSString*)path macFinderMode:(BOOL)macFinderMode {
if ((self = [super init])) { if ((self = [super init])) {
_uploadDirectory = [[path stringByStandardizingPath] copy]; _uploadDirectory = [[path stringByStandardizingPath] copy];
_macMode = macFinderMode;
GCDWebDAVServer* __unsafe_unretained server = self; GCDWebDAVServer* __unsafe_unretained server = self;
// 9.1 PROPFIND method // 9.1 PROPFIND method

View File

@ -97,7 +97,7 @@ int main(int argc, const char* argv[]) {
} }
case 3: { case 3: {
webServer = [[GCDWebDAVServer alloc] initWithUploadDirectory:[[NSFileManager defaultManager] currentDirectoryPath] macFinderMode:YES]; webServer = [[GCDWebDAVServer alloc] initWithUploadDirectory:[[NSFileManager defaultManager] currentDirectoryPath]];
break; break;
} }