Source-Changes-HG archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

[src/trunk]: src/external/bsd/libevent Merge local changes from libevent 2.1....



details:   https://anonhg.NetBSD.org/src/rev/c606ff0717f4
branches:  trunk
changeset: 954396:c606ff0717f4
user:      christos <christos%NetBSD.org@localhost>
date:      Wed Apr 07 03:36:48 2021 +0000

description:
Merge local changes from libevent 2.1.8 and 2.1.12

diffstat:

 external/bsd/libevent/Makefile.inc                    |      4 +-
 external/bsd/libevent/dist/Doxyfile                   |     46 +-
 external/bsd/libevent/dist/buffer.c                   |     55 +-
 external/bsd/libevent/dist/bufferevent-internal.h     |     39 +-
 external/bsd/libevent/dist/bufferevent.c              |    120 +-
 external/bsd/libevent/dist/bufferevent_openssl.c      |      6 +-
 external/bsd/libevent/dist/bufferevent_ratelim.c      |     12 +-
 external/bsd/libevent/dist/compile                    |    347 -
 external/bsd/libevent/dist/config.guess               |   1463 --
 external/bsd/libevent/dist/config.sub                 |   1828 --
 external/bsd/libevent/dist/depcomp                    |    791 -
 external/bsd/libevent/dist/evbuffer-internal.h        |      5 +-
 external/bsd/libevent/dist/evconfig-private.h         |     50 -
 external/bsd/libevent/dist/evdns.c                    |    149 +-
 external/bsd/libevent/dist/event-internal.h           |     16 +-
 external/bsd/libevent/dist/event.c                    |    401 +-
 external/bsd/libevent/dist/event_tagging.c            |      9 +-
 external/bsd/libevent/dist/evmap.c                    |     48 +-
 external/bsd/libevent/dist/evrpc.c                    |     11 +-
 external/bsd/libevent/dist/evthread-internal.h        |     19 +-
 external/bsd/libevent/dist/evthread.c                 |      7 +-
 external/bsd/libevent/dist/evutil.c                   |    152 +-
 external/bsd/libevent/dist/evutil_rand.c              |     11 +-
 external/bsd/libevent/dist/http.c                     |    265 +-
 external/bsd/libevent/dist/include/event2/rpc.h       |     51 +-
 external/bsd/libevent/dist/include/event2/util.h      |     37 +-
 external/bsd/libevent/dist/install-sh                 |    501 -
 external/bsd/libevent/dist/kqueue.c                   |     16 +-
 external/bsd/libevent/dist/log-internal.h             |     28 +-
 external/bsd/libevent/dist/log.c                      |     15 +-
 external/bsd/libevent/dist/ltmain.sh                  |  11147 ----------------
 external/bsd/libevent/dist/minheap-internal.h         |      8 +-
 external/bsd/libevent/dist/missing                    |    215 -
 external/bsd/libevent/dist/select.c                   |      6 +-
 external/bsd/libevent/dist/test-driver                |    148 -
 external/bsd/libevent/dist/test/regress.c             |    345 +-
 external/bsd/libevent/dist/test/regress.h             |     10 +-
 external/bsd/libevent/dist/test/regress_buffer.c      |    386 +-
 external/bsd/libevent/dist/test/regress_bufferevent.c |    163 +-
 external/bsd/libevent/dist/test/regress_dns.c         |    531 +-
 external/bsd/libevent/dist/test/regress_et.c          |    151 +-
 external/bsd/libevent/dist/test/regress_http.c        |    496 +-
 external/bsd/libevent/dist/test/regress_listener.c    |    103 +-
 external/bsd/libevent/dist/test/regress_main.c        |     74 +-
 external/bsd/libevent/dist/test/regress_rpc.c         |     54 +-
 external/bsd/libevent/dist/test/regress_ssl.c         |    406 +-
 external/bsd/libevent/dist/test/regress_thread.c      |     13 +-
 external/bsd/libevent/dist/test/regress_util.c        |    201 +-
 external/bsd/libevent/dist/test/tinytest_macros.h     |     15 +-
 external/bsd/libevent/dist/util-internal.h            |     75 +-
 external/bsd/libevent/include/event2/event-config.h   |    125 +-
 external/bsd/libevent/libevent2netbsd                 |      3 +-
 52 files changed, 3517 insertions(+), 17660 deletions(-)

