瀏覽代碼

Improvements call API

Marino Faggiana 7 年之前
父節點
當前提交
21f722d917

+ 1 - 1
Nextcloud.xcodeproj/project.pbxproj

@@ -2159,8 +2159,8 @@
 		F74D3DB81BAC1941000BAE4B /* Networking */ = {
 			isa = PBXGroup;
 			children = (
-				F732BA031D76CE1500E9878B /* CCNetworking.h */,
 				F755BD9A20594AC7008C5FBB /* NCService.swift */,
+				F732BA031D76CE1500E9878B /* CCNetworking.h */,
 				F732BA041D76CE1500E9878B /* CCNetworking.m */,
 				F74D3DBD1BAC1941000BAE4B /* OCNetworking.h */,
 				F74D3DBE1BAC1941000BAE4B /* OCNetworking.m */,

+ 1 - 0
iOSClient/CCGlobal.h

@@ -142,6 +142,7 @@ extern NSString *const flowEndpoint;
 #define k_CCErrorUserNotAvailble                        -9997
 #define k_CCErrorInternalError                          -9996
 #define k_CCErrorFileAlreadyInDownload                  -9995
+#define k_CCErrorWebdavResponseError                    -9994
 
 // Search
 #define k_minCharsSearch                                2

+ 150 - 177
iOSClient/Library/OCCommunicationLib/OCCommunication.m

@@ -1291,15 +1291,14 @@
     [request getCapabilitiesOfServer:serverPath onCommunication:sharedOCComunication success:^(NSHTTPURLResponse *response, id responseObject) {
         
         NSData *responseData = (NSData*) responseObject;
+        OCCapabilities *capabilities = [OCCapabilities new];
         
         //Parse
         NSError *error;
         NSDictionary *jsongParsed = [NSJSONSerialization JSONObjectWithData:responseData options:NSJSONReadingMutableContainers error:&error];
         NSLog(@"dic: %@",jsongParsed);
         
-        OCCapabilities *capabilities = [OCCapabilities new];
-        
-        if (jsongParsed.allKeys > 0) {
+        if (jsongParsed && jsongParsed.allKeys > 0) {
             
             NSDictionary *ocs = [jsongParsed valueForKey:@"ocs"];
             NSDictionary *data = [ocs valueForKey:@"data"];
@@ -1480,8 +1479,7 @@
             successRequest(response, capabilities, request.redirectedServer);
             
         } else {
-            
-            failureRequest(response, error, request.redirectedServer);
+            failureRequest(response, [UtilsFramework getErrorWithCode:k_CCErrorWebdavResponseError andCustomMessageFromTheServer:NSLocalizedStringFromTable(@"_server_response_error_", @"Error", nil)], request.redirectedServer);
         }
         
     } failure:^(NSHTTPURLResponse *response, NSData *responseData, NSError *error) {
@@ -1489,9 +1487,6 @@
     }];
 }
 
-
-#pragma mark - Remote thumbnails
-
 - (NSURLSessionTask *) getRemoteThumbnailByServer:(NSString*)serverPath ofFilePath:(NSString *)filePath withWidth:(NSInteger)fileWidth andHeight:(NSInteger)fileHeight onCommunication:(OCCommunication *)sharedOCComunication
                      successRequest:(void(^)(NSHTTPURLResponse *response, NSData *thumbnail, NSString *redirectedServer)) successRequest
                      failureRequest:(void(^)(NSHTTPURLResponse *response, NSError *error, NSString *redirectedServer)) failureRequest {
@@ -1519,8 +1514,6 @@
     return operation;
 }
 
-#pragma mark - Notification Server
-
 - (void)getNotificationServer:(NSString*)serverPath onCommunication:(OCCommunication *)sharedOCComunication successRequest:(void(^)(NSHTTPURLResponse *response, NSArray *listOfNotifications, NSString *redirectedServer)) successRequest failureRequest:(void(^)(NSHTTPURLResponse *response, NSError *error, NSString *redirectedServer)) failureRequest {
     
     serverPath = [serverPath encodeString:NSUTF8StringEncoding];
@@ -1532,15 +1525,14 @@
     [request getNotificationServer:serverPath onCommunication:sharedOCComunication success:^(NSHTTPURLResponse *response, id responseObject) {
         
         NSData *responseData = (NSData*) responseObject;
-        
+        NSMutableArray *listOfNotifications = [NSMutableArray new];
+
         //Parse
         NSError *error;
         NSDictionary *jsongParsed = [NSJSONSerialization JSONObjectWithData:responseData options:NSJSONReadingMutableContainers error:&error];
         NSLog(@"[LOG] Notifications : %@",jsongParsed);
         
-        NSMutableArray *listOfNotifications = [NSMutableArray new];
-
-        if (jsongParsed.allKeys > 0) {
+        if (jsongParsed && jsongParsed.allKeys > 0) {
         
             NSDictionary *ocs = [jsongParsed valueForKey:@"ocs"];
             NSDictionary *meta = [ocs valueForKey:@"meta"];
@@ -1633,22 +1625,20 @@
                     [listOfNotifications addObject:notification];
                 }
                 
-            } else {
+                successRequest(response, listOfNotifications, request.redirectedServer);
                 
-                NSString *message = (NSString*)[meta objectForKey:@"message"];
+            } else {
                 
+                NSString *message = (NSString *)[meta objectForKey:@"message"];
                 if ([message isKindOfClass:[NSNull class]]) {
-                    message = @"";
+                    message = NSLocalizedStringFromTable(@"_server_response_error_", @"Error", nil);
                 }
-                
-                NSError *error = [UtilsFramework getErrorWithCode:statusCode andCustomMessageFromTheServer:message];
-                failureRequest(response, error, request.redirectedServer);
+                failureRequest(response, [UtilsFramework getErrorWithCode:statusCode andCustomMessageFromTheServer:message], request.redirectedServer);
             }
+        } else {
+            failureRequest(response, [UtilsFramework getErrorWithCode:k_CCErrorWebdavResponseError andCustomMessageFromTheServer:NSLocalizedStringFromTable(@"_server_response_error_", @"Error", nil)], request.redirectedServer);
         }
     
-        //Return success
-        successRequest(response, listOfNotifications, request.redirectedServer);
-        
     } failure:^(NSHTTPURLResponse *response, NSData *responseData, NSError *error) {
         failureRequest(response, error, request.redirectedServer);
     }];
@@ -1723,8 +1713,6 @@
     }];
 }
 
