237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
|
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
|
-
-
+
+
|
{
if (ssl != NULL)
SSL_shutdown(ssl);
[super close];
}
- (size_t)_readNBytes: (size_t)length
intoBuffer: (void*)buffer
- (size_t)_readIntoBuffer: (void*)buffer
length: (size_t)length
{
ssize_t ret;
if (length > INT_MAX)
@throw [OFOutOfRangeException exceptionWithClass: isa];
if (sock == INVALID_SOCKET)
|
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
|
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
|
-
-
+
+
|
if (ret == 0)
atEndOfStream = YES;
return ret;
}
- (void)_writeNBytes: (size_t)length
fromBuffer: (const void*)buffer
- (void)_writeBuffer: (const void*)buffer
length: (size_t)length
{
if (length > INT_MAX)
@throw [OFOutOfRangeException exceptionWithClass: isa];
if (sock == INVALID_SOCKET)
@throw [OFNotConnectedException exceptionWithClass: isa
socket: self];
|
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
|
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
|
-
-
+
+
|
length = SSL_get_finished(ssl, buffer, 64);
} else {
/* peer sent the finished message */
length = SSL_get_peer_finished(ssl, buffer, 64);
}
data = [OFDataArray dataArray];
[data addNItems: length
fromCArray: buffer];
[data addItemsFromCArray: buffer
count: length];
return data;
}
- (X509Certificate*)peerCertificate
{
X509 *certificate = SSL_get_peer_certificate(ssl);
|