diffs (truncated from 26000 to 300 lines):

diff -r 3cc966785e4a -r c606ff0717f4 external/bsd/libevent/Makefile.inc
--- a/external/bsd/libevent/Makefile.inc        Wed Apr 07 02:59:01 2021 +0000
+++ b/external/bsd/libevent/Makefile.inc        Wed Apr 07 03:36:48 2021 +0000
@@ -1,4 +1,4 @@
-# $NetBSD: Makefile.inc,v 1.3 2017/01/31 23:17:39 christos Exp $
+# $NetBSD: Makefile.inc,v 1.4 2021/04/07 03:36:48 christos Exp $
 
 .include <bsd.own.mk>
 
@@ -10,7 +10,7 @@
 CPPFLAGS+=     -I${LIBEVENT_DIST}/include
 
 SHLIB_MAJOR=   4
-SHLIB_MINOR=   1
+SHLIB_MINOR=   2
 
 WARNS?=                4
 
diff -r 3cc966785e4a -r c606ff0717f4 external/bsd/libevent/dist/Doxyfile
--- a/external/bsd/libevent/dist/Doxyfile       Wed Apr 07 02:59:01 2021 +0000
+++ b/external/bsd/libevent/dist/Doxyfile       Wed Apr 07 03:36:48 2021 +0000
@@ -17,11 +17,11 @@
 # The PROJECT_NAME tag is a single word (or a sequence of words surrounded 
 # by quotes) that should identify the project.
 
-PROJECT_NAME           = libevent
+PROJECT_NAME           = $(PROJECT)-$(VERSION)
 
 # Place all output under 'doxygen/'
 
-OUTPUT_DIRECTORY        = doxygen/
+OUTPUT_DIRECTORY        = $(DOCDIR)
 
 # If the JAVADOC_AUTOBRIEF tag is set to YES then Doxygen 
 # will interpret the first line (until the first dot) of a JavaDoc-style 
@@ -64,24 +64,24 @@
 # with spaces.
 
 INPUT                  = \
-        include/event2/buffer.h \
-        include/event2/buffer_compat.h \
-        include/event2/bufferevent.h \
-        include/event2/bufferevent_compat.h \
-        include/event2/bufferevent_ssl.h \
-        include/event2/dns.h \
-        include/event2/dns_compat.h \
-        include/event2/event.h \
-        include/event2/event_compat.h \
-        include/event2/http.h \
-        include/event2/http_compat.h \
-        include/event2/listener.h \
-        include/event2/rpc.h \
-        include/event2/rpc_compat.h \
-        include/event2/tag.h \
-        include/event2/tag_compat.h \
-        include/event2/thread.h \
-        include/event2/util.h
+        $(SRCDIR)/include/event2/buffer.h \
+        $(SRCDIR)/include/event2/buffer_compat.h \
+        $(SRCDIR)/include/event2/bufferevent.h \
+        $(SRCDIR)/include/event2/bufferevent_compat.h \
+        $(SRCDIR)/include/event2/bufferevent_ssl.h \
+        $(SRCDIR)/include/event2/dns.h \
+        $(SRCDIR)/include/event2/dns_compat.h \
+        $(SRCDIR)/include/event2/event.h \
+        $(SRCDIR)/include/event2/event_compat.h \
+        $(SRCDIR)/include/event2/http.h \
+        $(SRCDIR)/include/event2/http_compat.h \
+        $(SRCDIR)/include/event2/listener.h \
+        $(SRCDIR)/include/event2/rpc.h \
+        $(SRCDIR)/include/event2/rpc_compat.h \
+        $(SRCDIR)/include/event2/tag.h \
+        $(SRCDIR)/include/event2/tag_compat.h \
+        $(SRCDIR)/include/event2/thread.h \
+        $(SRCDIR)/include/event2/util.h
 
 #---------------------------------------------------------------------------
 # configuration options related to the HTML output
@@ -90,7 +90,7 @@
 # If the GENERATE_HTML tag is set to YES (the default) Doxygen will 
 # generate HTML output.
 
-GENERATE_HTML          = YES
+GENERATE_HTML          = $(GENERATE_HTML)
 
 #---------------------------------------------------------------------------
 # configuration options related to the LaTeX output
