@@ -1054,27 +1054,29 @@ { return [self tryReadTillDelimiter: delimiter encoding: OFStringEncodingUTF8]; } -- (void)flushWriteBuffer +- (bool)flushWriteBuffer { size_t bytesWritten; if (_writeBuffer == NULL) - return; + return true; bytesWritten = [self lowlevelWriteBuffer: _writeBuffer length: _writeBufferLength]; if (bytesWritten == 0) - return; + return false; if (bytesWritten == _writeBufferLength) { OFFreeMemory(_writeBuffer); _writeBuffer = NULL; _writeBufferLength = 0; + + return true; } OFEnsure(bytesWritten <= _writeBufferLength); memmove(_writeBuffer, _writeBuffer + bytesWritten, @@ -1084,10 +1086,12 @@ _writeBuffer = OFResizeMemory(_writeBuffer, _writeBufferLength, 1); } @catch (OFOutOfMemoryException *e) { /* We don't care, as we only made it smaller. */ } + + return false; } - (void)writeBuffer: (const void *)buffer length: (size_t)length { if (!_buffersWrites) {