Browse Source

Use socket argument isntead of capturing self on read of headers.

Nikita Lutsenko 2 years ago
parent
commit
16e9c1bdf6
1 changed files with 10 additions and 6 deletions
  1. 10 6
      SocketRocket/SRWebSocket.m

+ 10 - 6
SocketRocket/SRWebSocket.m

@@ -427,14 +427,18 @@ NSString *const SRHTTPResponseErrorKey = @"HTTPResponseStatusCode";
     }
 
     [self _readUntilHeaderCompleteWithCallback:^(SRWebSocket *socket,  NSData *data) {
-        CFHTTPMessageRef receivedHeaders = self->_receivedHTTPHeaders;
-        CFHTTPMessageAppendBytes(receivedHeaders, (const UInt8 *)data.bytes, data.length);
+        if (!socket) {
+            return;
+        }
+        CFHTTPMessageRef receivedHTTPHeaders = socket->_receivedHTTPHeaders;
+
+        CFHTTPMessageAppendBytes(receivedHTTPHeaders, (const UInt8 *)data.bytes, data.length);
 
-        if (CFHTTPMessageIsHeaderComplete(receivedHeaders)) {
-            SRDebugLog(@"Finished reading headers %@", CFBridgingRelease(CFHTTPMessageCopyAllHeaderFields(receivedHeaders)));
-            [self _HTTPHeadersDidFinish];
+        if (CFHTTPMessageIsHeaderComplete(receivedHTTPHeaders)) {
+            SRDebugLog(@"Finished reading headers %@", CFBridgingRelease(CFHTTPMessageCopyAllHeaderFields(receivedHTTPHeaders)));
+            [socket _HTTPHeadersDidFinish];
         } else {
-            [self _readHTTPHeader];
+            [socket _readHTTPHeader];
         }
     }];
 }