@@ -99,7 +99,7 @@
 # If the GENERATE_LATEX tag is set to YES (the default) Doxygen will 
 # generate Latex output.
 
-GENERATE_LATEX         = YES
+GENERATE_LATEX         = $(GENERATE_LATEX)
 
 # The LATEX_OUTPUT tag is used to specify where the LaTeX docs will be put. 
 # If a relative path is entered the value of OUTPUT_DIRECTORY will be 
@@ -175,7 +175,7 @@
 # If the GENERATE_MAN tag is set to YES (the default) Doxygen will 
 # generate man pages
 
-GENERATE_MAN           = YES
+GENERATE_MAN           = $(GENERATE_MAN)
 
 # The MAN_EXTENSION tag determines the extension that is added to 
 # the generated man pages (default is the subroutine's section .3)
diff -r 3cc966785e4a -r c606ff0717f4 external/bsd/libevent/dist/buffer.c
--- a/external/bsd/libevent/dist/buffer.c       Wed Apr 07 02:59:01 2021 +0000
+++ b/external/bsd/libevent/dist/buffer.c       Wed Apr 07 03:36:48 2021 +0000
@@ -1,4 +1,5 @@
-/*     $NetBSD: buffer.c,v 1.4 2017/01/31 23:17:39 christos Exp $      */
+/*     $NetBSD: buffer.c,v 1.5 2021/04/07 03:36:48 christos Exp $      */
+
 /*
  * Copyright (c) 2002-2007 Niels Provos <provos%citi.umich.edu@localhost>
  * Copyright (c) 2007-2012 Niels Provos and Nick Mathewson
@@ -28,7 +29,7 @@
 
 #include "event2/event-config.h"
 #include <sys/cdefs.h>
-__RCSID("$NetBSD: buffer.c,v 1.4 2017/01/31 23:17:39 christos Exp $");
+__RCSID("$NetBSD: buffer.c,v 1.5 2021/04/07 03:36:48 christos Exp $");
 #include "evconfig-private.h"
 
 #ifdef _WIN32
@@ -98,6 +99,7 @@
 #include "evthread-internal.h"
 #include "evbuffer-internal.h"
 #include "bufferevent-internal.h"
+#include "event-internal.h"
 
 /* some systems do not have MAP_FAILED */
 #ifndef MAP_FAILED
@@ -525,8 +527,8 @@
                        evbuffer_incref_and_lock_(buffer);
                        if (buffer->parent)
                                bufferevent_incref_(buffer->parent);
+                       EVBUFFER_UNLOCK(buffer);
                }
-               EVBUFFER_UNLOCK(buffer);
        }
 
        evbuffer_run_callbacks(buffer, 0);
@@ -706,13 +708,17 @@
 advance_last_with_data(struct evbuffer *buf)
 {
        int n = 0;
+       struct evbuffer_chain **chainp = buf->last_with_datap;
+
        ASSERT_EVBUFFER_LOCKED(buf);
 
-       if (!*buf->last_with_datap)
+       if (!*chainp)
                return 0;
 
-       while ((*buf->last_with_datap)->next && (*buf->last_with_datap)->next->off) {
-               buf->last_with_datap = &(*buf->last_with_datap)->next;
+       while ((*chainp)->next) {
+               chainp = &(*chainp)->next;
+               if ((*chainp)->off)
+                       buf->last_with_datap = chainp;
                ++n;
        }
        return n;
@@ -1149,7 +1155,7 @@
                }
 
                buf->first = chain;
-               EVUTIL_ASSERT(chain && remaining <= chain->off);
+               EVUTIL_ASSERT(remaining <= chain->off);
                chain->misalign += remaining;
                chain->off -= remaining;
        }
@@ -1301,7 +1307,7 @@
                chain = chain->next;
        }
 