-#pragma mark - Activity
-
 - (void) getActivityServer:(NSString*)serverPath onCommunication:(OCCommunication *)sharedOCComunication successRequest:(void(^)(NSHTTPURLResponse *response, NSArray *listOfActivity, NSString *redirectedServer)) successRequest failureRequest:(void(^)(NSHTTPURLResponse *response, NSError *error, NSString *redirectedServer)) failureRequest {
 
     serverPath = [serverPath encodeString:NSUTF8StringEncoding];
@@ -1736,15 +1724,14 @@
     [request getActivityServer:serverPath onCommunication:sharedOCComunication success:^(NSHTTPURLResponse *response, id responseObject) {
         
         NSData *responseData = (NSData*) responseObject;
-        
+        NSMutableArray *listOfActivity = [NSMutableArray new];
+
         //Parse
         NSError *error;
         NSDictionary *jsongParsed = [NSJSONSerialization JSONObjectWithData:responseData options:NSJSONReadingMutableContainers error:&error];
         NSLog(@"[LOG] Activity : %@",jsongParsed);
         
-        NSMutableArray *listOfActivity = [NSMutableArray new];
-        
-        if (jsongParsed.allKeys > 0) {
+        if (jsongParsed && jsongParsed.allKeys > 0) {
             
             NSDictionary *ocs = [jsongParsed valueForKey:@"ocs"];
             NSDictionary *meta = [ocs valueForKey:@"meta"];
@@ -1788,30 +1775,26 @@
                     [listOfActivity addObject:activity];
                 }
                 
+                successRequest(response, listOfActivity, request.redirectedServer);
+
             } else {
                 
-                NSString *message = (NSString*)[meta objectForKey:@"message"];
-                
+                NSString *message = (NSString *)[meta objectForKey:@"message"];
                 if ([message isKindOfClass:[NSNull class]]) {
-                    message = @"";
+                    message = NSLocalizedStringFromTable(@"_server_response_error_", @"Error", nil);
                 }
-                
-                NSError *error = [UtilsFramework getErrorWithCode:statusCode andCustomMessageFromTheServer:message];
-                failureRequest(response, error, request.redirectedServer);
+                failureRequest(response, [UtilsFramework getErrorWithCode:statusCode andCustomMessageFromTheServer:message], request.redirectedServer);
             }
+            
+        } else {
+            failureRequest(response, [UtilsFramework getErrorWithCode:k_CCErrorWebdavResponseError andCustomMessageFromTheServer:NSLocalizedStringFromTable(@"_server_response_error_", @"Error", nil)], request.redirectedServer);
         }
 
-        //Return success
-        successRequest(response, listOfActivity, request.redirectedServer);
-
     } failure:^(NSHTTPURLResponse *response, NSData *responseData, NSError *error) {
         failureRequest(response, error, request.redirectedServer);
     }];
 }
 
-
-#pragma mark - External sites
-
 - (void) getExternalSitesServer:(NSString*)serverPath onCommunication:(OCCommunication *)sharedOCComunication successRequest:(void(^)(NSHTTPURLResponse *response, NSArray *listOfExternalSites, NSString *redirectedServer)) successRequest failureRequest:(void(^)(NSHTTPURLResponse *response, NSError *error, NSString *redirectedServer)) failureRequest {
     serverPath = [serverPath encodeString:NSUTF8StringEncoding];
     serverPath = [serverPath stringByAppendingString:k_url_acces_external_sites_api];
@@ -1822,15 +1805,14 @@
     [request getExternalSitesServer:serverPath onCommunication:sharedOCComunication success:^(NSHTTPURLResponse *response, id responseObject) {
         
         NSData *responseData = (NSData*) responseObject;
-        
+        NSMutableArray *listOfExternalSites = [NSMutableArray new];
+
         //Parse
         NSError *error;
         NSDictionary *jsongParsed = [NSJSONSerialization JSONObjectWithData:responseData options:NSJSONReadingMutableContainers error:&error];
         NSLog(@"[LOG] External Sites : %@",jsongParsed);
         
-        NSMutableArray *listOfExternalSites = [NSMutableArray new];
-        
-        if (jsongParsed.allKeys > 0) {
+        if (jsongParsed && jsongParsed.allKeys > 0) {
             
             NSDictionary *ocs = [jsongParsed valueForKey:@"ocs"];
             NSDictionary *meta = [ocs valueForKey:@"meta"];
@@ -1864,31 +1846,26 @@
                     [listOfExternalSites addObject:externalSites];
                 }
                 
+                successRequest(response, listOfExternalSites, request.redirectedServer);
+
             } else {
                 
-                NSString *message = (NSString*)[meta objectForKey:@"message"];
-                
+                NSString *message = (NSString *)[meta objectForKey:@"message"];
                 if ([message isKindOfClass:[NSNull class]]) {
-                    message = @"";
+                    message = NSLocalizedStringFromTable(@"_server_response_error_", @"Error", nil);
                 }
-                
-                NSError *error = [UtilsFramework getErrorWithCode:statusCode andCustomMessageFromTheServer:message];
-                failureRequest(response, error, request.redirectedServer);
+                failureRequest(response, [UtilsFramework getErrorWithCode:statusCode andCustomMessageFromTheServer:message], request.redirectedServer);
             }
+            
+        } else {
+            failureRequest(response, [UtilsFramework getErrorWithCode:k_CCErrorWebdavResponseError andCustomMessageFromTheServer:NSLocalizedStringFromTable(@"_server_response_error_", @"Error", nil)], request.redirectedServer);
         }
         
-        //Return success
-        successRequest(response, listOfExternalSites, request.redirectedServer);
-        
     } failure:^(NSHTTPURLResponse *response, NSData *responseData, NSError *error) {
         failureRequest(response, error, request.redirectedServer);
     }];
 }
 
