From aa12cbcac2d9f380847644febdf1f13f102cebb1 Mon Sep 17 00:00:00 2001
From: manuroe <manu@matrix.org>
Date: Thu, 24 Nov 2016 11:45:59 +0100
Subject: [PATCH] OLMKit: Make returned NSError provide the raw olm error
 string (ex:"UNKNOWN_MESSAGE_INDEX") in their NSLocalizedDescriptionKey.

NSLocalizedFailureReasonErrorKey can contain more contextual information.
---
 xcode/OLMKit/OLMInboundGroupSession.m  |  9 ++++++---
 xcode/OLMKit/OLMOutboundGroupSession.m |  3 ++-
 xcode/OLMKit/OLMSession.m              | 18 ++++++++++++------
 3 files changed, 20 insertions(+), 10 deletions(-)

diff --git a/xcode/OLMKit/OLMInboundGroupSession.m b/xcode/OLMKit/OLMInboundGroupSession.m
index eec2ffa..4f7bdd7 100644
--- a/xcode/OLMKit/OLMInboundGroupSession.m
+++ b/xcode/OLMKit/OLMInboundGroupSession.m
@@ -65,7 +65,8 @@
                 *error = [NSError errorWithDomain:OLMErrorDomain
                                              code:0
                                          userInfo:@{
-                                                    NSLocalizedDescriptionKey: [NSString stringWithFormat:@"olm_init_inbound_group_session error: %@", errorString]
+                                                    NSLocalizedDescriptionKey: errorString,
+                                                    NSLocalizedFailureReasonErrorKey: [NSString stringWithFormat:@"olm_init_inbound_group_session error: %@", errorString]
                                                     }];
             }
 
@@ -110,7 +111,8 @@
             *error = [NSError errorWithDomain:OLMErrorDomain
                                          code:0
                                      userInfo:@{
-                                                NSLocalizedDescriptionKey: [NSString stringWithFormat:@"olm_group_decrypt_max_plaintext_length error: %@", errorString]
+                                                NSLocalizedDescriptionKey: errorString,
+                                                NSLocalizedFailureReasonErrorKey: [NSString stringWithFormat:@"olm_group_decrypt_max_plaintext_length error: %@", errorString]
                                                 }];
         }
         
@@ -132,7 +134,8 @@
             *error = [NSError errorWithDomain:OLMErrorDomain
                                          code:0
                                      userInfo:@{
-                                                NSLocalizedDescriptionKey: [NSString stringWithFormat:@"olm_group_decrypt error: %@", errorString]
+                                                NSLocalizedDescriptionKey: errorString,
+                                                NSLocalizedFailureReasonErrorKey: [NSString stringWithFormat:@"olm_group_decrypt error: %@", errorString]
                                                 }];
         }
 
diff --git a/xcode/OLMKit/OLMOutboundGroupSession.m b/xcode/OLMKit/OLMOutboundGroupSession.m
index 0046173..d838ebc 100644
--- a/xcode/OLMKit/OLMOutboundGroupSession.m
+++ b/xcode/OLMKit/OLMOutboundGroupSession.m
@@ -118,7 +118,8 @@
             *error = [NSError errorWithDomain:OLMErrorDomain
                                          code:0
                                      userInfo:@{
-                                                NSLocalizedDescriptionKey: [NSString stringWithFormat:@"olm_group_encrypt error: %@", errorString]
+                                                NSLocalizedDescriptionKey: errorString,
+                                                NSLocalizedFailureReasonErrorKey: [NSString stringWithFormat:@"olm_group_encrypt error: %@", errorString]
                                                 }];
         }
 
diff --git a/xcode/OLMKit/OLMSession.m b/xcode/OLMKit/OLMSession.m
index 3801e08..7cbd358 100644
--- a/xcode/OLMKit/OLMSession.m
+++ b/xcode/OLMKit/OLMSession.m
@@ -88,7 +88,8 @@
             *error = [NSError errorWithDomain:OLMErrorDomain
                                          code:0
                                      userInfo:@{
-                                                NSLocalizedDescriptionKey: [NSString stringWithFormat:@"olm_create_outbound_session error: %@", errorString]
+                                                NSLocalizedDescriptionKey: errorString,
+                                                NSLocalizedFailureReasonErrorKey: [NSString stringWithFormat:@"olm_create_outbound_session error: %@", errorString]
                                                 }];
         }
 
@@ -114,7 +115,8 @@
             *error = [NSError errorWithDomain:OLMErrorDomain
                                          code:0
                                      userInfo:@{
-                                                NSLocalizedDescriptionKey: [NSString stringWithFormat:@"olm_create_inbound_session error: %@", errorString]
+                                                NSLocalizedDescriptionKey: errorString,
+                                                NSLocalizedFailureReasonErrorKey: [NSString stringWithFormat:@"olm_create_inbound_session error: %@", errorString]
                                                 }];
         }
 
@@ -141,7 +143,8 @@
             *error = [NSError errorWithDomain:OLMErrorDomain
                                          code:0
                                      userInfo:@{
-                                                NSLocalizedDescriptionKey: [NSString stringWithFormat:@"olm_create_inbound_session_from error: %@", errorString]
+                                                NSLocalizedDescriptionKey: errorString,
+                                                NSLocalizedFailureReasonErrorKey: [NSString stringWithFormat:@"olm_create_inbound_session_from error: %@", errorString]
                                                 }];
         }
 
@@ -222,7 +225,8 @@
             *error = [NSError errorWithDomain:OLMErrorDomain
                                          code:0
                                      userInfo:@{
-                                                NSLocalizedDescriptionKey: [NSString stringWithFormat:@"olm_encrypt error: %@", errorString]
+                                                NSLocalizedDescriptionKey: errorString,
+                                                NSLocalizedFailureReasonErrorKey: [NSString stringWithFormat:@"olm_encrypt error: %@", errorString]
                                                 }];
         }
 
@@ -251,7 +255,8 @@
             *error = [NSError errorWithDomain:OLMErrorDomain
                                          code:0
                                      userInfo:@{
-                                                NSLocalizedDescriptionKey: [NSString stringWithFormat:@"olm_decrypt_max_plaintext_length error: %@", errorString]
+                                                NSLocalizedDescriptionKey: errorString,
+                                                NSLocalizedFailureReasonErrorKey: [NSString stringWithFormat:@"olm_decrypt_max_plaintext_length error: %@", errorString]
                                                 }];
         }
 
@@ -271,7 +276,8 @@
             *error = [NSError errorWithDomain:OLMErrorDomain
                                          code:0
                                      userInfo:@{
-                                                NSLocalizedDescriptionKey: [NSString stringWithFormat:@"olm_decrypt error: %@", errorString]
+                                                NSLocalizedDescriptionKey: errorString,
+                                                NSLocalizedFailureReasonErrorKey: [NSString stringWithFormat:@"olm_decrypt error: %@", errorString]
                                                 }];
         }
 
-- 
GitLab