From 10d492a94a4440d41d6a3b2d5941da31c1e62c45 Mon Sep 17 00:00:00 2001 From: Jonathan Schleifer Date: Sun, 2 Jul 2017 14:22:03 +0200 Subject: [PATCH] Adjust to ObjFW changes --- src/SSLSocket.m | 18 +++++++++++------- 1 file changed, 11 insertions(+), 7 deletions(-) diff --git a/src/SSLSocket.m b/src/SSLSocket.m index 85ad610..4425fbe 100644 --- a/src/SSLSocket.m +++ b/src/SSLSocket.m @@ -355,20 +355,24 @@ locking_callback(int mode, int n, const char *file, int line) - (void)lowlevelWriteBuffer: (const void *)buffer length: (size_t)length { - if (length > INT_MAX) - @throw [OFOutOfRangeException exception]; + int bytesWritten; if (_socket == INVALID_SOCKET) @throw [OFNotOpenException exceptionWithObject: self]; - if (_atEndOfStream) - @throw [OFWriteFailedException exceptionWithObject: self - requestedLength: length - errNo: ENOTCONN]; + if (length > INT_MAX) + @throw [OFOutOfRangeException exception]; - if (SSL_write(_SSL, buffer, (int)length) < length) + if ((bytesWritten = SSL_write(_SSL, buffer, (int)length)) < 0) @throw [OFWriteFailedException exceptionWithObject: self requestedLength: length + bytesWritten: 0 + errNo: 0]; + + if ((size_t)bytesWritten != length) + @throw [OFWriteFailedException exceptionWithObject: self + requestedLength: length + bytesWritten: bytesWritten errNo: 0]; }