diff options
author | Sergey Yershov <yershov@corp.mail.ru> | 2016-10-21 19:37:54 +0300 |
---|---|---|
committer | Sergey Yershov <yershov@corp.mail.ru> | 2016-10-25 17:16:00 +0300 |
commit | 9e736d00a54d507e95da0a0979d678bc549b6d6b (patch) | |
tree | d1636506cf2ddf3014edb97983ab02265960f754 /platform | |
parent | 671f29af9155f1edc764e106c40b4f48a52f418d (diff) |
[ios] Correct initialization of SSL socket
Diffstat (limited to 'platform')
-rw-r--r-- | platform/socket.hpp | 2 | ||||
-rw-r--r-- | platform/socket_apple.mm | 19 |
2 files changed, 12 insertions, 9 deletions
diff --git a/platform/socket.hpp b/platform/socket.hpp index 43083630ee..9e0c2f75d3 100644 --- a/platform/socket.hpp +++ b/platform/socket.hpp @@ -25,5 +25,5 @@ public: virtual void SetTimeout(uint32_t milliseconds) = 0; }; -unique_ptr<Socket> createSocket(); +unique_ptr<Socket> CreateSocket(); } // namespace platform diff --git a/platform/socket_apple.mm b/platform/socket_apple.mm index 670f8a4692..d38fd9ba2d 100644 --- a/platform/socket_apple.mm +++ b/platform/socket_apple.mm @@ -30,17 +30,19 @@ CFReadStreamRef readStream; CFWriteStreamRef writeStream; - CFStreamCreatePairWithSocketToHost(NULL, (__bridge CFStringRef)(host), port, &readStream, + CFStreamCreatePairWithSocketToHost(NULL, (__bridge CFStringRef)(host), (UInt32)port, &readStream, &writeStream); + NSDictionary * settings = @{(id)kCFStreamSSLValidatesCertificateChain : @NO, + (id)kCFStreamSSLLevel : (id)kCFStreamSocketSecurityLevelTLSv1, + }; + + CFReadStreamSetProperty(readStream, kCFStreamPropertySSLSettings, (CFTypeRef)settings); + CFWriteStreamSetProperty(writeStream, kCFStreamPropertySSLSettings, (CFTypeRef)settings); + self.inputStream = (__bridge_transfer NSInputStream *)readStream; self.outputStream = (__bridge_transfer NSOutputStream *)writeStream; - [self.inputStream setProperty:NSStreamSocketSecurityLevelNegotiatedSSL - forKey:NSStreamSocketSecurityLevelKey]; - [self.outputStream setProperty:NSStreamSocketSecurityLevelNegotiatedSSL - forKey:NSStreamSocketSecurityLevelKey]; - [self.inputStream open]; [self.outputStream open]; @@ -113,8 +115,9 @@ if (!self.outputStream || self.outputStream.streamStatus != NSStreamStatusOpen) return NO; - NSDate * writeStart = [NSDate date]; uint8_t const * writePtr = data; + + NSDate * writeStart = [NSDate date]; while (count != 0 && [[NSDate date] timeIntervalSinceDate:writeStart] < self.timeout) { NSInteger const writeCount = [self.outputStream write:writePtr maxLength:count]; @@ -164,7 +167,7 @@ private: SocketImpl * m_socketImpl = nullptr; }; -unique_ptr<Socket> createSocket() +unique_ptr<Socket> CreateSocket() { return make_unique<PlatformSocket>(); } |