Refactor generation of mbedTLS errors

This commit is contained in:
Sergey Abramchuk
2018-01-18 16:39:41 +03:00
parent 761564a028
commit eff0bccfef
7 changed files with 54 additions and 115 deletions
+22
View File
@@ -7,6 +7,8 @@
#import "NSError+OpenVPNError.h"
#import <mbedtls/error.h>
#import "OpenVPNError.h"
@implementation NSError (OpenVPNAdapterErrorGeneration)
@@ -179,3 +181,23 @@
}
@end
@implementation NSError (OpenVPNMbedTLSErrorGeneration)
+ (NSError *)ovpn_errorObjectForMbedTLSError:(NSInteger)errorCode description:(NSString *)description {
size_t length = 1024;
char *buffer = malloc(length);
mbedtls_strerror(errorCode, buffer, length);
NSString *reason = [NSString stringWithUTF8String:buffer];
free(buffer);
return [NSError errorWithDomain:OpenVPNIdentityErrorDomain code:errorCode userInfo:@{
NSLocalizedDescriptionKey: description,
NSLocalizedFailureReasonErrorKey: reason
}];
}
@end