]> granicus.if.org Git - libevent/commitdiff
Fix last_with_data compilation on windows
authorNick Mathewson <nickm@torproject.org>
Thu, 11 Mar 2010 19:23:02 +0000 (14:23 -0500)
committerNick Mathewson <nickm@torproject.org>
Thu, 11 Mar 2010 19:23:02 +0000 (14:23 -0500)
buffer.c
buffer_iocp.c

index 6f56dcb8f4d49602d3c64cb602dce79a50509274..20454197c6eb05ece4b0220092c27cbaac49fe2d 100644 (file)
--- a/buffer.c
+++ b/buffer.c
@@ -1770,7 +1770,7 @@ evbuffer_read(struct evbuffer *buf, evutil_socket_t fd, int howmuch)
                nvecs = _evbuffer_read_setup_vecs(buf, howmuch, ev_vecs, 2,
                    &chain, 1);
 
-               for (i=0; i < n_vecs; ++i)
+               for (i=0; i < nvecs; ++i)
                        WSABUF_FROM_EVBUFFER_IOV(&vecs[i], &ev_vecs[i]);
 #endif
 
index 40007cd1d87e0952187afd4b373860d2bb4c7270..cdf2eaa575db5965eeea89f5fb9c53a64a7e2e8e 100644 (file)
@@ -249,12 +249,15 @@ evbuffer_launch_read(struct evbuffer *buf, size_t at_most,
        buf_o->n_buffers = 0;
        memset(buf_o->buffers, 0, sizeof(buf_o->buffers));
 
-       if (_evbuffer_expand_fast(buf, at_most) == -1)
+       if (_evbuffer_expand_fast(buf, at_most, 2) == -1)
                goto done;
        evbuffer_freeze(buf, 0);
 
+       /* XXX This and evbuffer_read_setup_vecs() should say MAX_WSABUFS,
+        * not "2".  But commit_read() above can't handle more than two
+        * buffers yet. */
        nvecs = _evbuffer_read_setup_vecs(buf, at_most,
-           vecs, &chain, 1);
+           vecs, 2, &chain, 1);
        for (i=0;i<nvecs;++i) {
                WSABUF_FROM_EVBUFFER_IOV(
                        &buf_o->buffers[i],