Comment: | Add support for reusing OFStreams after close
Right now, this is only useful for OFTCPSocket, as this is the only |
---|---|
Downloads: | Tarball | ZIP archive | SQL archive |
Timelines: | family | ancestors | descendants | both | trunk |
Files: | files | file ages | folders |
SHA3-256: |
1de551cb5f25425492682c462e01d8ad |
User & Date: | js on 2016-06-07 22:56:28 |
Other Links: | manifest | tags |
2016-06-08
| ||
23:05 | Don't use ARM EHABI if __ARM_DWARF_EH__ is defined check-in: d55f62409f user: js tags: trunk | |
2016-06-07
| ||
22:56 | Add support for reusing OFStreams after close check-in: 1de551cb5f user: js tags: trunk | |
2016-06-06
| ||
20:57 | macros.h: Define OF_MIPS64_ASM on MIPS64 check-in: a2a47a8757 user: js tags: trunk | |
Modified src/OFFile.m from [a34749abe1] to [70abf75d98].
︙ | ︙ | |||
291 292 293 294 295 296 297 298 299 300 301 302 303 304 | - (void)close { if (_fd != -1) close(_fd); _fd = -1; } - (void)dealloc { if (_fd != -1) close(_fd); | > > | 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 | - (void)close { if (_fd != -1) close(_fd); _fd = -1; [super close]; } - (void)dealloc { if (_fd != -1) close(_fd); |
︙ | ︙ |
Modified src/OFHTTPClient.m from [cf407bada1] to [2ea850eecb].
︙ | ︙ | |||
251 252 253 254 255 256 257 258 259 260 261 262 263 264 | return ([super hasDataInReadBuffer] || [_socket hasDataInReadBuffer]); } - (void)close { [_socket release]; _socket = nil; } @end @implementation OFHTTPClient @synthesize delegate = _delegate; @synthesize insecureRedirectsAllowed = _insecureRedirectsAllowed; | > > | 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 | return ([super hasDataInReadBuffer] || [_socket hasDataInReadBuffer]); } - (void)close { [_socket release]; _socket = nil; [super close]; } @end @implementation OFHTTPClient @synthesize delegate = _delegate; @synthesize insecureRedirectsAllowed = _insecureRedirectsAllowed; |
︙ | ︙ |
Modified src/OFHTTPServer.m from [b9d140020a] to [28126036a1].
︙ | ︙ | |||
301 302 303 304 305 306 307 308 309 310 311 312 313 314 | didReceiveExceptionForResponse: self request: _request exception: e]; } [_socket release]; _socket = nil; } - (int)fileDescriptorForWriting { if (_socket == nil) return -1; | > > | 301 302 303 304 305 306 307 308 309 310 311 312 313 314 315 316 | didReceiveExceptionForResponse: self request: _request exception: e]; } [_socket release]; _socket = nil; [super close]; } - (int)fileDescriptorForWriting { if (_socket == nil) return -1; |
︙ | ︙ |
Modified src/OFProcess.m from [e8f32c52e1] to [273ab6b21b].
︙ | ︙ | |||
590 591 592 593 594 595 596 597 598 | CloseHandle(_process); } _process = INVALID_HANDLE_VALUE; _readPipe[0] = NULL; _writePipe[1] = NULL; #endif } @end | > > | 590 591 592 593 594 595 596 597 598 599 600 | CloseHandle(_process); } _process = INVALID_HANDLE_VALUE; _readPipe[0] = NULL; _writePipe[1] = NULL; #endif [super close]; } @end |
Modified src/OFStdIOStream.m from [53b11ea420] to [3491f0262a].
︙ | ︙ | |||
173 174 175 176 177 178 179 180 181 182 183 184 185 186 | - (void)close { if (_fd != -1) close(_fd); _fd = -1; } - autorelease { return self; } | > > | 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 | - (void)close { if (_fd != -1) close(_fd); _fd = -1; [super close]; } - autorelease { return self; } |
︙ | ︙ |
Modified src/OFStream.h from [38cc11b62a] to [c3708c076a].
︙ | ︙ | |||
1117 1118 1119 1120 1121 1122 1123 1124 1125 1126 1127 1128 1129 1130 | * @param length The length of the buffer to unread */ - (void)unreadFromBuffer: (const void*)buffer length: (size_t)length; /*! * @brief Closes the stream. */ - (void)close; /*! * @brief Performs a lowlevel read. * * @warning Do not call this directly! | > > | 1117 1118 1119 1120 1121 1122 1123 1124 1125 1126 1127 1128 1129 1130 1131 1132 | * @param length The length of the buffer to unread */ - (void)unreadFromBuffer: (const void*)buffer length: (size_t)length; /*! * @brief Closes the stream. * * @note If you override this, make sure to call `[super close]`! */ - (void)close; /*! * @brief Performs a lowlevel read. * * @warning Do not call this directly! |
︙ | ︙ |
Modified src/OFStream.m from [b4ba3031a1] to [48141a71fe].
︙ | ︙ | |||
1534 1535 1536 1537 1538 1539 1540 | [self freeMemory: _readBufferMemory]; _readBuffer = _readBufferMemory = readBuffer; _readBufferLength += length; } - (void)close { | > > > | > > > > > > > | 1534 1535 1536 1537 1538 1539 1540 1541 1542 1543 1544 1545 1546 1547 1548 1549 1550 1551 1552 1553 | [self freeMemory: _readBufferMemory]; _readBuffer = _readBufferMemory = readBuffer; _readBufferLength += length; } - (void)close { [self freeMemory: _readBufferMemory]; _readBuffer = _readBufferMemory = NULL; _readBufferLength = 0; [self freeMemory: _writeBuffer]; _writeBuffer = NULL; _writeBufferLength = 0; _writeBuffered = false; _waitingForDelimiter = false; _blocking = false; } @end |
Modified src/OFStreamSocket.m from [3021941e31] to [77a66a4df1].
︙ | ︙ | |||
169 170 171 172 173 174 175 176 177 178 179 180 181 182 | if (_socket == INVALID_SOCKET) @throw [OFNotOpenException exceptionWithObject: self]; close(_socket); _socket = INVALID_SOCKET; _atEndOfStream = false; } - (void)dealloc { if (_socket != INVALID_SOCKET) [self close]; | > > | 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 | if (_socket == INVALID_SOCKET) @throw [OFNotOpenException exceptionWithObject: self]; close(_socket); _socket = INVALID_SOCKET; _atEndOfStream = false; [super close]; } - (void)dealloc { if (_socket != INVALID_SOCKET) [self close]; |
︙ | ︙ |
Modified src/OFTCPSocket.m from [15a3d3213a] to [2735f938b2].
︙ | ︙ | |||
252 253 254 255 256 257 258 | uint16_t destinationPort = port; of_resolver_result_t **results, **iter; int errNo = 0; if (_socket != INVALID_SOCKET) @throw [OFAlreadyConnectedException exceptionWithSocket: self]; | < < < < < < < | 252 253 254 255 256 257 258 259 260 261 262 263 264 265 | uint16_t destinationPort = port; of_resolver_result_t **results, **iter; int errNo = 0; if (_socket != INVALID_SOCKET) @throw [OFAlreadyConnectedException exceptionWithSocket: self]; if (_SOCKS5Host != nil) { /* Connect to the SOCKS5 proxy instead */ host = _SOCKS5Host; port = _SOCKS5Port; } results = of_resolve_host(host, port, SOCK_STREAM); |
︙ | ︙ | |||
662 663 664 665 666 667 668 669 | @throw [OFGetOptionFailedException exceptionWithStream: self errNo: of_socket_errno()]; return v; } #endif @end | > > > > > > > > > > > > > > > | 655 656 657 658 659 660 661 662 663 664 665 666 667 668 669 670 671 672 673 674 675 676 677 | @throw [OFGetOptionFailedException exceptionWithStream: self errNo: of_socket_errno()]; return v; } #endif - (void)close { _listening = false; [self freeMemory: _address]; _address = NULL; _addressLength = 0; #ifdef OF_WII _port = 0; #endif [super close]; } @end |
Modified src/OFTarArchiveEntry.m from [eff1f9c576] to [9d5bd4c896].
︙ | ︙ | |||
150 151 152 153 154 155 156 157 158 159 160 161 162 163 | { return ([super hasDataInReadBuffer] || [_stream hasDataInReadBuffer]); } - (void)close { _atEndOfStream = true; } - (void)OF_skip { char buffer[512]; while (_toRead >= 512) { | > > | 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 | { return ([super hasDataInReadBuffer] || [_stream hasDataInReadBuffer]); } - (void)close { _atEndOfStream = true; [super close]; } - (void)OF_skip { char buffer[512]; while (_toRead >= 512) { |
︙ | ︙ |
Modified src/OFZIPArchive.m from [f2af10f3e4] to [c12f6e9a97].
︙ | ︙ | |||
563 564 565 566 567 568 569 570 571 | return ret; } - (void)close { _closed = true; } @end | > > | 563 564 565 566 567 568 569 570 571 572 573 | return ret; } - (void)close { _closed = true; [super close]; } @end |