Overview
| Comment: | OFOpenSSLTLSStream: Copy from _writeBIO in a loop
_writeBIO might contain more data than we can write at once, which could |
|---|---|
| Downloads: | Tarball | ZIP archive | SQL archive |
| Timelines: | family | ancestors | descendants | both | trunk |
| Files: | files | file ages | folders |
| SHA3-256: |
4b3d25ac762227db46df3c9dc21c255c |
| User & Date: | js on 2022-03-24 21:00:03 |
| Other Links: | manifest | tags |
Context
|
2022-03-24
| ||
| 21:12 | README.md: Move "Donating" to the Wiki (check-in: cb75aa16d9 user: js tags: trunk) | |
| 21:00 | OFOpenSSLTLSStream: Copy from _writeBIO in a loop (check-in: 4b3d25ac76 user: js tags: trunk) | |
| 17:54 | Use -lssl_shared -lcrypto_shared on MorphOS (check-in: 9654e02ae0 user: js tags: trunk) | |
Changes
Modified src/tls/OFOpenSSLTLSStream.m from [2ce21e69b2] to [f8706b398d].
| ︙ | ︙ | |||
122 123 124 125 126 127 128 | if (e.errNo != EWOULDBLOCK && e.errNo != EAGAIN) @throw e; } } ret = SSL_read_ex(_SSL, buffer, length, &bytesRead); | | | 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 |
if (e.errNo != EWOULDBLOCK && e.errNo != EAGAIN)
@throw e;
}
}
ret = SSL_read_ex(_SSL, buffer, length, &bytesRead);
while (BIO_ctrl_pending(_writeBIO) > 0) {
int tmp = BIO_read(_writeBIO, _buffer, bufferSize);
OFEnsure(tmp >= 0);
[_underlyingStream writeBuffer: _buffer length: tmp];
[_underlyingStream flushWriteBuffer];
}
|
| ︙ | ︙ | |||
174 175 176 177 178 179 180 | @throw [OFWriteFailedException exceptionWithObject: self requestedLength: length bytesWritten: bytesWritten errNo: errNo]; } | | | 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 |
@throw [OFWriteFailedException exceptionWithObject: self
requestedLength: length
bytesWritten: bytesWritten
errNo: errNo];
}
while (BIO_ctrl_pending(_writeBIO) > 0) {
int tmp = BIO_read(_writeBIO, _buffer, bufferSize);
OFEnsure(tmp >= 0);
[_underlyingStream writeBuffer: _buffer length: tmp];
[_underlyingStream flushWriteBuffer];
}
|
| ︙ | ︙ | |||
254 255 256 257 258 259 260 | exceptionWithStream: self host: host errorCode: initFailedErrorCode]; } status = SSL_do_handshake(_SSL); | | | 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 |
exceptionWithStream: self
host: host
errorCode: initFailedErrorCode];
}
status = SSL_do_handshake(_SSL);
while (BIO_ctrl_pending(_writeBIO) > 0) {
int tmp = BIO_read(_writeBIO, _buffer, bufferSize);
OFEnsure(tmp >= 0);
[_underlyingStream writeBuffer: _buffer length: tmp];
[_underlyingStream flushWriteBuffer];
}
|
| ︙ | ︙ | |||
313 314 315 316 317 318 319 | OFEnsure(length <= INT_MAX); OFEnsure(BIO_write(_readBIO, buffer, (int)length) == (int)length); status = SSL_do_handshake(_SSL); | | | 313 314 315 316 317 318 319 320 321 322 323 324 325 326 327 |
OFEnsure(length <= INT_MAX);
OFEnsure(BIO_write(_readBIO, buffer, (int)length) ==
(int)length);
status = SSL_do_handshake(_SSL);
while (BIO_ctrl_pending(_writeBIO) > 0) {
int tmp = BIO_read(_writeBIO, buffer, bufferSize);
OFEnsure(tmp >= 0);
[_underlyingStream writeBuffer: _buffer length: tmp];
[_underlyingStream flushWriteBuffer];
}
|
| ︙ | ︙ | |||
367 368 369 370 371 372 373 |
{
if (exception == nil) {
static const OFTLSStreamErrorCode unknownErrorCode =
OFTLSStreamErrorCodeUnknown;
int status;
OFRunLoopMode runLoopMode;
| | | | 367 368 369 370 371 372 373 374 375 376 377 378 379 380 381 382 383 384 385 386 387 388 389 390 391 392 |
{
if (exception == nil) {
static const OFTLSStreamErrorCode unknownErrorCode =
OFTLSStreamErrorCodeUnknown;
int status;
OFRunLoopMode runLoopMode;
while (BIO_ctrl_pending(_writeBIO) > 0) {
int tmp = BIO_read(_writeBIO, _buffer, bufferSize);
OFEnsure(tmp >= 0);
[_underlyingStream writeBuffer: _buffer length: tmp];
[_underlyingStream flushWriteBuffer];
}
status = SSL_do_handshake(_SSL);
while (BIO_ctrl_pending(_writeBIO) > 0) {
int tmp = BIO_read(_writeBIO, _buffer, bufferSize);
OFEnsure(tmp >= 0);
[_underlyingStream writeBuffer: _buffer length: tmp];
[_underlyingStream flushWriteBuffer];
}
|
| ︙ | ︙ |