mirror of https://github.com/wolfSSL/wolfssl.git
Merge pull request #1675 from toddouska/zero-error
make SOCKET_PEER_CLOSED_E consistent between read and 2 write casespull/1684/head
commit
f7c5b27bfc
|
@ -14687,8 +14687,12 @@ int SendData(WOLFSSL* ssl, const void* data, int sz)
|
|||
WOLFSSL_MSG("output buffer was full, trying to send again");
|
||||
if ( (ssl->error = SendBuffered(ssl)) < 0) {
|
||||
WOLFSSL_ERROR(ssl->error);
|
||||
if (ssl->error == SOCKET_ERROR_E && ssl->options.connReset)
|
||||
return 0; /* peer reset */
|
||||
if (ssl->error == SOCKET_ERROR_E && (ssl->options.connReset ||
|
||||
ssl->options.isClosed)) {
|
||||
ssl->error = SOCKET_PEER_CLOSED_E;
|
||||
WOLFSSL_ERROR(ssl->error);
|
||||
return 0; /* peer reset or closed */
|
||||
}
|
||||
return ssl->error;
|
||||
}
|
||||
else {
|
||||
|
@ -14770,15 +14774,19 @@ int SendData(WOLFSSL* ssl, const void* data, int sz)
|
|||
|
||||
ssl->buffers.outputBuffer.length += sendSz;
|
||||
|
||||
if ( (ret = SendBuffered(ssl)) < 0) {
|
||||
WOLFSSL_ERROR(ret);
|
||||
if ( (ssl->error = SendBuffered(ssl)) < 0) {
|
||||
WOLFSSL_ERROR(ssl->error);
|
||||
/* store for next call if WANT_WRITE or user embedSend() that
|
||||
doesn't present like WANT_WRITE */
|
||||
ssl->buffers.plainSz = len;
|
||||
ssl->buffers.prevSent = sent;
|
||||
if (ret == SOCKET_ERROR_E && ssl->options.connReset)
|
||||
return 0; /* peer reset */
|
||||
return ssl->error = ret;
|
||||
if (ssl->error == SOCKET_ERROR_E && (ssl->options.connReset ||
|
||||
ssl->options.isClosed)) {
|
||||
ssl->error = SOCKET_PEER_CLOSED_E;
|
||||
WOLFSSL_ERROR(ssl->error);
|
||||
return 0; /* peer reset or closed */
|
||||
}
|
||||
return ssl->error;
|
||||
}
|
||||
|
||||
sent += len;
|
||||
|
|
Loading…
Reference in New Issue