-       if (nread) {
+       if (chain != src->first) {
                /* we can remove the chain */
                struct evbuffer_chain **chp;
                chp = evbuffer_free_trailing_empty_chains(dst);
@@ -1419,9 +1425,11 @@
        for (; chain != NULL && (size_t)size >= chain->off; chain = next) {
                next = chain->next;
 
-               memcpy(buffer, chain->buffer + chain->misalign, chain->off);
-               size -= chain->off;
-               buffer += chain->off;
+               if (chain->buffer) {
+                       memcpy(buffer, chain->buffer + chain->misalign, chain->off);
+                       size -= chain->off;
+                       buffer += chain->off;
+               }
                if (chain == last_with_data)
                        removed_last_with_data = 1;
                if (&chain->next == buf->last_with_datap)
@@ -1537,11 +1545,11 @@
        return (-1);
 }
 
-static inline int
+static inline size_t
 evbuffer_strspn(
        struct evbuffer_ptr *ptr, const char *chrset)
 {
-       int count = 0;
+       size_t count = 0;
        struct evbuffer_chain *chain = ptr->internal_.chain;
        size_t i = ptr->internal_.pos_in_chain;
 
@@ -1827,6 +1835,10 @@
 
        EVBUFFER_LOCK(buf);
 
+       if (datlen == 0) {
+               result = 0;
+               goto done;
+       }
        if (buf->freeze_start) {
                goto done;
        }
@@ -1880,7 +1892,7 @@
        if ((tmp = evbuffer_chain_new(datlen)) == NULL)
                goto done;
        buf->first = tmp;
-       if (buf->last_with_datap == &buf->first)
+       if (buf->last_with_datap == &buf->first && chain->off)
                buf->last_with_datap = &tmp->next;
 
        tmp->next = chain;
@@ -2230,11 +2242,13 @@
        so_far = 0;
        /* Let firstchain be the first chain with any space on it */
        firstchainp = buf->last_with_datap;
+       EVUTIL_ASSERT(*firstchainp);
        if (CHAIN_SPACE_LEN(*firstchainp) == 0) {
                firstchainp = &(*firstchainp)->next;
        }
 
        chain = *firstchainp;
+       EVUTIL_ASSERT(chain);
        for (i = 0; i < n_vecs_avail && so_far < (size_t)howmuch; ++i) {
                size_t avail = (size_t) CHAIN_SPACE_LEN(chain);
                if (avail > (howmuch - so_far) && exact)
@@ -2468,7 +2482,7 @@
        ev_off_t len = chain->off;
 #elif defined(SENDFILE_IS_LINUX) || defined(SENDFILE_IS_SOLARIS)
        ev_ssize_t res;
-       ev_off_t offset = chain->misalign;
+       off_t offset = chain->misalign;
 #endif
 
        ASSERT_EVBUFFER_LOCKED(buffer);
@@ -3201,7 +3215,6 @@
                        }
                }
        }
-       ++seg->refcnt;
        EVLOCK_UNLOCK(seg->lock, 0);
 
        if (buf->freeze_end)
@@ -3265,6 +3278,9 @@
                chain->off = length;
        }
 
+       EVLOCK_LOCK(seg->lock, 0);
+       ++seg->refcnt;
+       EVLOCK_UNLOCK(seg->lock, 0);
        extra->segment = seg;
        buf->n_add_for_cb += length;
        evbuffer_chain_insert(buf, chain);
@@ -3296,7 +3312,7 @@
        return r;
 }
 
-void
+int
 evbuffer_setcb(struct evbuffer *buffer, evbuffer_cb cb, void *cbarg)
 {
        EVBUFFER_LOCK(buffer);
@@ -3307,10 +3323,15 @@
        if (cb) {
                struct evbuffer_cb_entry *ent =
                    evbuffer_add_cb(buffer, NULL, cbarg);
+               if (!ent) {
+                       EVBUFFER_UNLOCK(buffer);
+                       return -1;
+               }
                ent->cb.cb_obsolete = cb;
                ent->flags |= EVBUFFER_CB_OBSOLETE;
        }
        EVBUFFER_UNLOCK(buffer);
+       return 0;
 }
 
 struct evbuffer_cb_entry *
diff -r 3cc966785e4a -r c606ff0717f4 external/bsd/libevent/dist/bufferevent-internal.h
--- a/external/bsd/libevent/dist/bufferevent-internal.h Wed Apr 07 02:59:01 2021 +0000
+++ b/external/bsd/libevent/dist/bufferevent-internal.h Wed Apr 07 03:36:48 2021 +0000
@@ -1,4 +1,5 @@



Home | Main Index | Thread Index | Old Index