-
-
-#pragma mark - User Profile
-
 - (void) getUserProfileServer:(NSString*)serverPath onCommunication:(OCCommunication *)sharedOCComunication successRequest:(void(^)(NSHTTPURLResponse *response, OCUserProfile *userProfile, NSString *redirectedServer)) successRequest failureRequest:(void(^)(NSHTTPURLResponse *response, NSError *error, NSString *redirectedServer)) failureRequest {
     
     serverPath = [serverPath stringByAppendingString:k_url_acces_remote_userprofile_api];
@@ -1900,15 +1877,14 @@
     [request getUserProfileServer:serverPath onCommunication:sharedOCComunication success:^(NSHTTPURLResponse *response, id responseObject) {
     
         NSData *responseData = (NSData*) responseObject;
-        
+        OCUserProfile *userProfile = [OCUserProfile new];
+
         //Parse
         NSError *error;
         NSDictionary *jsongParsed = [NSJSONSerialization JSONObjectWithData:responseData options:NSJSONReadingMutableContainers error:&error];
         NSLog(@"[LOG] User Profile : %@",jsongParsed);
         
-        OCUserProfile *userProfile = [OCUserProfile new];
-        
-        if (jsongParsed.allKeys > 0) {
+        if (jsongParsed && jsongParsed.allKeys > 0) {
 
             NSDictionary *ocs = [jsongParsed valueForKey:@"ocs"];
             NSDictionary *meta = [ocs valueForKey:@"meta"];
@@ -1964,22 +1940,21 @@
                         userProfile.quotaUsed = [[quota valueForKey:@"used"] doubleValue];
                 }
                 
+                successRequest(response, userProfile, request.redirectedServer);
+
             } else {
                 
-                NSString *message = (NSString*)[meta objectForKey:@"message"];
-                
+                NSString *message = (NSString *)[meta objectForKey:@"message"];
                 if ([message isKindOfClass:[NSNull class]]) {
-                    message = @"";
+                    message = NSLocalizedStringFromTable(@"_server_response_error_", @"Error", nil);
                 }
-                
-                NSError *error = [UtilsFramework getErrorWithCode:statusCode andCustomMessageFromTheServer:message];
-                failureRequest(response, error, request.redirectedServer);
+                failureRequest(response, [UtilsFramework getErrorWithCode:statusCode andCustomMessageFromTheServer:message], request.redirectedServer);
             }
+            
+        } else {
+            failureRequest(response, [UtilsFramework getErrorWithCode:k_CCErrorWebdavResponseError andCustomMessageFromTheServer:NSLocalizedStringFromTable(@"_server_response_error_", @"Error", nil)], request.redirectedServer);
         }
         
-        //Return success
-        successRequest(response, userProfile, request.redirectedServer);
-        
     } failure:^(NSHTTPURLResponse *response, NSData *responseData, NSError *error) {
     
         failureRequest(response, error, request.redirectedServer);
@@ -2000,14 +1975,14 @@
     [request getEndToEndPublicKeys:serverPath onCommunication:sharedOCComunication success:^(NSHTTPURLResponse *response, id responseObject) {
         
         NSData *responseData = (NSData*) responseObject;
-        NSString *publicKey;
+        NSString *publicKey = @"";
         
         //Parse
         NSError *error;
         NSDictionary *jsongParsed = [NSJSONSerialization JSONObjectWithData:responseData options:NSJSONReadingMutableContainers error:&error];
         NSLog(@"[LOG] E2E Get PublicKey : %@",jsongParsed);
         
-        if (jsongParsed.allKeys > 0) {
+        if (jsongParsed && jsongParsed.allKeys > 0) {
             
             NSDictionary *ocs = [jsongParsed valueForKey:@"ocs"];
             NSDictionary *meta = [ocs valueForKey:@"meta"];
@@ -2021,24 +1996,26 @@
                     
                     NSDictionary *publickeys = [data valueForKey:@"public-keys"];
                     publicKey = [publickeys valueForKey:self.userID];
+                    
+                    successRequest(response, publicKey, request.redirectedServer);
+                    
+                } else {
+                    failureRequest(response, [UtilsFramework getErrorWithCode:k_CCErrorWebdavResponseError andCustomMessageFromTheServer:NSLocalizedStringFromTable(@"_server_response_error_", @"Error", nil)], request.redirectedServer);
                 }
                 
             } else {
                 
-                NSString *message = (NSString*)[meta objectForKey:@"message"];
-                
+                NSString *message = (NSString *)[meta objectForKey:@"message"];
                 if ([message isKindOfClass:[NSNull class]]) {
-                    message = @"";
+                    message = NSLocalizedStringFromTable(@"_server_response_error_", @"Error", nil);
                 }
-                
-                NSError *error = [UtilsFramework getErrorWithCode:statusCode andCustomMessageFromTheServer:message];
-                failureRequest(response, error, request.redirectedServer);
+                failureRequest(response, [UtilsFramework getErrorWithCode:statusCode andCustomMessageFromTheServer:message], request.redirectedServer);
             }
+            
+        } else {
+            failureRequest(response, [UtilsFramework getErrorWithCode:k_CCErrorWebdavResponseError andCustomMessageFromTheServer:NSLocalizedStringFromTable(@"_server_response_error_", @"Error", nil)], request.redirectedServer);
         }
         
-        //Return success
-        successRequest(response, publicKey, request.redirectedServer);
-        
     } failure:^(NSHTTPURLResponse *response, NSData *responseData, NSError *error) {
         
         //Return error
@@ -2058,14 +2035,14 @@
     [request getEndToEndPrivateKeyCipher:serverPath onCommunication:sharedOCComunication success:^(NSHTTPURLResponse *response, id responseObject) {
         
         NSData *responseData = (NSData*) responseObject;
-        NSString *privateKeyChiper;
+        NSString *privateKeyChiper = @"";
         
         //Parse
         NSError *error;
         NSDictionary *jsongParsed = [NSJSONSerialization JSONObjectWithData:responseData options:NSJSONReadingMutableContainers error:&error];
         NSLog(@"[LOG] E2E Get PrivateKey : %@",jsongParsed);
         
-        if (jsongParsed.allKeys > 0) {
+        if (jsongParsed && jsongParsed.allKeys > 0) {
             
             NSDictionary *ocs = [jsongParsed valueForKey:@"ocs"];
             NSDictionary *meta = [ocs valueForKey:@"meta"];
@@ -2075,25 +2052,26 @@
             
             if (statusCode == kOCUserProfileAPISuccessful) {
                 
-                if ([data valueForKey:@"private-key"] && ![[data valueForKey:@"private-key"] isKindOfClass:[NSNull class]])
+                if ([data valueForKey:@"private-key"] && ![[data valueForKey:@"private-key"] isKindOfClass:[NSNull class]]) {
+                    
                     privateKeyChiper = [data valueForKey:@"private-key"];
-                
+                    successRequest(response, privateKeyChiper, request.redirectedServer);
+                    
+                } else {
+                    failureRequest(response, [UtilsFramework getErrorWithCode:k_CCErrorWebdavResponseError andCustomMessageFromTheServer:NSLocalizedStringFromTable(@"_server_response_error_", @"Error", nil)], request.redirectedServer);
+                }
             } else {
                 
-                NSString *message = (NSString*)[meta objectForKey:@"message"];
-                
+                NSString *message = (NSString *)[meta objectForKey:@"message"];
                 if ([message isKindOfClass:[NSNull class]]) {
-                    message = @"";
+                    message = NSLocalizedStringFromTable(@"_server_response_error_", @"Error", nil);
                 }
-                
-                NSError *error = [UtilsFramework getErrorWithCode:statusCode andCustomMessageFromTheServer:message];
-                failureRequest(response, error, request.redirectedServer);
+                failureRequest(response, [UtilsFramework getErrorWithCode:statusCode andCustomMessageFromTheServer:message], request.redirectedServer);
             }
+        } else {
+            failureRequest(response, [UtilsFramework getErrorWithCode:k_CCErrorWebdavResponseError andCustomMessageFromTheServer:NSLocalizedStringFromTable(@"_server_response_error_", @"Error", nil)], request.redirectedServer);
         }
         
-        //Return success
-        successRequest(response, privateKeyChiper, request.redirectedServer);
-        
     } failure:^(NSHTTPURLResponse *response, NSData *responseData, NSError *error) {
         
         //Return error
@@ -2113,14 +2091,14 @@
     [request getEndToEndServerPublicKey:serverPath onCommunication:sharedOCComunication success:^(NSHTTPURLResponse *response, id responseObject) {
         
         NSData *responseData = (NSData*) responseObject;
-        NSString *publicKey;
+        NSString *publicKey = @"";
         
         //Parse
         NSError *error;
         NSDictionary *jsongParsed = [NSJSONSerialization JSONObjectWithData:responseData options:NSJSONReadingMutableContainers error:&error];
         NSLog(@"[LOG] E2E Get Server PublicKey : %@",jsongParsed);
         
-        if (jsongParsed.allKeys > 0) {
+        if (jsongParsed && jsongParsed.allKeys > 0) {
             
             NSDictionary *ocs = [jsongParsed valueForKey:@"ocs"];
             NSDictionary *meta = [ocs valueForKey:@"meta"];
@@ -2133,23 +2111,24 @@
                 if ([data valueForKey:@"public-key"] && ![[data valueForKey:@"public-key"] isKindOfClass:[NSNull class]]) {
                     
                     publicKey = [data valueForKey:@"public-key"];
+                    successRequest(response, publicKey, request.redirectedServer);
+                    
+                } else {
+                    failureRequest(response, [UtilsFramework getErrorWithCode:k_CCErrorWebdavResponseError andCustomMessageFromTheServer:NSLocalizedStringFromTable(@"_server_response_error_", @"Error", nil)], request.redirectedServer);
                 }
-                
             } else {
                 
-                NSString *message = (NSString*)[meta objectForKey:@"message"];
-                
+                NSString *message = (NSString *)[meta objectForKey:@"message"];
                 if ([message isKindOfClass:[NSNull class]]) {
-                    message = @"";
+                    message = NSLocalizedStringFromTable(@"_server_response_error_", @"Error", nil);
                 }
-                
-                NSError *error = [UtilsFramework getErrorWithCode:statusCode andCustomMessageFromTheServer:message];
-                failureRequest(response, error, request.redirectedServer);
+                failureRequest(response, [UtilsFramework getErrorWithCode:statusCode andCustomMessageFromTheServer:message], request.redirectedServer);
             }
+        } else {
+            failureRequest(response, [UtilsFramework getErrorWithCode:k_CCErrorWebdavResponseError andCustomMessageFromTheServer:NSLocalizedStringFromTable(@"_server_response_error_", @"Error", nil)], request.redirectedServer);
         }
         
         //Return success
-        successRequest(response, publicKey, request.redirectedServer);
         
     } failure:^(NSHTTPURLResponse *response, NSData *responseData, NSError *error) {
         
@@ -2170,14 +2149,14 @@
     [request signEndToEndPublicKey:serverPath key:publicKey onCommunication:sharedOCComunication success:^(NSHTTPURLResponse *response, id responseObject) {
         
         NSData *responseData = (NSData*) responseObject;
-        NSString *publicKey;
+        NSString *publicKey = @"";
         
         //Parse
         NSError *error;
         NSDictionary *jsongParsed = [NSJSONSerialization JSONObjectWithData:responseData options:NSJSONReadingMutableContainers error:&error];
         NSLog(@"[LOG] E2E Sign PublicKey : %@",jsongParsed);
         
-        if (jsongParsed.allKeys > 0) {
+        if (jsongParsed && jsongParsed.allKeys > 0) {
             
             NSDictionary *ocs = [jsongParsed valueForKey:@"ocs"];
             NSDictionary *meta = [ocs valueForKey:@"meta"];
@@ -2190,24 +2169,23 @@
                 if ([data valueForKey:@"public-key"] && ![[data valueForKey:@"public-key"] isKindOfClass:[NSNull class]]) {
                     
                     publicKey = [data valueForKey:@"public-key"];
+                    successRequest(response, publicKey, request.redirectedServer);
+                    
+                } else {
+                    failureRequest(response, [UtilsFramework getErrorWithCode:k_CCErrorWebdavResponseError andCustomMessageFromTheServer:NSLocalizedStringFromTable(@"_server_response_error_", @"Error", nil)], request.redirectedServer);
                 }
-                
             } else {
                 
-                NSString *message = (NSString*)[meta objectForKey:@"message"];
-                
+                NSString *message = (NSString *)[meta objectForKey:@"message"];
                 if ([message isKindOfClass:[NSNull class]]) {
-                    message = @"";
+                    message = NSLocalizedStringFromTable(@"_server_response_error_", @"Error", nil);
                 }
-                
-                NSError *error = [UtilsFramework getErrorWithCode:statusCode andCustomMessageFromTheServer:message];
-                failureRequest(response, error, request.redirectedServer);
+                failureRequest(response, [UtilsFramework getErrorWithCode:statusCode andCustomMessageFromTheServer:message], request.redirectedServer);
             }
+        } else {
+            failureRequest(response, [UtilsFramework getErrorWithCode:k_CCErrorWebdavResponseError andCustomMessageFromTheServer:NSLocalizedStringFromTable(@"_server_response_error_", @"Error", nil)], request.redirectedServer);
         }
         
-        //Return success
-        successRequest(response, publicKey, request.redirectedServer);
-        
     } failure:^(NSHTTPURLResponse *response, NSData *responseData, NSError *error) {
         
         //Return error
@@ -2227,14 +2205,14 @@
     [request storeEndToEndPrivateKeyCipher:serverPath key:privateKeyChiper onCommunication:sharedOCComunication success:^(NSHTTPURLResponse *response, id responseObject) {
         
         NSData *responseData = (NSData*) responseObject;
-        NSString *privateKey;
+        NSString *privateKey = @"";
         
         //Parse
         NSError *error;
         NSDictionary *jsongParsed = [NSJSONSerialization JSONObjectWithData:responseData options:NSJSONReadingMutableContainers error:&error];
         NSLog(@"[LOG] E2E Store PrivateKey : %@",jsongParsed);
         
-        if (jsongParsed.allKeys > 0) {
+        if (jsongParsed && jsongParsed.allKeys > 0) {
             
             NSDictionary *ocs = [jsongParsed valueForKey:@"ocs"];
             NSDictionary *meta = [ocs valueForKey:@"meta"];
@@ -2247,24 +2225,24 @@
                 if ([data valueForKey:@"private-key"] && ![[data valueForKey:@"private-key"] isKindOfClass:[NSNull class]]) {
                     
                     privateKey = [data valueForKey:@"private-key"];
+                    successRequest(response, privateKey, request.redirectedServer);
+                    
+                } else {
+                    failureRequest(response, [UtilsFramework getErrorWithCode:k_CCErrorWebdavResponseError andCustomMessageFromTheServer:NSLocalizedStringFromTable(@"_server_response_error_", @"Error", nil)], request.redirectedServer);
                 }
                 
             } else {
                 
-                NSString *message = (NSString*)[meta objectForKey:@"message"];
-                
+                NSString *message = (NSString *)[meta objectForKey:@"message"];
                 if ([message isKindOfClass:[NSNull class]]) {
-                    message = @"";
+                    message = NSLocalizedStringFromTable(@"_server_response_error_", @"Error", nil);
                 }
-                
-                NSError *error = [UtilsFramework getErrorWithCode:statusCode andCustomMessageFromTheServer:message];
-                failureRequest(response, error, request.redirectedServer);
+                failureRequest(response, [UtilsFramework getErrorWithCode:statusCode andCustomMessageFromTheServer:message], request.redirectedServer);
             }
+        } else {
+            failureRequest(response, [UtilsFramework getErrorWithCode:k_CCErrorWebdavResponseError andCustomMessageFromTheServer:NSLocalizedStringFromTable(@"_server_response_error_", @"Error", nil)], request.redirectedServer);
         }
         
-        //Return success
-        successRequest(response, privateKey, request.redirectedServer);
-        
     } failure:^(NSHTTPURLResponse *response, NSData *responseData, NSError *error) {
         
         //Return error
@@ -2373,14 +2351,14 @@
     [request lockEndToEndFolderEncrypted:serverPath onCommunication:sharedOCComunication success:^(NSHTTPURLResponse *response, id responseObject) {
         
         NSData *responseData = (NSData*) responseObject;
-        NSString *token;
+        NSString *token = @"";
         
         //Parse
         NSError *error;
         NSDictionary *jsongParsed = [NSJSONSerialization JSONObjectWithData:responseData options:NSJSONReadingMutableContainers error:&error];
         NSLog(@"[LOG] E2E Lock File : %@",jsongParsed);
         
-        if (jsongParsed.allKeys > 0) {
+        if (jsongParsed && jsongParsed.allKeys > 0) {
             
             NSDictionary *ocs = [jsongParsed valueForKey:@"ocs"];
             NSDictionary *meta = [ocs valueForKey:@"meta"];
@@ -2393,24 +2371,23 @@
                 if ([data valueForKey:@"token"] && ![[data valueForKey:@"token"] isKindOfClass:[NSNull class]]) {
                     
                     token = [data valueForKey:@"token"];
+                    successRequest(response, token, request.redirectedServer);
+                    
+                } else {
+                    failureRequest(response, [UtilsFramework getErrorWithCode:k_CCErrorWebdavResponseError andCustomMessageFromTheServer:NSLocalizedStringFromTable(@"_server_response_error_", @"Error", nil)], request.redirectedServer);
                 }
-                
             } else {
                 
-                NSString *message = (NSString*)[meta objectForKey:@"message"];
-                
+                NSString *message = (NSString *)[meta objectForKey:@"message"];
                 if ([message isKindOfClass:[NSNull class]]) {
-                    message = @"";
+                    message = NSLocalizedStringFromTable(@"_server_response_error_", @"Error", nil);
                 }
-                
-                NSError *error = [UtilsFramework getErrorWithCode:statusCode andCustomMessageFromTheServer:message];
-                failureRequest(response, error, request.redirectedServer);
+                failureRequest(response, [UtilsFramework getErrorWithCode:statusCode andCustomMessageFromTheServer:message], request.redirectedServer);
             }
+        } else {
+            failureRequest(response, [UtilsFramework getErrorWithCode:k_CCErrorWebdavResponseError andCustomMessageFromTheServer:NSLocalizedStringFromTable(@"_server_response_error_", @"Error", nil)], request.redirectedServer);
         }
         
-        //Return success
-        successRequest(response, token, request.redirectedServer);
-        
     } failure:^(NSHTTPURLResponse *response, NSData *responseData, NSError *error) {
         
         //Return error
@@ -2451,14 +2428,14 @@
     [request getEndToEndMetadata:serverPath onCommunication:sharedOCComunication success:^(NSHTTPURLResponse *response, id responseObject) {
         
         NSData *responseData = (NSData*) responseObject;
-        NSString *encryptedMetadata;
+        NSString *encryptedMetadata = @"";
         
         //Parse
         NSError *error;
         NSDictionary *jsongParsed = [NSJSONSerialization JSONObjectWithData:responseData options:NSJSONReadingMutableContainers error:&error];
         NSLog(@"[LOG] E2E Get Metadata : %@",jsongParsed);
         
-        if (jsongParsed.allKeys > 0) {
+        if (jsongParsed && jsongParsed.allKeys > 0) {
             
             NSDictionary *ocs = [jsongParsed valueForKey:@"ocs"];
             NSDictionary *meta = [ocs valueForKey:@"meta"];
@@ -2471,24 +2448,22 @@
                 if ([data valueForKey:@"meta-data"] && ![[data valueForKey:@"meta-data"] isKindOfClass:[NSNull class]]) {
                     
                     encryptedMetadata = [data valueForKey:@"meta-data"];
+                    successRequest(response, encryptedMetadata, request.redirectedServer);
+                    
+                } else {
+                    failureRequest(response, [UtilsFramework getErrorWithCode:k_CCErrorWebdavResponseError andCustomMessageFromTheServer:NSLocalizedStringFromTable(@"_server_response_error_", @"Error", nil)], request.redirectedServer);
                 }
-                
             } else {
-                
-                NSString *message = (NSString*)[meta objectForKey:@"message"];
-                
+                NSString *message = (NSString *)[meta objectForKey:@"message"];
                 if ([message isKindOfClass:[NSNull class]]) {
-                    message = @"";
+                    message = NSLocalizedStringFromTable(@"_server_response_error_", @"Error", nil);
                 }
-                
-                NSError *error = [UtilsFramework getErrorWithCode:statusCode andCustomMessageFromTheServer:message];
-                failureRequest(response, error, request.redirectedServer);
+                failureRequest(response, [UtilsFramework getErrorWithCode:statusCode andCustomMessageFromTheServer:message], request.redirectedServer);
             }
+        } else {
+            failureRequest(response, [UtilsFramework getErrorWithCode:k_CCErrorWebdavResponseError andCustomMessageFromTheServer:NSLocalizedStringFromTable(@"_server_response_error_", @"Error", nil)], request.redirectedServer);
         }
         
-        //Return success
-        successRequest(response, encryptedMetadata, request.redirectedServer);
-        
     } failure:^(NSHTTPURLResponse *response, NSData *responseData, NSError *error) {
         
         //Return error
@@ -2510,14 +2485,14 @@
     [request storeEndToEndMetadata:serverPath metadata:encryptedMetadata onCommunication:sharedOCComunication success:^(NSHTTPURLResponse *response, id responseObject) {
         
         NSData *responseData = (NSData*) responseObject;
-        NSString *encryptedMetadata;
+        NSString *encryptedMetadata = @"";
         
         //Parse
         NSError *error;
         NSDictionary *jsongParsed = [NSJSONSerialization JSONObjectWithData:responseData options:NSJSONReadingMutableContainers error:&error];
         NSLog(@"[LOG] E2E Store Metadata : %@",jsongParsed);
         
-        if (jsongParsed.allKeys > 0) {
+        if (jsongParsed && jsongParsed.allKeys > 0) {
             
             NSDictionary *ocs = [jsongParsed valueForKey:@"ocs"];
             NSDictionary *meta = [ocs valueForKey:@"meta"];
@@ -2530,24 +2505,23 @@
                 if ([data valueForKey:@"encrypted-meta-data"] && ![[data valueForKey:@"encrypted-meta-data"] isKindOfClass:[NSNull class]]) {
                     
                     encryptedMetadata = [data valueForKey:@"encrypted-meta-data"];
+                    successRequest(response, encryptedMetadata, request.redirectedServer);
+                    
+                } else {
+                    failureRequest(response, [UtilsFramework getErrorWithCode:k_CCErrorWebdavResponseError andCustomMessageFromTheServer:NSLocalizedStringFromTable(@"_server_response_error_", @"Error", nil)], request.redirectedServer);
                 }
-                
             } else {
                 
-                NSString *message = (NSString*)[meta objectForKey:@"message"];
-                
+                NSString *message = (NSString *)[meta objectForKey:@"message"];
                 if ([message isKindOfClass:[NSNull class]]) {
-                    message = @"";
+                    message = NSLocalizedStringFromTable(@"_server_response_error_", @"Error", nil);
                 }
-                
-                NSError *error = [UtilsFramework getErrorWithCode:statusCode andCustomMessageFromTheServer:message];
-                failureRequest(response, error, request.redirectedServer);
+                failureRequest(response, [UtilsFramework getErrorWithCode:statusCode andCustomMessageFromTheServer:message], request.redirectedServer);
             }
+        } else {
+            failureRequest(response, [UtilsFramework getErrorWithCode:k_CCErrorWebdavResponseError andCustomMessageFromTheServer:NSLocalizedStringFromTable(@"_server_response_error_", @"Error", nil)], request.redirectedServer);
         }
         
-        //Return success
-        successRequest(response, encryptedMetadata, request.redirectedServer);
-        
     } failure:^(NSHTTPURLResponse *response, NSData *responseData, NSError *error) {
         
         //Return error
@@ -2570,14 +2544,14 @@
     [request updateEndToEndMetadata:serverPath metadata:encryptedMetadata onCommunication:sharedOCComunication success:^(NSHTTPURLResponse *response, id responseObject) {
         
         NSData *responseData = (NSData*) responseObject;
-        NSString *encryptedMetadata;
+        NSString *encryptedMetadata = @"";
         
         //Parse
         NSError *error;
         NSDictionary *jsongParsed = [NSJSONSerialization JSONObjectWithData:responseData options:NSJSONReadingMutableContainers error:&error];
         NSLog(@"[LOG] E2E Update Metadata : %@",jsongParsed);
         
-        if (jsongParsed.allKeys > 0) {
+        if (jsongParsed && jsongParsed.allKeys > 0) {
             
             NSDictionary *ocs = [jsongParsed valueForKey:@"ocs"];
             NSDictionary *meta = [ocs valueForKey:@"meta"];
@@ -2590,24 +2564,23 @@
                 if ([data valueForKey:@"meta-data"] && ![[data valueForKey:@"meta-data"] isKindOfClass:[NSNull class]]) {
                     
                     encryptedMetadata = [data valueForKey:@"meta-data"];
+                    successRequest(response, encryptedMetadata, request.redirectedServer);
+                    
+                } else {
+                    failureRequest(response, [UtilsFramework getErrorWithCode:k_CCErrorWebdavResponseError andCustomMessageFromTheServer:NSLocalizedStringFromTable(@"_server_response_error_", @"Error", nil)], request.redirectedServer);
                 }
-                
             } else {
                 
-                NSString *message = (NSString*)[meta objectForKey:@"message"];
-                
+                NSString *message = (NSString *)[meta objectForKey:@"message"];
                 if ([message isKindOfClass:[NSNull class]]) {
-                    message = @"";
+                    message = NSLocalizedStringFromTable(@"_server_response_error_", @"Error", nil);
                 }
-                
-                NSError *error = [UtilsFramework getErrorWithCode:statusCode andCustomMessageFromTheServer:message];
-                failureRequest(response, error, request.redirectedServer);
+                failureRequest(response, [UtilsFramework getErrorWithCode:statusCode andCustomMessageFromTheServer:message], request.redirectedServer);
             }
+        } else {
+            failureRequest(response, [UtilsFramework getErrorWithCode:k_CCErrorWebdavResponseError andCustomMessageFromTheServer:NSLocalizedStringFromTable(@"_server_response_error_", @"Error", nil)], request.redirectedServer);
         }
         
-        //Return success
-        successRequest(response, encryptedMetadata, request.redirectedServer);
-        
     } failure:^(NSHTTPURLResponse *response, NSData *responseData, NSError *error) {
         
         //Return error

+ 32 - 32
iOSClient/Networking/OCNetworking.m

@@ -185,7 +185,7 @@
     } failureRequest:^(NSHTTPURLResponse *response, NSError *error, NSString *redirectedServer) {
         
         NSInteger errorCode = response.statusCode;
-        if (errorCode == 0)
+        if (errorCode == 0 || (errorCode >= 200 && errorCode < 300))
             errorCode = error.code;
         
         // Error
@@ -343,7 +343,7 @@
     } failureRequest:^(NSHTTPURLResponse *response, NSError *error, NSString *token, NSString *redirectedServer) {
         
         NSInteger errorCode = response.statusCode;
-        if (errorCode == 0)
+        if (errorCode == 0 || (errorCode >= 200 && errorCode < 300))
             errorCode = error.code;
         
         // Error
@@ -465,7 +465,7 @@
     } failureRequest:^(NSHTTPURLResponse *response, NSError *error, NSString *token, NSString *redirectedServer) {
         
         NSInteger errorCode = response.statusCode;
-        if (errorCode == 0)
+        if (errorCode == 0 || (errorCode >= 200 && errorCode < 300))
             errorCode = error.code;
 
         // Error
@@ -518,7 +518,7 @@
     } failureRequest:^(NSHTTPURLResponse *response, NSError *error, NSString *token, NSString *redirectedServer) {
         
         NSInteger errorCode = response.statusCode;
-        if (errorCode == 0)
+        if (errorCode == 0 || (errorCode >= 200 && errorCode < 300))
             errorCode = error.code;
         
         // Error
@@ -641,7 +641,7 @@
     } failureRequest:^(NSHTTPURLResponse *response, NSError *error, NSString *token, NSString *redirectedServer) {
         
         NSInteger errorCode = response.statusCode;
-        if (errorCode == 0)
+        if (errorCode == 0 || (errorCode >= 200 && errorCode < 300))
             errorCode = error.code;
         
         // Error
@@ -708,7 +708,7 @@
             message = [CCError manageErrorOC:response.statusCode error:error];
         
         NSInteger errorCode = response.statusCode;
-        if (errorCode == 0)
+        if (errorCode == 0 || (errorCode >= 200 && errorCode < 300))
             errorCode = error.code;
 
         if ([self.delegate respondsToSelector:@selector(createFolderSuccessFailure:message:errorCode:)])
@@ -780,7 +780,7 @@
     } failureRquest:^(NSHTTPURLResponse *response, NSError *error, NSString *redirectedServer) {
         
         NSInteger errorCode = response.statusCode;
-        if (errorCode == 0)
+        if (errorCode == 0 || (errorCode >= 200 && errorCode < 300))
             errorCode = error.code;
         
         // Error
@@ -827,7 +827,7 @@
     } failureRequest:^(NSHTTPURLResponse *response, NSError *error, NSString *redirectedServer) {
         
         NSInteger errorCode = response.statusCode;
-        if (errorCode == 0)
+        if (errorCode == 0 || (errorCode >= 200 && errorCode < 300))
             errorCode = error.code;
         
         if ([self.delegate respondsToSelector:@selector(renameMoveFileOrFolderFailure:message:errorCode:)])
@@ -947,7 +947,7 @@
         _metadataNet.errorRetry++;
         
         NSInteger errorCode = response.statusCode;
-        if (errorCode == 0)
+        if (errorCode == 0 || (errorCode >= 200 && errorCode < 300))
             errorCode = error.code;
         
         // Error
@@ -1016,7 +1016,7 @@
     } failureRequest :^(NSHTTPURLResponse *response, NSError *error, NSString *redirectedServer) {
         
         NSInteger errorCode = response.statusCode;
-        if (errorCode == 0)
+        if (errorCode == 0 || (errorCode >= 200 && errorCode < 300))
             errorCode = error.code;
         
         // Error
@@ -1051,7 +1051,7 @@
     } failureRequest :^(NSHTTPURLResponse *response, NSError *error, NSString *redirectedServer) {
         
         NSInteger errorCode = response.statusCode;
-        if (errorCode == 0)
+        if (errorCode == 0 || (errorCode >= 200 && errorCode < 300))
             errorCode = error.code;
 
         // Error
@@ -1087,7 +1087,7 @@
     } failureRequest:^(NSHTTPURLResponse *response, NSError *error, NSString *redirectedServer) {
         
         NSInteger errorCode = response.statusCode;
-        if (errorCode == 0)
+        if (errorCode == 0 || (errorCode >= 200 && errorCode < 300))
             errorCode = error.code;
 
         // Error
@@ -1127,7 +1127,7 @@
 #endif
         
         NSInteger errorCode = response.statusCode;
-        if (errorCode == 0)
+        if (errorCode == 0 || (errorCode >= 200 && errorCode < 300))
             errorCode = error.code;
 
         // Error
@@ -1168,7 +1168,7 @@
 #endif
         
         NSInteger errorCode = response.statusCode;
-        if (errorCode == 0)
+        if (errorCode == 0 || (errorCode >= 200 && errorCode < 300))
             errorCode = error.code;
 
         // Error
@@ -1205,7 +1205,7 @@
     } failureRequest:^(NSHTTPURLResponse *response, NSError *error, NSString *redirectedServer) {
         
         NSInteger errorCode = response.statusCode;
-        if (errorCode == 0)
+        if (errorCode == 0 || (errorCode >= 200 && errorCode < 300))
             errorCode = error.code;
 
         // Error
@@ -1254,7 +1254,7 @@
     } failureRequest:^(NSHTTPURLResponse *response, NSError *error, NSString *redirectedServer) {
         
         NSInteger errorCode = response.statusCode;
-        if (errorCode == 0)
+        if (errorCode == 0 || (errorCode >= 200 && errorCode < 300))
             errorCode = error.code;
         
         // Error
@@ -1305,7 +1305,7 @@
     } failureRequest:^(NSHTTPURLResponse *response, NSError *error, NSString *redirectedServer) {
         
         NSInteger errorCode = response.statusCode;
-        if (errorCode == 0)
+        if (errorCode == 0 || (errorCode >= 200 && errorCode < 300))
             errorCode = error.code;
         
         // Error
@@ -1356,7 +1356,7 @@
     } failureRequest:^(NSHTTPURLResponse *response, NSError *error, NSString *redirectedServer) {
         
         NSInteger errorCode = response.statusCode;
-        if (errorCode == 0)
+        if (errorCode == 0 || (errorCode >= 200 && errorCode < 300))
             errorCode = error.code;
         
         // Error
@@ -1395,7 +1395,7 @@
     } failureRequest:^(NSHTTPURLResponse *response, NSError *error, NSString *redirectedServer) {
         
         NSInteger errorCode = response.statusCode;
-        if (errorCode == 0)
+        if (errorCode == 0 || (errorCode >= 200 && errorCode < 300))
             errorCode = error.code;
         
         // Error
@@ -1448,7 +1448,7 @@
     } failureRequest:^(NSHTTPURLResponse *response, NSError *error, NSString *redirectedServer) {
         
         NSInteger errorCode = response.statusCode;
-        if (errorCode == 0)
+        if (errorCode == 0 || (errorCode >= 200 && errorCode < 300))
             errorCode = error.code;
         
         // Error
@@ -1500,7 +1500,7 @@
     } failureRequest:^(NSHTTPURLResponse *response, NSError *error, NSString *redirectedServer) {
         
         NSInteger errorCode = response.statusCode;
-        if (errorCode == 0)
+        if (errorCode == 0 || (errorCode >= 200 && errorCode < 300))
             errorCode = error.code;
         
         // Error
@@ -1553,7 +1553,7 @@
         } failureRequest:^(NSHTTPURLResponse *response, NSError *error, NSString *redirectedServer) {
            
             NSInteger errorCode = response.statusCode;
-            if (errorCode == 0)
+            if (errorCode == 0 || (errorCode >= 200 && errorCode < 300))
                 errorCode = error.code;
             
             // Error
@@ -1578,7 +1578,7 @@
     } failureRequest:^(NSHTTPURLResponse *response, NSError *error, NSString *redirectedServer) {
         
         NSInteger errorCode = response.statusCode;
-        if (errorCode == 0)
+        if (errorCode == 0 || (errorCode >= 200 && errorCode < 300))
             errorCode = error.code;
     
         // Error
@@ -1632,7 +1632,7 @@
     } failureRequest:^(NSHTTPURLResponse *response, NSError *error, NSString *redirectedServer) {
         
         NSInteger errorCode = response.statusCode;
-        if (errorCode == 0)
+        if (errorCode == 0 || (errorCode >= 200 && errorCode < 300))
             errorCode = error.code;
         
         // Error
@@ -1683,7 +1683,7 @@
     } failureRequest:^(NSHTTPURLResponse *response, NSError *error, NSString *redirectedServer) {
         
         NSInteger errorCode = response.statusCode;
-        if (errorCode == 0)
+        if (errorCode == 0 || (errorCode >= 200 && errorCode < 300))
             errorCode = error.code;
 
         // Error
@@ -1729,7 +1729,7 @@
     } failureRequest:^(NSHTTPURLResponse *response, NSError *error, NSString *redirectedServer) {
         
         NSInteger errorCode = response.statusCode;
-        if (errorCode == 0)
+        if (errorCode == 0 || (errorCode >= 200 && errorCode < 300))
             errorCode = error.code;
         
         // Error
@@ -1763,7 +1763,7 @@
     } failureRequest:^(NSHTTPURLResponse *response, NSError *error, NSString *redirectedServer) {
         
         NSInteger errorCode = response.statusCode;
-        if (errorCode == 0)
+        if (errorCode == 0 || (errorCode >= 200 && errorCode < 300))
             errorCode = error.code;
         
         // Error
@@ -1800,7 +1800,7 @@
     } failureRequest:^(NSHTTPURLResponse *response, NSError *error, NSString *redirectedServer) {
         
         NSInteger errorCode = response.statusCode;
-        if (errorCode == 0)
+        if (errorCode == 0 || (errorCode >= 200 && errorCode < 300))
             errorCode = error.code;
         
         // Error
@@ -1835,7 +1835,7 @@
     } failureRequest:^(NSHTTPURLResponse *response, NSError *error, NSString *redirectedServer) {
         
         NSInteger errorCode = response.statusCode;
-        if (errorCode == 0)
+        if (errorCode == 0 || (errorCode >= 200 && errorCode < 300))
             errorCode = error.code;
         
         // Error
@@ -1867,7 +1867,7 @@
     } failureRequest:^(NSHTTPURLResponse *response, NSError *error, NSString *redirectedServer) {
         
         NSInteger errorCode = response.statusCode;
-        if (errorCode == 0)
+        if (errorCode == 0 || (errorCode >= 200 && errorCode < 300))
             errorCode = error.code;
         
         // Error
@@ -1899,7 +1899,7 @@
     } failureRequest:^(NSHTTPURLResponse *response, NSError *error, NSString *redirectedServer) {
         
         NSInteger errorCode = response.statusCode;
-        if (errorCode == 0)
+        if (errorCode == 0 || (errorCode >= 200 && errorCode < 300))
             errorCode = error.code;
         
         // Error
@@ -1933,7 +1933,7 @@
     } failureRequest:^(NSHTTPURLResponse *response, NSError *error, NSString *redirectedServer) {
         
         NSInteger errorCode = response.statusCode;
-        if (errorCode == 0)
+        if (errorCode == 0 || (errorCode >= 200 && errorCode < 300))
             errorCode = error.code;
         
         // Error

+ 1 - 0
iOSClient/Supporting Files/en.lproj/Error.strings

@@ -52,5 +52,6 @@
 "_bad_request_"                         = "Bad request";
 "_webdav_locked_"                       = "WebDAV Locked : The resource that is being accessed is locked";
 "_error_user_not_available_"            = "The user is no longer available";
+"_server_response_error_"               = "Server response contenent error";