From 8e227b04da54b7c4a029a2c9d335c582da4a5dcc Mon Sep 17 00:00:00 2001 From: Nick Mathewson Date: Sat, 27 Mar 2010 00:09:25 -0400 Subject: [PATCH] Make the no_iovecs case of write_atmost compile Apparently nobody had tested it before on a system that had sendfile. Why would you have sendfile and not writev? Perhaps you're trying to test the no-iovecs code to make sure it still works. --- buffer.c | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/buffer.c b/buffer.c index 85890ff6..22a37736 100644 --- a/buffer.c +++ b/buffer.c @@ -2010,12 +2010,12 @@ evbuffer_write_atmost(struct evbuffer *buffer, evutil_socket_t fd, if (howmuch < 0 || howmuch > buffer->total_len) howmuch = buffer->total_len; - { + if (howmuch > 0) { #ifdef USE_SENDFILE struct evbuffer_chain *chain = buffer->first; if (chain != NULL && (chain->flags & EVBUFFER_SENDFILE)) n = evbuffer_write_sendfile(buffer, fd, howmuch); - else + else { #endif #ifdef USE_IOVEC_IMPL n = evbuffer_write_iovec(buffer, fd, howmuch); @@ -2027,6 +2027,9 @@ evbuffer_write_atmost(struct evbuffer *buffer, evutil_socket_t fd, #else void *p = evbuffer_pullup(buffer, howmuch); n = write(fd, p, howmuch); +#endif +#ifdef USE_SENDFILE + } #endif } -- 2.50.1