summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNikos Mavrogiannopoulos <nmav@gnutls.org>2001-10-20 16:04:04 +0000
committerNikos Mavrogiannopoulos <nmav@gnutls.org>2001-10-20 16:04:04 +0000
commit2cce439689c70c22169c5950a3426acd039e4116 (patch)
treec4b23a342420c1e297295d3e102f071a87effbc5
parentab63f9fa110d4bb5f46a2903ee124c2116143be7 (diff)
downloadgnutls-2cce439689c70c22169c5950a3426acd039e4116.tar.gz
corrected _gnutls_write()
-rw-r--r--lib/gnutls_buffers.c6
1 files changed, 5 insertions, 1 deletions
diff --git a/lib/gnutls_buffers.c b/lib/gnutls_buffers.c
index e84d74f8b4..9a4de6f0d8 100644
--- a/lib/gnutls_buffers.c
+++ b/lib/gnutls_buffers.c
@@ -332,7 +332,11 @@ ssize_t _gnutls_write(int fd, const void *iptr, size_t n, int flags)
while (left > 0) {
i = _gnutls_send_func(fd, &ptr[i], left, flags);
if (i == -1) {
- return (0-errno);
+ if (errno == EAGAIN || errno == EINTR) {
+ if (errno==EAGAIN) return GNUTLS_E_AGAIN;
+ else return GNUTLS_E_INTERRUPTED;
+ } else
+ return GNUTLS_E_UNKNOWN_ERROR;
}
left -= i;
}