Marino Faggiana 7 жил өмнө
parent
commit
9e31f71fb5

+ 59 - 41
iOSClient/Networking/CCNetworking.m

@@ -376,8 +376,10 @@
     NSString *serverUrl = [self getServerUrlFromUrl:url];
     
     NSInteger errorCode;
-    __block NSDate *date = [NSDate date];
-    NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
+    NSDate *date = [NSDate date];
+    NSDateFormatter *dateFormatter = [NSDateFormatter new];
+    NSLocale *enUSPOSIXLocale = [NSLocale localeWithLocaleIdentifier:@"en_US_POSIX"];
+    [dateFormatter setLocale:enUSPOSIXLocale];
     [dateFormatter setDateFormat:@"EEE, dd MMM y HH:mm:ss zzz"];
     
     NSHTTPURLResponse* httpResponse = (NSHTTPURLResponse*)task.response;
@@ -402,71 +404,85 @@
     
     if ([task isKindOfClass:[NSURLSessionDownloadTask class]]) {
         
-        dispatch_async(dispatch_get_main_queue(), ^{
+        tableMetadata *metadata = [[NCManageDatabase sharedInstance] getMetadataWithPredicate:[NSPredicate predicateWithFormat:@"session = %@ AND (sessionTaskIdentifier == %i OR sessionTaskIdentifierPlist == %i)",session.sessionDescription, task.taskIdentifier, task.taskIdentifier]];
             
-            tableMetadata *metadata = [[NCManageDatabase sharedInstance] getMetadataWithPredicate:[NSPredicate predicateWithFormat:@"session = %@ AND (sessionTaskIdentifier == %i OR sessionTaskIdentifierPlist == %i)",session.sessionDescription, task.taskIdentifier, task.taskIdentifier]];
+        if (!metadata) return;
             
-            if (!metadata) return;
+        NSString *etag = metadata.etag;
+        NSString *fileID = metadata.fileID;
+        NSDictionary *fields = [httpResponse allHeaderFields];
             
-            NSString *etag = metadata.etag;
-            NSString *fileID = metadata.fileID;
-            NSDictionary *fields = [httpResponse allHeaderFields];
+        if (errorCode == 0) {
             
-            if (errorCode == 0) {
+            etag = [CCUtility removeForbiddenCharactersFileSystem:[fields objectForKey:@"OC-ETag"]];
             
-                etag = [CCUtility removeForbiddenCharactersFileSystem:[fields objectForKey:@"OC-ETag"]];
-                date = [dateFormatter dateFromString:[fields objectForKey:@"Date"]];
+            NSString *dateString = [fields objectForKey:@"Date"];
+            date = [dateFormatter dateFromString:dateString];
+            if (date == nil)
+                date = [NSDate date];
 
-                // Activity
-                [[NCManageDatabase sharedInstance] addActivityClient:fileName fileID:metadata.fileID action:k_activityDebugActionDownload selector:metadata.sessionSelector note:serverUrl type:k_activityTypeSuccess verbose:k_activityVerboseDefault activeUrl:_activeUrl];
+
+            // Activity
+            [[NCManageDatabase sharedInstance] addActivityClient:fileName fileID:metadata.fileID action:k_activityDebugActionDownload selector:metadata.sessionSelector note:serverUrl type:k_activityTypeSuccess verbose:k_activityVerboseDefault activeUrl:_activeUrl];
                 
-            } else {
+        } else {
             
-                // Activity
-                [[NCManageDatabase sharedInstance] addActivityClient:fileName fileID:metadata.fileID action:k_activityDebugActionDownload selector:metadata.sessionSelector note:[NSString stringWithFormat:@"Server: %@ Error: %@", serverUrl, [CCError manageErrorKCF:errorCode withNumberError:YES]] type:k_activityTypeFailure verbose:k_activityVerboseDefault  activeUrl:_activeUrl];
-            }
+            // Activity
+            [[NCManageDatabase sharedInstance] addActivityClient:fileName fileID:metadata.fileID action:k_activityDebugActionDownload selector:metadata.sessionSelector note:[NSString stringWithFormat:@"Server: %@ Error: %@", serverUrl, [CCError manageErrorKCF:errorCode withNumberError:YES]] type:k_activityTypeFailure verbose:k_activityVerboseDefault  activeUrl:_activeUrl];
+        }
         
+        dispatch_async(dispatch_get_main_queue(), ^{
             NSArray *object = [[NSArray alloc] initWithObjects:session, fileID, task, nil];
             [[NSNotificationCenter defaultCenter] postNotificationName:k_networkingSessionNotification object:object];
-                
-            [self downloadFileSuccessFailure:fileName fileID:metadata.fileID etag:etag date:date serverUrl:serverUrl selector:metadata.sessionSelector selectorPost:metadata.sessionSelectorPost errorCode:errorCode];
         });
+        
+        [self downloadFileSuccessFailure:fileName fileID:metadata.fileID etag:etag date:date serverUrl:serverUrl selector:metadata.sessionSelector selectorPost:metadata.sessionSelectorPost errorCode:errorCode];
     }
     
     // ------------------------ UPLOAD -----------------------
     
     if ([task isKindOfClass:[NSURLSessionUploadTask class]]) {
         
-        dispatch_async(dispatch_get_main_queue(), ^{
-            
-            tableMetadata *metadata = [[NCManageDatabase sharedInstance] getMetadataWithPredicate:[NSPredicate predicateWithFormat:@"session = %@ AND (sessionTaskIdentifier == %i OR sessionTaskIdentifierPlist == %i)",session.sessionDescription, task.taskIdentifier, task.taskIdentifier]];
+        tableMetadata *metadata = [[NCManageDatabase sharedInstance] getMetadataWithPredicate:[NSPredicate predicateWithFormat:@"session = %@ AND (sessionTaskIdentifier == %i OR sessionTaskIdentifierPlist == %i)",session.sessionDescription, task.taskIdentifier, task.taskIdentifier]];
 
-            if (!metadata) return;
+        if (!metadata) return;
+            
+        NSDictionary *fields = [httpResponse allHeaderFields];
+        __block NSString *fileID = metadata.fileID;
+        __block NSString *etag = metadata.etag;
             
-            NSDictionary *fields = [httpResponse allHeaderFields];
-            __block NSString *fileID = metadata.fileID;
-            __block NSString *etag = metadata.etag;
+        if (errorCode == 0) {
             
-            if (errorCode == 0) {
+            fileID = [CCUtility removeForbiddenCharactersFileSystem:[fields objectForKey:@"OC-FileId"]];
+            etag = [CCUtility removeForbiddenCharactersFileSystem:[fields objectForKey:@"OC-ETag"]];
             
-                fileID = [CCUtility removeForbiddenCharactersFileSystem:[fields objectForKey:@"OC-FileId"]];
-                etag = [CCUtility removeForbiddenCharactersFileSystem:[fields objectForKey:@"OC-ETag"]];
-                date = [dateFormatter dateFromString:[fields objectForKey:@"Date"]];
+            NSString *dateString = [fields objectForKey:@"Date"];
+            if (![dateFormatter getObjectValue:&date forString:dateString range:nil error:&error]) {
+                NSLog(@"Date '%@' could not be parsed: %@", dateString, error);
+            }
             
-                // Activity
-                [[NCManageDatabase sharedInstance] addActivityClient:fileName fileID:fileID action:k_activityDebugActionUpload selector:metadata.sessionSelector note:serverUrl type:k_activityTypeSuccess verbose:k_activityVerboseDefault activeUrl:_activeUrl];
+            /*
+            NSString *dateString = [fields objectForKey:@"Date"];
+            date = [dateFormatter dateFromString:dateString];
+            if (date == nil)
+                date = [NSDate date];
+            */
+            
+            // Activity
+            [[NCManageDatabase sharedInstance] addActivityClient:fileName fileID:fileID action:k_activityDebugActionUpload selector:metadata.sessionSelector note:serverUrl type:k_activityTypeSuccess verbose:k_activityVerboseDefault activeUrl:_activeUrl];
 
-            } else {
+        } else {
             
-                // Activity
-                [[NCManageDatabase sharedInstance] addActivityClient:fileName fileID:metadata.fileID action:k_activityDebugActionUpload selector:metadata.sessionSelector note:[NSString stringWithFormat:@"Server: %@ Error: %@", serverUrl, [CCError manageErrorKCF:errorCode withNumberError:YES]] type:k_activityTypeFailure verbose:k_activityVerboseDefault   activeUrl:_activeUrl];
-            }
-                    
+            // Activity
+            [[NCManageDatabase sharedInstance] addActivityClient:fileName fileID:metadata.fileID action:k_activityDebugActionUpload selector:metadata.sessionSelector note:[NSString stringWithFormat:@"Server: %@ Error: %@", serverUrl, [CCError manageErrorKCF:errorCode withNumberError:YES]] type:k_activityTypeFailure verbose:k_activityVerboseDefault   activeUrl:_activeUrl];
+        }
+        
+        dispatch_async(dispatch_get_main_queue(), ^{
             NSArray *object = [[NSArray alloc] initWithObjects:session, fileID, task, nil];
             [[NSNotificationCenter defaultCenter] postNotificationName:k_networkingSessionNotification object:object];
-                
-            [self uploadFileSuccessFailure:metadata fileName:fileName fileID:fileID etag:etag date:date serverUrl:serverUrl errorCode:errorCode];
         });
+        
+        [self uploadFileSuccessFailure:metadata fileName:fileName fileID:fileID etag:etag date:date serverUrl:serverUrl errorCode:errorCode];
     }
 }
 
@@ -1304,8 +1320,10 @@
     NSString *sessionID = metadata.sessionID;
     
     // Progress Task
-    NSDictionary* userInfo = @{@"fileID": (fileID), @"serverUrl": (serverUrl), @"cryptated": ([NSNumber numberWithBool:NO]), @"progress": ([NSNumber numberWithFloat:0.0])};
-    [[NSNotificationCenter defaultCenter] postNotificationName:@"NotificationProgressTask" object:nil userInfo:userInfo];
+    dispatch_async(dispatch_get_main_queue(), ^{
+        NSDictionary* userInfo = @{@"fileID": (fileID), @"serverUrl": (serverUrl), @"cryptated": ([NSNumber numberWithBool:NO]), @"progress": ([NSNumber numberWithFloat:0.0])};
+        [[NSNotificationCenter defaultCenter] postNotificationName:@"NotificationProgressTask" object:nil userInfo:userInfo];
+    });
     
     // ERRORE
     if (errorCode != 0) {

+ 0 - 1
iOSClient/Security/CCCertificate.m

@@ -145,7 +145,6 @@ static SecCertificateRef SecTrustGetLeafCertificate(SecTrustRef trust)
 {    
     if (![viewController isKindOfClass:[UIViewController class]])
         return;
-        //viewController = [[UIApplication sharedApplication] keyWindow].rootViewController;
     
     _delegate = delegate;