Differences From Artifact [4f42a57c0b]:
- File src/tls/OFOpenSSLTLSStream.m — part of check-in [6bea538b73] at 2023-09-07 12:31:22 on branch trunk — Fix OFOpenSSLTLSStreams hanging in some cases (user: js, size: 11313) [annotate] [blame] [check-ins using] [more...]
To Artifact [175948cb73]:
- File
src/tls/OFOpenSSLTLSStream.m
— part of check-in
[a61e0594b4]
at
2023-10-15 12:32:29
on branch trunk
— Add -[OFStream lowlevelIsAtEndOfStream]
This allows for a much cleaner solution to avoid the internal read
buffer of e.g. a TLS connection never being processed while waiting for
a delimiter. (user: js, size: 10461) [annotate] [blame] [check-ins using] [more...]
︙ | ︙ | |||
15 16 17 18 19 20 21 | #include "config.h" #include <errno.h> #import "OFOpenSSLTLSStream.h" #import "OFData.h" | < | 15 16 17 18 19 20 21 22 23 24 25 26 27 28 | #include "config.h" #include <errno.h> #import "OFOpenSSLTLSStream.h" #import "OFData.h" #import "OFAlreadyOpenException.h" #import "OFInitializationFailedException.h" #import "OFNotOpenException.h" #import "OFReadFailedException.h" #import "OFTLSHandshakeFailedException.h" #import "OFWriteFailedException.h" |
︙ | ︙ | |||
193 194 195 196 197 198 199 | [_underlyingStream writeBuffer: _buffer length: tmp]; [_underlyingStream flushWriteBuffer]; } return bytesWritten; } | | < < < | < < < < < < < < < < < < < < < < < < < < < < | < < < | 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 | [_underlyingStream writeBuffer: _buffer length: tmp]; [_underlyingStream flushWriteBuffer]; } return bytesWritten; } - (bool)lowlevelHasDataInReadBuffer { return (_underlyingStream.hasDataInReadBuffer || SSL_has_pending(_SSL) || BIO_ctrl_pending(_readBIO) > 0); } - (void)asyncPerformClientHandshakeWithHost: (OFString *)host runLoopMode: (OFRunLoopMode)runLoopMode { static const OFTLSStreamErrorCode initFailedErrorCode = OFTLSStreamErrorCodeInitializationFailed; |
︙ | ︙ |