diff options
author | Nikos Mavrogiannopoulos <nmav@gnutls.org> | 2001-10-20 16:04:04 +0000 |
---|---|---|
committer | Nikos Mavrogiannopoulos <nmav@gnutls.org> | 2001-10-20 16:04:04 +0000 |
commit | 2cce439689c70c22169c5950a3426acd039e4116 (patch) | |
tree | c4b23a342420c1e297295d3e102f071a87effbc5 | |
parent | ab63f9fa110d4bb5f46a2903ee124c2116143be7 (diff) | |
download | gnutls-2cce439689c70c22169c5950a3426acd039e4116.tar.gz |
corrected _gnutls_write()
-rw-r--r-- | lib/gnutls_buffers.c | 6 |
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; } |