1
0
mirror of https://github.com/samba-team/samba.git synced 2025-01-13 13:18:06 +03:00

r7745: better handling of recv errors in tls library

(This used to be commit 42d8a1a222)
This commit is contained in:
Andrew Tridgell 2005-06-19 07:19:42 +00:00 committed by Gerald (Jerry) Carter
parent 822498b7f5
commit 28fd9ea80b

View File

@ -69,9 +69,19 @@ static ssize_t tls_pull(gnutls_transport_ptr ptr, void *buf, size_t size)
}
status = socket_recv(tls->socket, buf, size, &nread, 0);
if (NT_STATUS_EQUAL(status, NT_STATUS_END_OF_FILE)) {
return 0;
}
if (NT_STATUS_IS_ERR(status)) {
EVENT_FD_NOT_READABLE(tls->fde);
EVENT_FD_NOT_WRITEABLE(tls->fde);
errno = EBADF;
return -1;
}
if (!NT_STATUS_IS_OK(status)) {
EVENT_FD_READABLE(tls->fde);
EVENT_FD_NOT_WRITEABLE(tls->fde);
errno = EAGAIN;
return -1;
}
if (tls->output_pending) {
@ -185,7 +195,6 @@ NTSTATUS tls_socket_recv(struct tls_context *tls, void *buf, size_t wantlen,
return STATUS_MORE_ENTRIES;
}
if (ret < 0) {
DEBUG(0,("gnutls_record_recv failed - %s\n", gnutls_strerror(ret)));
return NT_STATUS_UNEXPECTED_NETWORK_ERROR;
}
*nread = ret;