changeset 478:0363ba999da5 HEAD

OBuffer was closed if sendfile() wasn't supported.
author Timo Sirainen <tss@iki.fi>
date Tue, 22 Oct 2002 01:23:20 +0300
parents 6617a4d1c424
children c64ef7b87247
files src/lib/obuffer-file.c
diffstat 1 files changed, 8 insertions(+), 1 deletions(-) [+]
line wrap: on
line diff
--- a/src/lib/obuffer-file.c	Tue Oct 22 01:18:25 2002 +0300
+++ b/src/lib/obuffer-file.c	Tue Oct 22 01:23:20 2002 +0300
@@ -627,7 +627,11 @@
 	if (s_ret < 0) {
 		if (errno != EINTR && errno != EAGAIN) {
 			outbuf->obuffer.buf_errno = errno;
-			buffer_closed(foutbuf);
+			if (errno != EINVAL) {
+				/* close only if error wasn't because
+				   sendfile() isn't supported */
+				buffer_closed(foutbuf);
+			}
 			return -1;
 		}
 		s_ret = 0;
@@ -673,6 +677,9 @@
 	if (ret >= 0 || outbuf->obuffer.buf_errno != EINVAL)
 		return ret;
 
+	/* sendfile() not supported, reset error */
+	outbuf->obuffer.buf_errno = 0;
+
 	/* sendfile() not supported (with this fd), fallback to
 	   regular sending */