From: Nick Mathewson Date: Sat, 27 Mar 2010 04:09:25 +0000 (-0400) Subject: Make the no_iovecs case of write_atmost compile X-Git-Tag: release-2.0.5-beta~66 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=8e227b04da54b7c4a029a2c9d335c582da4a5dcc;p=libevent 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. --- 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 }