15801008 upgrade libevent to 2.0.22
authorStacy Yeh <stacy.yeh@oracle.com>
Wed, 04 May 2016 15:48:49 -0700
changeset 5921 cf3796081ab1
parent 5920 1e847165fde2
child 5922 bf5786b452ad
15801008 upgrade libevent to 2.0.22 23200097 problem in LIBRARY/LIBEVENT
components/libevent/Makefile
components/libevent/libevent.3
components/libevent/libevent.license
components/libevent/libevent.p5m
components/libevent/patches/arc4random.patch
components/libevent/patches/evdns.3.patch
components/libevent/patches/event-config.patch
components/libevent/patches/event.3.patch
components/libevent/patches/evthread_test_failures.patch
components/libevent/test/results-all.master
--- a/components/libevent/Makefile	Wed May 04 14:21:51 2016 -0700
+++ b/components/libevent/Makefile	Wed May 04 15:48:49 2016 -0700
@@ -26,16 +26,15 @@
 include ../../make-rules/shared-macros.mk
 
 COMPONENT_NAME=		libevent
-COMPONENT_VERSION=	1.4.14b
-IPS_COMPONENT_VERSION=	1.4.14.2
+COMPONENT_VERSION=	2.0.22
 COMPONENT_PROJECT_URL=	http://monkey.org/~provos/libevent/
 COMPONENT_SRC=		$(COMPONENT_NAME)-$(COMPONENT_VERSION)-stable
 COMPONENT_ARCHIVE_HASH=	\
-    sha256:afa61b476a222ba43fc7cca2d24849ab0bbd940124400cb699915d3c60e46301
-COMPONENT_ARCHIVE_URL=	http://cloud.github.com/downloads/libevent/libevent/$(COMPONENT_ARCHIVE)
+    sha256:71c2c49f0adadacfdbe6332a372c38cf9c8b7895bb73dabeaa53cdcc1d4e1fa3
+COMPONENT_ARCHIVE_URL=	http://github.com/libevent/libevent/releases/download/release-$(COMPONENT_VERSION)-stable/$(COMPONENT_ARCHIVE)
 COMPONENT_BUGDB=	library/libevent
 
-TPNO=			5581
+TPNO=			27840	
 
 include $(WS_MAKE_RULES)/common.mk
 
@@ -49,6 +48,7 @@
 #
 # /usr/bin/event_rpcgen.py
 
+CONFIGURE_OPTIONS	+= CFLAGS="$(CFLAGS)"
 CONFIGURE_OPTIONS	+= --disable-static
 
 COMPONENT_TEST_TARGETS =	verify
@@ -60,3 +60,10 @@
 # Master test results are the same for 32-bit and 64-bit, so override
 # here, rather than create multiple identical master files.
 COMPONENT_TEST_MASTER = $(COMPONENT_TEST_RESULTS_DIR)/results-all.master
+COMPONENT_TEST_TRANSFORMS += \
+	'-e "/cp test.sh test-script.sh/d" '
+
+REQUIRED_PACKAGES += library/security/openssl
+REQUIRED_PACKAGES += library/security/openssl/openssl-fips-140
+REQUIRED_PACKAGES += runtime/python-27
+REQUIRED_PACKAGES += system/library/gcc/gcc-c-runtime
--- a/components/libevent/libevent.3	Wed May 04 14:21:51 2016 -0700
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-.so man3/event.3
--- a/components/libevent/libevent.license	Wed May 04 14:21:51 2016 -0700
+++ b/components/libevent/libevent.license	Wed May 04 15:48:49 2016 -0700
@@ -1,538 +1,13 @@
-buffer.c:
-/*
- * Copyright (c) 2002, 2003 Niels Provos <[email protected]>
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- *    notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- *    notice, this list of conditions and the following disclaimer in the
- *    documentation and/or other materials provided with the distribution.
- * 3. The name of the author may not be used to endorse or promote products
- *    derived from this software without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
- * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
- * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
- * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
- * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
- * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
- * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
- * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
- * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-
-devpoll.c, event-internal.h, event.c, evhttp.h, evrpc.c, log.h:
-/*
- * Copyright 2000-2004 Niels Provos <[email protected]>
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- *    notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- *    notice, this list of conditions and the following disclaimer in the
- *    documentation and/or other materials provided with the distribution.
- * 3. The name of the author may not be used to endorse or promote products
- *    derived from this software without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
- * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
- * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
- * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
- * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
- * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
- * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
- * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
- * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-
-epoll.c, poll.c:
-/*
- * Copyright 2000-2003 Niels Provos <[email protected]>
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- *    notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- *    notice, this list of conditions and the following disclaimer in the
- *    documentation and/or other materials provided with the distribution.
- * 3. The name of the author may not be used to endorse or promote products
- *    derived from this software without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
- * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
- * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
- * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
- * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
- * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
- * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
- * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
- * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-
-epoll_sub.c:
-/*
- * Copyright 2003 Niels Provos <[email protected]>
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- *    notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- *    notice, this list of conditions and the following disclaimer in the
- *    documentation and/or other materials provided with the distribution.
- * 3. The name of the author may not be used to endorse or promote products
- *    derived from this software without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
- * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
- * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
- * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
- * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
- * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
- * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
- * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
- * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-
-evbuffer.c:
-/*
- * Copyright (c) 2002-2004 Niels Provos <[email protected]>
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- *    notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- *    notice, this list of conditions and the following disclaimer in the
- *    documentation and/or other materials provided with the distribution.
- * 3. The name of the author may not be used to endorse or promote products
- *    derived from this software without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
- * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
- * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
- * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
- * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
- * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
- * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
- * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
- * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-
-evdns.c:
-/* The original version of this module was written by Adam Langley; for
- * a history of modifications, check out the subversion logs.
- *
- * When editing this module, try to keep it re-mergeable by Adam.  Don't
- * reformat the whitespace, add Tor dependencies, or so on.
- *
- * TODO:
- *   - Support IPv6 and PTR records.
- *   - Replace all externally visible magic numbers with #defined constants.
- *   - Write doccumentation for APIs of all external functions.
- */
-
-/* Async DNS Library
- * Adam Langley <[email protected]>
- * http://www.imperialviolet.org/eventdns.html
- * Public Domain code
- *
- * This software is Public Domain. To view a copy of the public domain dedication,
- * visit http://creativecommons.org/licenses/publicdomain/ or send a letter to
- * Creative Commons, 559 Nathan Abbott Way, Stanford, California 94305, USA.
- *
- * I ask and expect, but do not require, that all derivative works contain an
- * attribution similar to:
- * 	Parts developed by Adam Langley <[email protected]>
- *
- * You may wish to replace the word "Parts" with something else depending on
- * the amount of original code.
- *
- * (Derivative works does not include programs which link against, run or include
- * the source verbatim in their source distributions)
- *
- * Version: 0.1b
- */
-
-evdns.h:
-/*
- * Copyright (c) 2006 Niels Provos <[email protected]>
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- *    notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- *    notice, this list of conditions and the following disclaimer in the
- *    documentation and/or other materials provided with the distribution.
- * 3. The name of the author may not be used to endorse or promote products
- *    derived from this software without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
- * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
- * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
- * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
- * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
- * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
- * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
- * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
- * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-
-/*
- * The original DNS code is due to Adam Langley with heavy
- * modifications by Nick Mathewson.  Adam put his DNS software in the
- * public domain.  You can find his original copyright below.  Please,
- * aware that the code as part of libevent is governed by the 3-clause
- * BSD license above.
- *
- * This software is Public Domain. To view a copy of the public domain dedication,
- * visit http://creativecommons.org/licenses/publicdomain/ or send a letter to
- * Creative Commons, 559 Nathan Abbott Way, Stanford, California 94305, USA.
- *
- * I ask and expect, but do not require, that all derivative works contain an
- * attribution similar to:
- * 	Parts developed by Adam Langley <[email protected]>
- *
- * You may wish to replace the word "Parts" with something else depending on
- * the amount of original code.
- *
- * (Derivative works does not include programs which link against, run or include
- * the source verbatim in their source distributions)
- */
-
-event_tagging.c:
-/*
- * Copyright (c) 2003, 2004 Niels Provos <[email protected]>
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- *    notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- *    notice, this list of conditions and the following disclaimer in the
- *    documentation and/or other materials provided with the distribution.
- * 3. The name of the author may not be used to endorse or promote products
- *    derived from this software without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
- * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
- * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
- * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
- * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
- * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
- * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
- * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
- * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
+Libevent is available for use under the following license, commonly known
+as the 3-clause (or "modified") BSD license:
 
-event.h:
-/*
- * Copyright (c) 2000-2007 Niels Provos <[email protected]>
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- *    notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- *    notice, this list of conditions and the following disclaimer in the
- *    documentation and/or other materials provided with the distribution.
- * 3. The name of the author may not be used to endorse or promote products
- *    derived from this software without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
- * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
- * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
- * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
- * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
- * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
- * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
- * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
- * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-
-evport.c:
-/*
- * Submitted by David Pacheco ([email protected])
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- *    notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- *    notice, this list of conditions and the following disclaimer in the
- *    documentation and/or other materials provided with the distribution.
- * 3. The name of the author may not be used to endorse or promote products
- *    derived from this software without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY SUN MICROSYSTEMS, INC. ``AS IS'' AND ANY
- * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
- * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
- * DISCLAIMED. IN NO EVENT SHALL SUN MICROSYSTEMS, INC. BE LIABLE FOR ANY
- * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
- * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
- * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
- * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
- * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 
- */
-
-/*
- * Copyright (c) 2007 Sun Microsystems. All rights reserved.
- * Use is subject to license terms.
- */
-
-evrpc.h, evrpc-internal.h:
-/*
- * Copyright (c) 2006 Niels Provos <[email protected]>
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- *    notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- *    notice, this list of conditions and the following disclaimer in the
- *    documentation and/or other materials provided with the distribution.
- * 3. The name of the author may not be used to endorse or promote products
- *    derived from this software without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
- * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
- * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
- * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
- * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
- * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
- * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
- * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
- * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-
-evsignal.h, kqueue.c, select.c, signal.c:
-/*
- * Copyright 2000-2002 Niels Provos <[email protected]>
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- *    notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- *    notice, this list of conditions and the following disclaimer in the
- *    documentation and/or other materials provided with the distribution.
- * 3. The name of the author may not be used to endorse or promote products
- *    derived from this software without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
- * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
- * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
- * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
- * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
- * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
- * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
- * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
- * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-
-evutil.c, evutil.h:
-/*
- * Copyright (c) 2007 Niels Provos <[email protected]>
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- *    notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- *    notice, this list of conditions and the following disclaimer in the
- *    documentation and/or other materials provided with the distribution.
- * 3. The name of the author may not be used to endorse or promote products
- *    derived from this software without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
- * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
- * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
- * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
- * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
- * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
- * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
- * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
- * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-
-http-internal.h:
-/*
- * Copyright 2001 Niels Provos <[email protected]>
- * All rights reserved.
- *
- * This header file contains definitions for dealing with HTTP requests
- * that are internal to libevent.  As user of the library, you should not
- * need to know about these.
- */
-
-http.c:
-/*
- * Copyright (c) 2002-2006 Niels Provos <[email protected]>
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- *    notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- *    notice, this list of conditions and the following disclaimer in the
- *    documentation and/or other materials provided with the distribution.
- * 3. The name of the author may not be used to endorse or promote products
- *    derived from this software without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
- * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
- * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
- * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
- * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
- * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
- * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
- * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
- * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-
-log.c:
- * Copyright (c) 2005 Nick Mathewson <[email protected]>
- *
- * Copyright (c) 2000 Dug Song <[email protected]>
- *
- * Copyright (c) 1993
- *	The Regents of the University of California.  All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- *    notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- *    notice, this list of conditions and the following disclaimer in the
- *    documentation and/or other materials provided with the distribution.
- * 3. Neither the name of the University nor the names of its contributors
- *    may be used to endorse or promote products derived from this software
- *    without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
- * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
- * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
- * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
- * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
- * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
- * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
- * SUCH DAMAGE.
- */
-
-min_heap.h:
-/*
- * Copyright (c) 2006 Maxim Yegorushkin <[email protected]>
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- *    notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- *    notice, this list of conditions and the following disclaimer in the
- *    documentation and/or other materials provided with the distribution.
- * 3. The name of the author may not be used to endorse or promote products
- *    derived from this software without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
- * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
- * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
- * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
- * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
- * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
- * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
- * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
- * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-
-strlcpy.c:
-/*
- * Copyright (c) 1998 Todd C. Miller <[email protected]>
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- *    notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- *    notice, this list of conditions and the following disclaimer in the
- *    documentation and/or other materials provided with the distribution.
- * 3. The name of the author may not be used to endorse or promote products
- *    derived from this software without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES,
- * INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY
- * AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL
- * THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
- * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
- * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
- * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
- * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
- * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
- * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-
-
-Documentation:
-
-evdns.3:
-Copyright (c) 2006 Niels Provos <[email protected]>
-All rights reserved.
+==============================
+Copyright (c) 2000-2007 Niels Provos <[email protected]>
+Copyright (c) 2007-2012 Niels Provos and Nick Mathewson
 
 Redistribution and use in source and binary forms, with or without
 modification, are permitted provided that the following conditions
 are met:
-
 1. Redistributions of source code must retain the above copyright
    notice, this list of conditions and the following disclaimer.
 2. Redistributions in binary form must reproduce the above copyright
@@ -541,43 +16,59 @@
 3. The name of the author may not be used to endorse or promote products
    derived from this software without specific prior written permission.
 
-THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES,
-INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY
-AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL
-THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
-EXEMPLARY, OR CONSEQUENTIAL  DAMAGES (INCLUDING, BUT NOT LIMITED TO,
-PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
-OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
-WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
-OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
-ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
+IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
+OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
+IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
+INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
+THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+==============================
 
+Portions of Libevent are based on works by others, also made available by
+them under the three-clause BSD license above.  The copyright notices are
+available in the corresponding source files; the license is as above.  Here's
+a list:
 
-event.3:
-Copyright (c) 2000 Artur Grabowski <[email protected]>
-All rights reserved.
+log.c:
+   Copyright (c) 2000 Dug Song <[email protected]>
+   Copyright (c) 1993 The Regents of the University of California.
 
-Redistribution and use in source and binary forms, with or without
-modification, are permitted provided that the following conditions
-are met:
+strlcpy.c:
+   Copyright (c) 1998 Todd C. Miller <[email protected]>
+
+win32select.c:
+   Copyright (c) 2003 Michael A. Davis <[email protected]>
 
-1. Redistributions of source code must retain the above copyright
-   notice, this list of conditions and the following disclaimer.
-2. Redistributions in binary form must reproduce the above copyright
-   notice, this list of conditions and the following disclaimer in the
-   documentation and/or other materials provided with the distribution.
-3. The name of the author may not be used to endorse or promote products
-   derived from this software without specific prior written permission.
+evport.c:
+   Copyright (c) 2007 Sun Microsystems
+
+ht-internal.h:
+   Copyright (c) 2002 Christopher Clark
+
+minheap-internal.h:
+   Copyright (c) 2006 Maxim Yegorushkin <[email protected]>
+
+==============================
+
+The arc4module is available under the following, sometimes called the
+"OpenBSD" license:
 
-THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES,
-INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY
-AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL
-THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
-EXEMPLARY, OR CONSEQUENTIAL  DAMAGES (INCLUDING, BUT NOT LIMITED TO,
-PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
-OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
-WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
-OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
-ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 
+   Copyright (c) 1996, David Mazieres <[email protected]>
+   Copyright (c) 2008, Damien Miller <[email protected]>
+
+   Permission to use, copy, modify, and distribute this software for any
+   purpose with or without fee is hereby granted, provided that the above
+   copyright notice and this permission notice appear in all copies.
 
+   THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
+   WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
+   MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
+   ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
+   WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
+   ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
+   OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
 
--- a/components/libevent/libevent.p5m	Wed May 04 14:21:51 2016 -0700
+++ b/components/libevent/libevent.p5m	Wed May 04 15:48:49 2016 -0700
@@ -38,37 +38,76 @@
 set name=org.opensolaris.arc-caseid value=PSARC/2007/580
 set name=org.opensolaris.consolidation value=$(CONSOLIDATION)
 file path=usr/include/evdns.h
-file path=usr/include/event-config.h
 file path=usr/include/event.h
+file path=usr/include/event2/buffer.h
+file path=usr/include/event2/buffer_compat.h
+file path=usr/include/event2/bufferevent.h
+file path=usr/include/event2/bufferevent_compat.h
+file path=usr/include/event2/bufferevent_ssl.h
+file path=usr/include/event2/bufferevent_struct.h
+file path=usr/include/event2/dns.h
+file path=usr/include/event2/dns_compat.h
+file path=usr/include/event2/dns_struct.h
+file path=usr/include/event2/event-config.h
+file path=usr/include/event2/event.h
+file path=usr/include/event2/event_compat.h
+file path=usr/include/event2/event_struct.h
+file path=usr/include/event2/http.h
+file path=usr/include/event2/http_compat.h
+file path=usr/include/event2/http_struct.h
+file path=usr/include/event2/keyvalq_struct.h
+file path=usr/include/event2/listener.h
+file path=usr/include/event2/rpc.h
+file path=usr/include/event2/rpc_compat.h
+file path=usr/include/event2/rpc_struct.h
+file path=usr/include/event2/tag.h
+file path=usr/include/event2/tag_compat.h
+file path=usr/include/event2/thread.h
+file path=usr/include/event2/util.h
 file path=usr/include/evhttp.h
 file path=usr/include/evrpc.h
 file path=usr/include/evutil.h
-link path=usr/lib/$(MACH64)/libevent-1.4.so.2 target=libevent-1.4.so.2.2.0
-file path=usr/lib/$(MACH64)/libevent-1.4.so.2.2.0
-link path=usr/lib/$(MACH64)/libevent.so target=libevent-1.4.so.2.2.0
-link path=usr/lib/$(MACH64)/libevent.so.1 target=libevent-1.4.so.2.2.0
-link path=usr/lib/$(MACH64)/libevent_core-1.4.so.2 \
-    target=libevent_core-1.4.so.2.2.0
-file path=usr/lib/$(MACH64)/libevent_core-1.4.so.2.2.0
-link path=usr/lib/$(MACH64)/libevent_core.so target=libevent_core-1.4.so.2.2.0
-link path=usr/lib/$(MACH64)/libevent_extra-1.4.so.2 \
-    target=libevent_extra-1.4.so.2.2.0
-file path=usr/lib/$(MACH64)/libevent_extra-1.4.so.2.2.0
-link path=usr/lib/$(MACH64)/libevent_extra.so target=libevent_extra-1.4.so.2.2.0
-file path=usr/lib/$(MACH64)/llib-levent.ln
-link path=usr/lib/libevent-1.4.so.2 target=libevent-1.4.so.2.2.0
-file path=usr/lib/libevent-1.4.so.2.2.0
-link path=usr/lib/libevent.so target=libevent-1.4.so.2.2.0
-link path=usr/lib/libevent.so.1 target=libevent-1.4.so.2.2.0
-link path=usr/lib/libevent_core-1.4.so.2 target=libevent_core-1.4.so.2.2.0
-file path=usr/lib/libevent_core-1.4.so.2.2.0
-link path=usr/lib/libevent_core.so target=libevent_core-1.4.so.2.2.0
-link path=usr/lib/libevent_extra-1.4.so.2 target=libevent_extra-1.4.so.2.2.0
-file path=usr/lib/libevent_extra-1.4.so.2.2.0
-link path=usr/lib/libevent_extra.so target=libevent_extra-1.4.so.2.2.0
-file path=usr/lib/llib-levent
-file path=usr/lib/llib-levent.ln
-file path=usr/share/man/man3/evdns.3
-file path=usr/share/man/man3/event.3
-file libevent.3 path=usr/share/man/man3/libevent.3
+link path=usr/lib/$(MACH64)/libevent-2.0.so.5 target=libevent-2.0.so.5.1.9
+file path=usr/lib/$(MACH64)/libevent-2.0.so.5.1.9
+link path=usr/lib/$(MACH64)/libevent.so target=libevent-2.0.so.5.1.9
+link path=usr/lib/$(MACH64)/libevent_core-2.0.so.5 \
+    target=libevent_core-2.0.so.5.1.9
+file path=usr/lib/$(MACH64)/libevent_core-2.0.so.5.1.9
+link path=usr/lib/$(MACH64)/libevent_core.so target=libevent_core-2.0.so.5.1.9
+link path=usr/lib/$(MACH64)/libevent_extra-2.0.so.5 \
+    target=libevent_extra-2.0.so.5.1.9
+file path=usr/lib/$(MACH64)/libevent_extra-2.0.so.5.1.9
+link path=usr/lib/$(MACH64)/libevent_extra.so target=libevent_extra-2.0.so.5.1.9
+link path=usr/lib/$(MACH64)/libevent_openssl-2.0.so.5 \
+    target=libevent_openssl-2.0.so.5.1.9
+file path=usr/lib/$(MACH64)/libevent_openssl-2.0.so.5.1.9
+link path=usr/lib/$(MACH64)/libevent_openssl.so \
+    target=libevent_openssl-2.0.so.5.1.9
+link path=usr/lib/$(MACH64)/libevent_pthreads-2.0.so.5 \
+    target=libevent_pthreads-2.0.so.5.1.9
+file path=usr/lib/$(MACH64)/libevent_pthreads-2.0.so.5.1.9
+link path=usr/lib/$(MACH64)/libevent_pthreads.so \
+    target=libevent_pthreads-2.0.so.5.1.9
+file path=usr/lib/$(MACH64)/pkgconfig/libevent.pc
+file path=usr/lib/$(MACH64)/pkgconfig/libevent_openssl.pc
+file path=usr/lib/$(MACH64)/pkgconfig/libevent_pthreads.pc
+link path=usr/lib/libevent-2.0.so.5 target=libevent-2.0.so.5.1.9
+file path=usr/lib/libevent-2.0.so.5.1.9
+link path=usr/lib/libevent.so target=libevent-2.0.so.5.1.9
+link path=usr/lib/libevent_core-2.0.so.5 target=libevent_core-2.0.so.5.1.9
+file path=usr/lib/libevent_core-2.0.so.5.1.9
+link path=usr/lib/libevent_core.so target=libevent_core-2.0.so.5.1.9
+link path=usr/lib/libevent_extra-2.0.so.5 target=libevent_extra-2.0.so.5.1.9
+file path=usr/lib/libevent_extra-2.0.so.5.1.9
+link path=usr/lib/libevent_extra.so target=libevent_extra-2.0.so.5.1.9
+link path=usr/lib/libevent_openssl-2.0.so.5 target=libevent_openssl-2.0.so.5.1.9
+file path=usr/lib/libevent_openssl-2.0.so.5.1.9
+link path=usr/lib/libevent_openssl.so target=libevent_openssl-2.0.so.5.1.9
+link path=usr/lib/libevent_pthreads-2.0.so.5 \
+    target=libevent_pthreads-2.0.so.5.1.9
+file path=usr/lib/libevent_pthreads-2.0.so.5.1.9
+link path=usr/lib/libevent_pthreads.so target=libevent_pthreads-2.0.so.5.1.9
+file path=usr/lib/pkgconfig/libevent.pc
+file path=usr/lib/pkgconfig/libevent_openssl.pc
+file path=usr/lib/pkgconfig/libevent_pthreads.pc
 license libevent.license license=BSD
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/components/libevent/patches/arc4random.patch	Wed May 04 15:48:49 2016 -0700
@@ -0,0 +1,25 @@
+Function needs extern keyword. 
+In house patch. 
+
+--- a/arc4random.c    2016-03-01 09:29:36.602447178 -0800
++++ b/arc4random.c    2016-03-01 10:17:51.627857034 -0800
+@@ -445,8 +445,8 @@ arc4random_stir(void)
+ #endif
+
+ #ifndef ARC4RANDOM_NOADDRANDOM
+-ARC4RANDOM_EXPORT void
+-arc4random_addrandom(const unsigned char *dat, int datlen)
++extern void
++arc4random_addrandom(uchar_t *dat, size_t datlen)
+ {
+        int j;
+        _ARC4_LOCK();
+@@ -477,7 +477,7 @@ arc4random(void)
+ }
+ #endif
+
+-ARC4RANDOM_EXPORT void
++extern void
+ arc4random_buf(void *_buf, size_t n)
+ {
+        unsigned char *buf = _buf;
--- a/components/libevent/patches/evdns.3.patch	Wed May 04 14:21:51 2016 -0700
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,498 +0,0 @@
---- libevent-1.4.14b-stable/evdns.3	st lis 25 07:55:34 2009
-+++ libevent-1.4.14b-stable/evdns.3	po lis 21 09:31:22 2011
-@@ -25,66 +25,67 @@
- .\" OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
- .\" ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- .\"
--.Dd October 7, 2006
--.Dt EVDNS 3
--.Os
--.Sh NAME
--.Nm evdns_init
--.Nm evdns_shutdown
--.Nm evdns_err_to_string
--.Nm evdns_nameserver_add
--.Nm evdns_count_nameservers
--.Nm evdns_clear_nameservers_and_suspend
--.Nm evdns_resume
--.Nm evdns_nameserver_ip_add
--.Nm evdns_resolve_ipv4
--.Nm evdns_resolve_reverse
--.Nm evdns_resolv_conf_parse
--.Nm evdns_config_windows_nameservers
--.Nm evdns_search_clear
--.Nm evdns_search_add
--.Nm evdns_search_ndots_set
--.Nm evdns_set_log_fn
--.Nd asynchronous functions for DNS resolution.
--.Sh SYNOPSIS
--.Fd #include <sys/time.h>
--.Fd #include <event.h>
--.Fd #include <evdns.h>
--.Ft int
--.Fn evdns_init
--.Ft void
--.Fn evdns_shutdown "int fail_requests"
--.Ft "const char *"
--.Fn evdns_err_to_string "int err"
--.Ft int
--.Fn evdns_nameserver_add "unsigned long int address"
--.Ft int
--.Fn evdns_count_nameservers
--.Ft int
--.Fn evdns_clear_nameservers_and_suspend
--.Ft int
--.Fn evdns_resume
--.Ft int
--.Fn evdns_nameserver_ip_add(const char *ip_as_string);
--.Ft int
--.Fn evdns_resolve_ipv4 "const char *name" "int flags" "evdns_callback_type callback" "void *ptr"
--.Ft int
--.Fn evdns_resolve_reverse "struct in_addr *in" "int flags" "evdns_callback_type callback" "void *ptr"
--.Ft int
--.Fn evdns_resolv_conf_parse "int flags" "const char *"
--.Ft void
--.Fn evdns_search_clear
--.Ft void
--.Fn evdns_search_add "const char *domain"
--.Ft void
--.Fn evdns_search_ndots_set "const int ndots"
--.Ft void
--.Fn evdns_set_log_fn "evdns_debug_log_fn_type fn"
--.Ft int
--.Fn evdns_config_windows_nameservers
--.Sh DESCRIPTION
-+.TH EVDNS 3 "21 November 2011" "libevent 1.4.14b" "libevent Manual"
-+.SH NAME
-+evdns_init,
-+evdns_shutdown,
-+evdns_err_to_string,
-+evdns_nameserver_add,
-+evdns_count_nameservers,
-+evdns_clear_nameservers_and_suspend,
-+evdns_resume,
-+evdns_nameserver_ip_add,
-+evdns_resolve_ipv4,
-+evdns_resolve_reverse,
-+evdns_resolv_conf_parse,
-+evdns_config_windows_nameservers,
-+evdns_search_clear,
-+evdns_search_add,
-+evdns_search_ndots_set,
-+evdns_set_log_fn
-+\- asynchronous functions for DNS resolution.
-+.SH SYNOPSIS
-+.LP
-+.nf
-+\fB#include <sys/time.h>\fP
-+\fB#include <event.h>\fP
-+\fB#include <evdns.h>\fP
-+
-+\fBinit \fBevdns_init\fR\fR(\fBvoid\fP\fR);
-+
-+\fBvoid \fBevdns_shutdown\fR\fR(\fBint \fIfail_requests\fP\fR);
-+
-+\fBconst char* \fBevdns_err_to_string\fR\fR(\fBint \fIerr\fP\fR);
-+
-+\fBint \fBevdns_nameserver_add\fR\fR(\fBunsigned long int \fIaddress\fP\fR);
-+
-+\fBint \fBevdns_count_nameservers\fR\fR(\fBvoid\fP\fR);
-+
-+\fBint \fBevdns_clear_nameservers_and_suspend\fR\fR(\fBvoid\fP\fR);
-+
-+\fBint \fBevdns_resume\fR\fR(\fBvoid\fP\fR);
-+
-+\fBint \fBevdns_nameserver_ip_add\fR\fR(\fBconst char* \fIip_as_string\fP\fR);
-+
-+\fBint \fBevdns_resolve_ipv4\fR\fR(\fBconst char* \fIname\fP\fR, \fBint \fIflags\fP\fR, \fBevdns_callback_type \fIcallback\fP\fR, \fBvoid* \fIptr\fP\fR);
-+
-+\fBint \fBevdns_resolve_reverse\fR\fR(\fBstruct in_addr* \fIin\fP\fR, \fBint \fIflags\fP\fR, \fBevdns_callback_type \fIcallback\fP\fR, \fBvoid* \fIptr\fP\fR);
-+
-+\fBint \fBevdns_resolv_conf_parse\fR\fR(\fBint \fIflags\fP\fR, \fBconst char* \fIfilename\fP\fR);
-+
-+\fBvoid \fBevdns_search_clear\fR\fR(\fBvoid\fP\fR);
-+
-+\fBvoid \fBevdns_search_add\fR\fR(\fBconst char* \fIdomain\fP\fR);
-+
-+\fBvoid \fBevdns_search_ndots_set\fR\fR(\fBconst int \fIndots\fP\fR);
-+
-+\fBvoid \fBevdns_set_log_fn\fR\fR(\fBcevdns_debug_log_fn_type \fIfn\fP\fR);
-+
-+\fBint \fBevdns_config_windows_nameservers\fR\fR(\fBvoid\fP\fR);
-+.fi
-+.SH DESCRIPTION
- Welcome, gentle reader
--.Pp
-+.PP
- Async DNS lookups are really a whole lot harder than they should be,
- mostly stemming from the fact that the libc resolver has never been
- very good at them. Before you use this library you should see if libc
-@@ -91,37 +92,49 @@
- can do the job for you with the modern async call getaddrinfo_a
- (see http://www.imperialviolet.org/page25.html#e498). Otherwise,
- please continue.
--.Pp
-+.PP
- This code is based on libevent and you must call event_init before
- any of the APIs in this file. You must also seed the OpenSSL random
- source if you are using OpenSSL for ids (see below).
--.Pp
-+.PP
- This library is designed to be included and shipped with your source
- code. You statically link with it. You should also test for the
- existence of strtok_r and define HAVE_STRTOK_R if you have it.
--.Pp
-+.PP
- The DNS protocol requires a good source of id numbers and these
- numbers should be unpredictable for spoofing reasons. There are
- three methods for generating them here and you must define exactly
- one of them. In increasing order of preference:
--.Pp
--.Bl -tag -width "DNS_USE_GETTIMEOFDAY_FOR_ID" -compact -offset indent
--.It DNS_USE_GETTIMEOFDAY_FOR_ID
-+.PP
-+DNS_USE_GETTIMEOFDAY_FOR_ID
-+.ad
-+.sp .6
-+.RS 4n
- Using the bottom 16 bits of the usec result from gettimeofday. This
- is a pretty poor solution but should work anywhere.
--.It DNS_USE_CPU_CLOCK_FOR_ID
-+.RE
-+.PP
-+DNS_USE_CPU_CLOCK_FOR_ID
-+.ad
-+.sp .6
-+.RS 4n
- Using the bottom 16 bits of the nsec result from the CPU's time
- counter. This is better, but may not work everywhere. Requires
- POSIX realtime support and you'll need to link against -lrt on
- glibc systems at least.
--.It DNS_USE_OPENSSL_FOR_ID
-+.RE
-+.PP
-+DNS_USE_OPENSSL_FOR_ID
-+.ad
-+.sp .6
-+.RS 4n
- Uses the OpenSSL RAND_bytes call to generate the data. You must
- have seeded the pool before making any calls to this library.
--.El
--.Pp
-+.RE
-+.PP
- The library keeps track of the state of nameservers and will avoid
- them when they go down. Otherwise it will round robin between them.
--.Pp
-+.PP
- Quick start guide:
-   #include "evdns.h"
-   void callback(int result, char type, int count, int ttl,
-@@ -128,7 +141,7 @@
- 	 void *addresses, void *arg);
-   evdns_resolv_conf_parse(DNS_OPTIONS_ALL, "/etc/resolv.conf");
-   evdns_resolve("www.hostname.com", 0, callback, NULL);
--.Pp
-+.PP
- When the lookup is complete the callback function is called. The
- first argument will be one of the DNS_ERR_* defines in evdns.h.
- Hopefully it will be DNS_ERR_NONE, in which case type will be
-@@ -136,152 +149,187 @@
- which the data can be cached for (in seconds), addresses will point
- to an array of uint32_t's and arg will be whatever you passed to
- evdns_resolve.
--.Pp
-+.PP
- Searching:
--.Pp
-+.PP
- In order for this library to be a good replacement for glibc's resolver it
- supports searching. This involves setting a list of default domains, in
- which names will be queried for. The number of dots in the query name
- determines the order in which this list is used.
--.Pp
-+.PP
- Searching appears to be a single lookup from the point of view of the API,
- although many DNS queries may be generated from a single call to
- evdns_resolve. Searching can also drastically slow down the resolution
- of names.
--.Pp
-+.PP
- To disable searching:
--.Bl -enum -compact -offset indent
--.It
--Never set it up. If you never call
--.Fn evdns_resolv_conf_parse,
--.Fn evdns_init,
-+.ad
-+.sp .6
-+.RS 4n
-+1. Never set it up. If you never call
-+\fBevdns_resolv_conf_parse\fP\fR,
-+\fBevdns_init\fP\fR,
- or
--.Fn evdns_search_add
-+\fBevdns_search_add\fP\R
- then no searching will occur.
--.It
--If you do call
--.Fn evdns_resolv_conf_parse
-+.br
-+2. If you do call
-+\fBevdns_resolv_conf_parse\fP\fR
- then don't pass
--.Va DNS_OPTION_SEARCH
-+DNS_OPTION_SEARCH
- (or
--.Va DNS_OPTIONS_ALL,
-+DNS_OPTIONS_ALL,
- which implies it).
--.It
--When calling
--.Fn evdns_resolve,
-+.br
-+3. When calling
-+\fBevdns_resolve\fP\fR,
- pass the
--.Va DNS_QUERY_NO_SEARCH
-+DNS_QUERY_NO_SEARCH
- flag.
--.El
--.Pp
-+.RE
-+.PP
- The order of searches depends on the number of dots in the name. If the
- number is greater than the ndots setting then the names is first tried
- globally. Otherwise each search domain is appended in turn.
--.Pp
-+.PP
- The ndots setting can either be set from a resolv.conf, or by calling
- evdns_search_ndots_set.
--.Pp
-+.PP
- For example, with ndots set to 1 (the default) and a search domain list of
- ["myhome.net"]:
-  Query: www
-  Order: www.myhome.net, www.
--.Pp
-+.PP
-  Query: www.abc
-  Order: www.abc., www.abc.myhome.net
--.Pp
--.Sh API reference
--.Pp
--.Bl -tag -width 0123456
--.It Ft int Fn evdns_init
-+.PP
-+.SH API reference
-+.PP
-+.SS "\fBint \fBevdns_init\fR\fR(\fBvoid\fP\fR)"
-+.sp
-+.LP
- Initializes support for non-blocking name resolution by calling
--.Fn evdns_resolv_conf_parse
-+evdns_resolv_conf_parse()
- on UNIX and
--.Fn evdns_config_windows_nameservers
-+evdns_config_windows_nameservers()
- on Windows.
--.It Ft int Fn evdns_nameserver_add "unsigned long int address"
-+.SS "\fBint \fBevdns_nameserver_add\fR\fR(\fBunsigned long int\fP\fR \fIaddress\fP\fR)"
-+.sp
-+.LP
- Add a nameserver. The address should be an IP address in
- network byte order. The type of address is chosen so that
- it matches in_addr.s_addr.
- Returns non-zero on error.
--.It Ft int Fn evdns_nameserver_ip_add "const char *ip_as_string"
-+.SS "\fBint \fBevdns_nameserver_ip_add\fR\fR(\fBconst char* \fIip_as_string\fP\fR)"
-+.sp
-+.LP
- This wraps the above function by parsing a string as an IP
- address and adds it as a nameserver.
- Returns non-zero on error
--.It Ft int Fn evdns_resolve "const char *name" "int flags" "evdns_callback_type callback" "void *ptr"
-+.SS "\fBint \fBevdns_resolve\fR\fR(\fBconst char* \fIname\fP\fR, \fBint \fIflags\fP\fR, \fBevdns_callback_type \fIcallback\fP\fR, \fBvoid* \fIptr\fP\fR)"
-+.sp
-+.LP
- Resolve a name. The name parameter should be a DNS name.
- The flags parameter should be 0, or DNS_QUERY_NO_SEARCH
- which disables searching for this query. (see defn of
- searching above).
--.Pp
-+.PP
- The callback argument is a function which is called when
- this query completes and ptr is an argument which is passed
- to that callback function.
--.Pp
-+.PP
- Returns non-zero on error
--.It Ft void Fn evdns_search_clear
-+.SS "\fBvoid \fBevdns_search_clear\fR\fR(\fBvoid\fP\fR)"
-+.sp
-+.LP
- Clears the list of search domains
--.It Ft void Fn evdns_search_add "const char *domain"
-+.SS "\fBvoid \fBevdns_search_add\fR\fR(\fBconst char* \fIdomain\fP\fR)"
-+.sp
-+.LP
- Add a domain to the list of search domains
--.It Ft void Fn evdns_search_ndots_set "int ndots"
-+.SS "\fBvoid \fBevdns_search_ndots_set\fR\fR(\fBconst int \fIndots\fP\fR)"
-+.sp
-+.LP
- Set the number of dots which, when found in a name, causes
- the first query to be without any search domain.
--.It Ft int Fn evdns_count_nameservers "void"
-+.SS "\fBint \fBevdns_count_nameservers\fR\fR(\fBvoid\fP\fR)"
-+.sp
-+.LP
- Return the number of configured nameservers (not necessarily the
- number of running nameservers).  This is useful for double-checking
- whether our calls to the various nameserver configuration functions
- have been successful.
--.It Ft int Fn evdns_clear_nameservers_and_suspend "void"
-+.SS "\fBint \fBevdns_clear_nameservers_and_suspend\fR\fR(\fBvoid\fP\fR)"
-+.sp
-+.LP
- Remove all currently configured nameservers, and suspend all pending
- resolves.  Resolves will not necessarily be re-attempted until
- evdns_resume() is called.
--.It Ft int Fn evdns_resume "void"
-+.SS "\fBint \fBevdns_resume\fR\fR(\fBvoid\fP\fR)"
-+.sp
-+.LP
- Re-attempt resolves left in limbo after an earlier call to
- evdns_clear_nameservers_and_suspend().
--.It Ft int Fn evdns_config_windows_nameservers "void"
-+.SS "\fBint \fBevdns_config_windows_nameservers\fR\fR(\fBvoid\fP\fR)"
-+.sp
-+.LP
- Attempt to configure a set of nameservers based on platform settings on
- a win32 host.  Preferentially tries to use GetNetworkParams; if that fails,
- looks in the registry.  Returns 0 on success, nonzero on failure.
--.It Ft int Fn evdns_resolv_conf_parse "int flags" "const char *filename"
-+.SS "\fBint \fBevdns_resolv_conf_parse\fR\fR(\fBint \fIflags\fP\fR, \fBconst char*filename\fP\fR)"
-+.sp
-+.LP
- Parse a resolv.conf like file from the given filename.
--.Pp
-+.PP
- See the man page for resolv.conf for the format of this file.
- The flags argument determines what information is parsed from
- this file:
--.Bl -tag -width "DNS_OPTION_NAMESERVERS" -offset indent -compact -nested
--.It DNS_OPTION_SEARCH
-+.sp
-+DNS_OPTION_SEARCH
- domain, search and ndots options
--.It DNS_OPTION_NAMESERVERS
-+.br
-+DNS_OPTION_NAMESERVERS
- nameserver lines
--.It DNS_OPTION_MISC
-+.br
-+DNS_OPTION_MISC
- timeout and attempts options
--.It DNS_OPTIONS_ALL
-+.br
-+DNS_OPTIONS_ALL
- all of the above
--.El
--.Pp
-+.PP
- The following directives are not parsed from the file:
-   sortlist, rotate, no-check-names, inet6, debug
--.Pp
-+.PP
- Returns non-zero on error:
--.Bl -tag -width "0" -offset indent -compact -nested
--.It 0
-+.sp
-+0
-+.br
- no errors
--.It 1
-+.br
-+1
-+.br
- failed to open file
--.It 2
-+.br
-+2
-+.br
- failed to stat file
--.It 3
-+.br
-+3
-+.br
- file too large
--.It 4
-+.br
-+4
-+.br
- out of memory
--.It 5
-+.br
-+5
-+.br
- short read from file
--.El
--.El
--.Sh Internals:
-+.SH Internals:
- Requests are kept in two queues. The first is the inflight queue. In
- this queue requests have an allocated transaction id and nameserver.
- They will soon be transmitted if they haven't already been.
--.Pp
-+.PP
- The second is the waiting queue. The size of the inflight ring is
- limited and all other requests wait in waiting queue for space. This
- bounds the number of concurrent requests so that we don't flood the
-@@ -288,33 +336,33 @@
- nameserver. Several algorithms require a full walk of the inflight
- queue and so bounding its size keeps thing going nicely under huge
- (many thousands of requests) loads.
--.Pp
-+.PP
- If a nameserver loses too many requests it is considered down and we
- try not to use it. After a while we send a probe to that nameserver
- (a lookup for google.com) and, if it replies, we consider it working
- again. If the nameserver fails a probe we wait longer to try again
- with the next probe.
--.Sh SEE ALSO
--.Xr event 3 ,
--.Xr gethostbyname 3 ,
--.Xr resolv.conf 5
--.Sh HISTORY
-+.SH SEE ALSO
-+\fBevent(3)\fR,
-+\fBgethostbyname(3)\fR,
-+\fBresolv.conf(4)\fR
-+.SH HISTORY
- The
--.Nm evdns
-+\fIevdns\fP\fR
- API was developed by Adam Langley on top of the
--.Nm libevent
-+\fIlibevent\fP\fR
- API.
- The code was integrate into
--.Nm Tor
-+\fITor\fP\fR
- by Nick Mathewson and finally put into
--.Nm libevent
-+\fIlibevent\fP\fR
- itself by Niels Provos.
--.Sh AUTHORS
-+.SH AUTHORS
- The
--.Nm evdns
-+\fIevdns\fP\fR
- API and code was written by Adam Langley with significant
- contributions by Nick Mathewson.
--.Sh BUGS
-+.SH BUGS
- This documentation is neither complete nor authoritative.
- If you are in doubt about the usage of this API then
- check the source code to find out how it works, write
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/components/libevent/patches/event-config.patch	Wed May 04 15:48:49 2016 -0700
@@ -0,0 +1,471 @@
+libevent needs this config file to compile on Solaris. 
+In house patch.
+
+diff --a/include/event2/event-config.h b/include/event2/event-config.h
+new file mode 100644
+--- /dev/null
++++ b/include/event2/event-config.h
+@@ -0,0 +1,463 @@
++/* event2/event-config.h
++ *
++ * This file was generated by autoconf when libevent was built, and post-
++ * processed by Libevent so that its macros would have a uniform prefix.
++ *
++ * DO NOT EDIT THIS FILE.
++ *
++ * Do not rely on macros in this file existing in later versions.
++ */
++
++#ifndef _EVENT2_EVENT_CONFIG_H_
++#define _EVENT2_EVENT_CONFIG_H_
++
++/* config.h.  Generated from config.h.in by configure.  */
++/* config.h.in.  Generated from configure.in by autoheader.  */
++
++/* Define if libevent should build without support for a debug mode */
++/* #undef _EVENT_DISABLE_DEBUG_MODE */
++
++/* Define if libevent should not allow replacing the mm functions */
++/* #undef _EVENT_DISABLE_MM_REPLACEMENT */
++
++/* Define if libevent should not be compiled with thread support */
++/* #undef _EVENT_DISABLE_THREAD_SUPPORT */
++
++/* Define to 1 if you have the `arc4random' function. */
++/* #undef _EVENT_HAVE_ARC4RANDOM */
++
++/* Define to 1 if you have the `arc4random_buf' function. */
++/* #undef _EVENT_HAVE_ARC4RANDOM_BUF */
++
++/* Define to 1 if you have the <arpa/inet.h> header file. */
++#define _EVENT_HAVE_ARPA_INET_H 1
++
++/* Define to 1 if you have the `clock_gettime' function. */
++#define _EVENT_HAVE_CLOCK_GETTIME 1
++
++/* Define to 1 if you have the declaration of `CTL_KERN', and to 0 if you
++   don't. */
++/* #undef _EVENT_HAVE_DECL_CTL_KERN */
++
++/* Define to 1 if you have the declaration of `KERN_ARND', and to 0 if you
++   don't. */
++/* #undef _EVENT_HAVE_DECL_KERN_ARND */
++
++/* Define to 1 if you have the declaration of `KERN_RANDOM', and to 0 if you
++   don't. */
++/* #undef _EVENT_HAVE_DECL_KERN_RANDOM */
++
++/* Define to 1 if you have the declaration of `RANDOM_UUID', and to 0 if you
++   don't. */
++#define _EVENT_HAVE_DECL_RANDOM_UUID 1
++
++/* Define if /dev/poll is available */
++#define _EVENT_HAVE_DEVPOLL 1
++
++/* Define to 1 if you have the <dlfcn.h> header file. */
++#define _EVENT_HAVE_DLFCN_H 1
++
++/* Define if your system supports the epoll system calls */
++/* #undef _EVENT_HAVE_EPOLL */
++
++/* Define to 1 if you have the `epoll_ctl' function. */
++/* #undef _EVENT_HAVE_EPOLL_CTL */
++
++/* Define to 1 if you have the `eventfd' function. */
++/* #undef _EVENT_HAVE_EVENTFD */
++
++/* Define if your system supports event ports */
++#define _EVENT_HAVE_EVENT_PORTS 1
++
++/* Define to 1 if you have the `fcntl' function. */
++#define _EVENT_HAVE_FCNTL 1
++
++/* Define to 1 if you have the <fcntl.h> header file. */
++#define _EVENT_HAVE_FCNTL_H 1
++
++/* Define to 1 if the system has the type `fd_mask'. */
++#define _EVENT_HAVE_FD_MASK 1
++
++/* Do we have getaddrinfo()? */
++#define _EVENT_HAVE_GETADDRINFO 1
++
++/* Define to 1 if you have the `getegid' function. */
++#define _EVENT_HAVE_GETEGID 1
++
++/* Define to 1 if you have the `geteuid' function. */
++#define _EVENT_HAVE_GETEUID 1
++
++/* Define this if you have any gethostbyname_r() */
++/* #undef _EVENT_HAVE_GETHOSTBYNAME_R */
++
++/* Define this if gethostbyname_r takes 3 arguments */
++/* #undef _EVENT_HAVE_GETHOSTBYNAME_R_3_ARG */
++
++/* Define this if gethostbyname_r takes 5 arguments */
++/* #undef _EVENT_HAVE_GETHOSTBYNAME_R_5_ARG */
++
++/* Define this if gethostbyname_r takes 6 arguments */
++/* #undef _EVENT_HAVE_GETHOSTBYNAME_R_6_ARG */
++
++/* Define to 1 if you have the `getnameinfo' function. */
++#define _EVENT_HAVE_GETNAMEINFO 1
++
++/* Define to 1 if you have the `getprotobynumber' function. */
++#define _EVENT_HAVE_GETPROTOBYNUMBER 1
++
++/* Define to 1 if you have the `getservbyname' function. */
++/* #undef _EVENT_HAVE_GETSERVBYNAME */
++
++/* Define to 1 if you have the `gettimeofday' function. */
++#define _EVENT_HAVE_GETTIMEOFDAY 1
++
++/* Define to 1 if you have the `inet_aton' function. */
++#define _EVENT_HAVE_INET_ATON 1
++
++/* Define to 1 if you have the `inet_ntop' function. */
++#define _EVENT_HAVE_INET_NTOP 1
++
++/* Define to 1 if you have the `inet_pton' function. */
++#define _EVENT_HAVE_INET_PTON 1
++
++/* Define to 1 if you have the <inttypes.h> header file. */
++#define _EVENT_HAVE_INTTYPES_H 1
++
++/* Define to 1 if you have the `issetugid' function. */
++#define _EVENT_HAVE_ISSETUGID 1
++
++/* Define to 1 if you have the `kqueue' function. */
++/* #undef _EVENT_HAVE_KQUEUE */
++
++/* Define if the system has zlib */
++#define _EVENT_HAVE_LIBZ 1
++
++/* Define to 1 if you have the <memory.h> header file. */
++#define _EVENT_HAVE_MEMORY_H 1
++
++/* Define to 1 if you have the `mmap' function. */
++#define _EVENT_HAVE_MMAP 1
++
++/* Define to 1 if you have the <netdb.h> header file. */
++#define _EVENT_HAVE_NETDB_H 1
++
++/* Define to 1 if you have the <netinet/in6.h> header file. */
++/* #undef _EVENT_HAVE_NETINET_IN6_H */
++
++/* Define to 1 if you have the <netinet/in.h> header file. */
++#define _EVENT_HAVE_NETINET_IN_H 1
++
++/* Define if the system has openssl */
++#define _EVENT_HAVE_OPENSSL 1
++
++/* Define to 1 if you have the <openssl/bio.h> header file. */
++#define _EVENT_HAVE_OPENSSL_BIO_H 1
++
++/* Define to 1 if you have the `pipe' function. */
++#define _EVENT_HAVE_PIPE 1
++
++/* Define to 1 if you have the `poll' function. */
++#define _EVENT_HAVE_POLL 1
++
++/* Define to 1 if you have the <poll.h> header file. */
++#define _EVENT_HAVE_POLL_H 1
++
++/* Define to 1 if you have the `port_create' function. */
++#define _EVENT_HAVE_PORT_CREATE 1
++
++/* Define to 1 if you have the <port.h> header file. */
++#define _EVENT_HAVE_PORT_H 1
++
++/* Define if you have POSIX threads libraries and header files. */
++/* #undef _EVENT_HAVE_PTHREAD */
++
++/* Define if we have pthreads on this system */
++#define _EVENT_HAVE_PTHREADS 1
++
++/* Define to 1 if you have the `putenv' function. */
++#define _EVENT_HAVE_PUTENV 1
++
++/* Define to 1 if the system has the type `sa_family_t'. */
++#define _EVENT_HAVE_SA_FAMILY_T 1
++
++/* Define to 1 if you have the `select' function. */
++#define _EVENT_HAVE_SELECT 1
++
++/* Define to 1 if you have the `sendfile' function. */
++#define _EVENT_HAVE_SENDFILE 1
++
++/* Define to 1 if you have the `setenv' function. */
++#define _EVENT_HAVE_SETENV 1
++
++/* Define if F_SETFD is defined in <fcntl.h> */
++#define _EVENT_HAVE_SETFD 1
++
++/* Define to 1 if you have the `sigaction' function. */
++#define _EVENT_HAVE_SIGACTION 1
++
++/* Define to 1 if you have the `signal' function. */
++#define _EVENT_HAVE_SIGNAL 1
++
++/* Define to 1 if you have the `splice' function. */
++#define _EVENT_HAVE_SPLICE 1
++
++/* Define to 1 if you have the <stdarg.h> header file. */
++#define _EVENT_HAVE_STDARG_H 1
++
++/* Define to 1 if you have the <stddef.h> header file. */
++#define _EVENT_HAVE_STDDEF_H 1
++
++/* Define to 1 if you have the <stdint.h> header file. */
++#define _EVENT_HAVE_STDINT_H 1
++
++/* Define to 1 if you have the <stdlib.h> header file. */
++#define _EVENT_HAVE_STDLIB_H 1
++
++/* Define to 1 if you have the <strings.h> header file. */
++#define _EVENT_HAVE_STRINGS_H 1
++
++/* Define to 1 if you have the <string.h> header file. */
++#define _EVENT_HAVE_STRING_H 1
++
++/* Define to 1 if you have the `strlcpy' function. */
++#define _EVENT_HAVE_STRLCPY 1
++
++/* Define to 1 if you have the `strsep' function. */
++#define _EVENT_HAVE_STRSEP 1
++
++/* Define to 1 if you have the `strtok_r' function. */
++#define _EVENT_HAVE_STRTOK_R 1
++
++/* Define to 1 if you have the `strtoll' function. */
++#define _EVENT_HAVE_STRTOLL 1
++
++/* Define to 1 if the system has the type `struct addrinfo'. */
++#define _EVENT_HAVE_STRUCT_ADDRINFO 1
++
++/* Define to 1 if the system has the type `struct in6_addr'. */
++#define _EVENT_HAVE_STRUCT_IN6_ADDR 1
++
++/* Define to 1 if `s6_addr16' is a member of `struct in6_addr'. */
++/* #undef _EVENT_HAVE_STRUCT_IN6_ADDR_S6_ADDR16 */
++
++/* Define to 1 if `s6_addr32' is a member of `struct in6_addr'. */
++/* #undef _EVENT_HAVE_STRUCT_IN6_ADDR_S6_ADDR32 */
++
++/* Define to 1 if the system has the type `struct sockaddr_in6'. */
++#define _EVENT_HAVE_STRUCT_SOCKADDR_IN6 1
++
++/* Define to 1 if `sin6_len' is a member of `struct sockaddr_in6'. */
++/* #undef _EVENT_HAVE_STRUCT_SOCKADDR_IN6_SIN6_LEN */
++
++/* Define to 1 if `sin_len' is a member of `struct sockaddr_in'. */
++/* #undef _EVENT_HAVE_STRUCT_SOCKADDR_IN_SIN_LEN */
++
++/* Define to 1 if the system has the type `struct sockaddr_storage'. */
++#define _EVENT_HAVE_STRUCT_SOCKADDR_STORAGE 1
++
++/* Define to 1 if `ss_family' is a member of `struct sockaddr_storage'. */
++#define _EVENT_HAVE_STRUCT_SOCKADDR_STORAGE_SS_FAMILY 1
++
++/* Define to 1 if `__ss_family' is a member of `struct sockaddr_storage'. */
++/* #undef _EVENT_HAVE_STRUCT_SOCKADDR_STORAGE___SS_FAMILY */
++
++/* Define to 1 if you have the `sysctl' function. */
++/* #undef _EVENT_HAVE_SYSCTL */
++
++/* Define to 1 if you have the <sys/devpoll.h> header file. */
++#define _EVENT_HAVE_SYS_DEVPOLL_H 1
++
++/* Define to 1 if you have the <sys/epoll.h> header file. */
++/* #undef _EVENT_HAVE_SYS_EPOLL_H 1 */
++
++/* Define to 1 if you have the <sys/eventfd.h> header file. */
++/* #define _EVENT_HAVE_SYS_EVENTFD_H 1 */
++
++/* Define to 1 if you have the <sys/event.h> header file. */
++/* #undef _EVENT_HAVE_SYS_EVENT_H */
++
++/* Define to 1 if you have the <sys/ioctl.h> header file. */
++#define _EVENT_HAVE_SYS_IOCTL_H 1
++
++/* Define to 1 if you have the <sys/mman.h> header file. */
++#define _EVENT_HAVE_SYS_MMAN_H 1
++
++/* Define to 1 if you have the <sys/param.h> header file. */
++#define _EVENT_HAVE_SYS_PARAM_H 1
++
++/* Define to 1 if you have the <sys/queue.h> header file. */
++#define _EVENT_HAVE_SYS_QUEUE_H 1
++
++/* Define to 1 if you have the <sys/select.h> header file. */
++#define _EVENT_HAVE_SYS_SELECT_H 1
++
++/* Define to 1 if you have the <sys/sendfile.h> header file. */
++#define _EVENT_HAVE_SYS_SENDFILE_H 1
++
++/* Define to 1 if you have the <sys/socket.h> header file. */
++#define _EVENT_HAVE_SYS_SOCKET_H 1
++
++/* Define to 1 if you have the <sys/stat.h> header file. */
++#define _EVENT_HAVE_SYS_STAT_H 1
++
++/* Define to 1 if you have the <sys/sysctl.h> header file. */
++/* #undef _EVENT_HAVE_SYS_SYSCTL_H */
++
++/* Define to 1 if you have the <sys/time.h> header file. */
++#define _EVENT_HAVE_SYS_TIME_H 1
++
++/* Define to 1 if you have the <sys/types.h> header file. */
++#define _EVENT_HAVE_SYS_TYPES_H 1
++
++/* Define to 1 if you have the <sys/uio.h> header file. */
++#define _EVENT_HAVE_SYS_UIO_H 1
++
++/* Define to 1 if you have the <sys/wait.h> header file. */
++#define _EVENT_HAVE_SYS_WAIT_H 1
++
++/* Define if TAILQ_FOREACH is defined in <sys/queue.h> */
++#define _EVENT_HAVE_TAILQFOREACH 1
++
++/* Define if timeradd is defined in <sys/time.h> */
++#define _EVENT_HAVE_TIMERADD 1
++
++/* Define if timerclear is defined in <sys/time.h> */
++#define _EVENT_HAVE_TIMERCLEAR 1
++
++/* Define if timercmp is defined in <sys/time.h> */
++#define _EVENT_HAVE_TIMERCMP 1
++
++/* Define if timerisset is defined in <sys/time.h> */
++#define _EVENT_HAVE_TIMERISSET 1
++
++/* Define to 1 if the system has the type `uint16_t'. */
++#define _EVENT_HAVE_UINT16_T 1
++
++/* Define to 1 if the system has the type `uint32_t'. */
++#define _EVENT_HAVE_UINT32_T 1
++
++/* Define to 1 if the system has the type `uint64_t'. */
++#define _EVENT_HAVE_UINT64_T 1
++
++/* Define to 1 if the system has the type `uint8_t'. */
++#define _EVENT_HAVE_UINT8_T 1
++
++/* Define to 1 if the system has the type `uintptr_t'. */
++#define _EVENT_HAVE_UINTPTR_T 1
++
++/* Define to 1 if you have the `umask' function. */
++#define _EVENT_HAVE_UMASK 1
++
++/* Define to 1 if you have the <unistd.h> header file. */
++#define _EVENT_HAVE_UNISTD_H 1
++
++/* Define to 1 if you have the `unsetenv' function. */
++#define _EVENT_HAVE_UNSETENV 1
++
++/* Define to 1 if you have the `vasprintf' function. */
++#define _EVENT_HAVE_VASPRINTF 1
++
++/* Define if kqueue works correctly with pipes */
++/* #undef _EVENT_HAVE_WORKING_KQUEUE */
++
++/* Define to 1 if you have the <zlib.h> header file. */
++#define _EVENT_HAVE_ZLIB_H 1
++
++/* Define to the sub-directory in which libtool stores uninstalled libraries.
++   */
++#define _EVENT_LT_OBJDIR ".libs/"
++
++/* Define to 1 if your C compiler doesn't accept -c and -o together. */
++/* #undef _EVENT_NO_MINUS_C_MINUS_O */
++
++/* Numeric representation of the version */
++#define _EVENT_NUMERIC_VERSION 0x02001600
++
++/* Name of package */
++#define _EVENT_PACKAGE "libevent"
++
++/* Define to the address where bug reports for this package should be sent. */
++#define _EVENT_PACKAGE_BUGREPORT ""
++
++/* Define to the full name of this package. */
++#define _EVENT_PACKAGE_NAME ""
++
++/* Define to the full name and version of this package. */
++#define _EVENT_PACKAGE_STRING ""
++
++/* Define to the one symbol short name of this package. */
++#define _EVENT_PACKAGE_TARNAME ""
++
++/* Define to the home page for this package. */
++#define _EVENT_PACKAGE_URL ""
++
++/* Define to the version of this package. */
++#define _EVENT_PACKAGE_VERSION ""
++
++/* Define to necessary symbol if this constant uses a non-standard name on
++   your system. */
++/* #undef _EVENT_PTHREAD_CREATE_JOINABLE */
++
++/* The size of `int', as computed by sizeof. */
++#define _EVENT_SIZEOF_INT 4
++
++/* The size of `long', as computed by sizeof. */
++#define _EVENT_SIZEOF_LONG 4
++
++/* The size of `long long', as computed by sizeof. */
++#define _EVENT_SIZEOF_LONG_LONG 8
++
++/* The size of `pthread_t', as computed by sizeof. */
++#define _EVENT_SIZEOF_PTHREAD_T 4
++
++/* The size of `short', as computed by sizeof. */
++#define _EVENT_SIZEOF_SHORT 2
++
++/* The size of `size_t', as computed by sizeof. */
++#ifdef _LP64
++#define _EVENT_SIZEOF_SIZE_T 8
++#else
++#define _EVENT_SIZEOF_SIZE_T 4
++#endif
++
++/* The size of `void *', as computed by sizeof. */
++#ifdef _LP64
++#define _EVENT_SIZEOF_VOID_P 8
++#else
++#define _EVENT_SIZEOF_VOID_P 4
++#endif
++
++/* Define to 1 if you have the ANSI C header files. */
++#define _EVENT_STDC_HEADERS 1
++
++/* Define to 1 if you can safely include both <sys/time.h> and <time.h>. */
++#define _EVENT_TIME_WITH_SYS_TIME 1
++
++/* Version number of package */
++#define _EVENT_VERSION "2.0.22-stable"
++
++/* Define to appropriate substitue if compiler doesnt have __func__ */
++/* #undef _EVENT___func__ */
++
++/* Define to empty if `const' does not conform to ANSI C. */
++/* #undef _EVENT_const */
++
++/* Define to `__inline__' or `__inline' if that's what the C compiler
++   calls it, or to nothing if 'inline' is not supported under any name.  */
++#ifndef _EVENT___cplusplus
++/* #undef _EVENT_inline */
++#endif
++
++/* Define to `int' if <sys/types.h> does not define. */
++/* #undef _EVENT_pid_t */
++
++/* Define to `unsigned int' if <sys/types.h> does not define. */
++/* #undef _EVENT_size_t */
++
++/* Define to unsigned int if you dont have it */
++/* #undef _EVENT_socklen_t */
++
++/* Define to `int' if <sys/types.h> does not define. */
++/* #undef _EVENT_ssize_t */
++
++#endif /* event2/event-config.h */
--- a/components/libevent/patches/event.3.patch	Wed May 04 14:21:51 2016 -0700
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,969 +0,0 @@
---- libevent-1.4.14b-stable/event.3	po lis 21 06:43:10 2011
-+++ libevent-1.4.14b-stable/event.3	po lis 21 09:31:12 2011
-@@ -26,527 +26,528 @@
- .\" OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
- .\" ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- .\"
--.Dd August 8, 2000
--.Dt EVENT 3
--.Os
--.Sh NAME
--.Nm event_init ,
--.Nm event_dispatch ,
--.Nm event_loop ,
--.Nm event_loopexit ,
--.Nm event_loopbreak ,
--.Nm event_set ,
--.Nm event_base_dispatch ,
--.Nm event_base_loop ,
--.Nm event_base_loopexit ,
--.Nm event_base_loopbreak ,
--.Nm event_base_set ,
--.Nm event_base_free ,
--.Nm event_add ,
--.Nm event_del ,
--.Nm event_once ,
--.Nm event_base_once ,
--.Nm event_pending ,
--.Nm event_initialized ,
--.Nm event_priority_init ,
--.Nm event_priority_set ,
--.Nm evtimer_set ,
--.Nm evtimer_add ,
--.Nm evtimer_del ,
--.Nm evtimer_pending ,
--.Nm evtimer_initialized ,
--.Nm signal_set ,
--.Nm signal_add ,
--.Nm signal_del ,
--.Nm signal_pending ,
--.Nm signal_initialized ,
--.Nm bufferevent_new ,
--.Nm bufferevent_free ,
--.Nm bufferevent_write ,
--.Nm bufferevent_write_buffer ,
--.Nm bufferevent_read ,
--.Nm bufferevent_enable ,
--.Nm bufferevent_disable ,
--.Nm bufferevent_settimeout ,
--.Nm bufferevent_base_set ,
--.Nm evbuffer_new ,
--.Nm evbuffer_free ,
--.Nm evbuffer_add ,
--.Nm evbuffer_add_buffer ,
--.Nm evbuffer_add_printf ,
--.Nm evbuffer_add_vprintf ,
--.Nm evbuffer_drain ,
--.Nm evbuffer_write ,
--.Nm evbuffer_read ,
--.Nm evbuffer_find ,
--.Nm evbuffer_readline ,
--.Nm evhttp_new ,
--.Nm evhttp_bind_socket ,
--.Nm evhttp_free
--.Nd execute a function when a specific event occurs
--.Sh SYNOPSIS
--.Fd #include <sys/time.h>
--.Fd #include <event.h>
--.Ft "struct event_base *"
--.Fn "event_init" "void"
--.Ft int
--.Fn "event_dispatch" "void"
--.Ft int
--.Fn "event_loop" "int flags"
--.Ft int
--.Fn "event_loopexit" "struct timeval *tv"
--.Ft int
--.Fn "event_loopbreak" "void"
--.Ft void
--.Fn "event_set" "struct event *ev" "int fd" "short event" "void (*fn)(int, short, void *)" "void *arg"
--.Ft int
--.Fn "event_base_dispatch" "struct event_base *base"
--.Ft int
--.Fn "event_base_loop" "struct event_base *base" "int flags"
--.Ft int
--.Fn "event_base_loopexit" "struct event_base *base" "struct timeval *tv"
--.Ft int
--.Fn "event_base_loopbreak" "struct event_base *base"
--.Ft int
--.Fn "event_base_set" "struct event_base *base" "struct event *"
--.Ft void
--.Fn "event_base_free" "struct event_base *base"
--.Ft int
--.Fn "event_add" "struct event *ev" "struct timeval *tv"
--.Ft int
--.Fn "event_del" "struct event *ev"
--.Ft int
--.Fn "event_once" "int fd" "short event" "void (*fn)(int, short, void *)" "void *arg" "struct timeval *tv"
--.Ft int
--.Fn "event_base_once" "struct event_base *base" "int fd" "short event" "void (*fn)(int, short, void *)" "void *arg" "struct timeval *tv"
--.Ft int
--.Fn "event_pending" "struct event *ev" "short event" "struct timeval *tv"
--.Ft int
--.Fn "event_initialized" "struct event *ev"
--.Ft int
--.Fn "event_priority_init" "int npriorities"
--.Ft int
--.Fn "event_priority_set" "struct event *ev" "int priority"
--.Ft void
--.Fn "evtimer_set" "struct event *ev" "void (*fn)(int, short, void *)" "void *arg"
--.Ft void
--.Fn "evtimer_add" "struct event *ev" "struct timeval *"
--.Ft void
--.Fn "evtimer_del" "struct event *ev"
--.Ft int
--.Fn "evtimer_pending" "struct event *ev" "struct timeval *tv"
--.Ft int
--.Fn "evtimer_initialized" "struct event *ev"
--.Ft void
--.Fn "signal_set" "struct event *ev" "int signal" "void (*fn)(int, short, void *)" "void *arg"
--.Ft void
--.Fn "signal_add" "struct event *ev" "struct timeval *"
--.Ft void
--.Fn "signal_del" "struct event *ev"
--.Ft int
--.Fn "signal_pending" "struct event *ev" "struct timeval *tv"
--.Ft int
--.Fn "signal_initialized" "struct event *ev"
--.Ft "struct bufferevent *"
--.Fn "bufferevent_new" "int fd" "evbuffercb readcb" "evbuffercb writecb" "everrorcb" "void *cbarg"
--.Ft void
--.Fn "bufferevent_free" "struct bufferevent *bufev"
--.Ft int
--.Fn "bufferevent_write" "struct bufferevent *bufev" "void *data" "size_t size"
--.Ft int
--.Fn "bufferevent_write_buffer" "struct bufferevent *bufev" "struct evbuffer *buf"
--.Ft size_t
--.Fn "bufferevent_read" "struct bufferevent *bufev" "void *data" "size_t size"
--.Ft int
--.Fn "bufferevent_enable" "struct bufferevent *bufev" "short event"
--.Ft int
--.Fn "bufferevent_disable" "struct bufferevent *bufev" "short event"
--.Ft void
--.Fn "bufferevent_settimeout" "struct bufferevent *bufev" "int timeout_read" "int timeout_write"
--.Ft int
--.Fn "bufferevent_base_set" "struct event_base *base" "struct bufferevent *bufev"
--.Ft "struct evbuffer *"
--.Fn "evbuffer_new" "void"
--.Ft void
--.Fn "evbuffer_free" "struct evbuffer *buf"
--.Ft int
--.Fn "evbuffer_add" "struct evbuffer *buf" "const void *data" "size_t size"
--.Ft int
--.Fn "evbuffer_add_buffer" "struct evbuffer *dst" "struct evbuffer *src"
--.Ft int
--.Fn "evbuffer_add_printf" "struct evbuffer *buf" "const char *fmt" "..."
--.Ft int
--.Fn "evbuffer_add_vprintf" "struct evbuffer *buf" "const char *fmt" "va_list ap"
--.Ft void
--.Fn "evbuffer_drain" "struct evbuffer *buf" "size_t size"
--.Ft int
--.Fn "evbuffer_write" "struct evbuffer *buf" "int fd"
--.Ft int
--.Fn "evbuffer_read" "struct evbuffer *buf" "int fd" "int size"
--.Ft "u_char *"
--.Fn "evbuffer_find" "struct evbuffer *buf" "const u_char *data" "size_t size"
--.Ft "char *"
--.Fn "evbuffer_readline" "struct evbuffer *buf"
--.Ft "struct evhttp *"
--.Fn "evhttp_new" "struct event_base *base"
--.Ft int
--.Fn "evhttp_bind_socket" "struct evhttp *http" "const char *address" "u_short port"
--.Ft "void"
--.Fn "evhttp_free" "struct evhttp *http"
--.Ft int
--.Fa (*event_sigcb)(void) ;
--.Ft volatile sig_atomic_t
--.Fa event_gotsig ;
--.Sh DESCRIPTION
-+.TH EVENT 3 "21 November 2011" "libevent 1.4.14b" "libevent Manual"
-+.SH NAME
-+event_init,
-+event_dispatch,
-+event_loop,
-+event_loopexit,
-+event_loopbreak,
-+event_set,
-+event_base_dispatch,
-+event_base_loop,
-+event_base_loopexit,
-+event_base_loopbreak,
-+event_base_set,
-+event_base_free,
-+event_add,
-+event_del,
-+event_once,
-+event_base_once,
-+event_pending,
-+event_initialized,
-+event_priority_init,
-+event_priority_set,
-+evtimer_set,
-+evtimer_add,
-+evtimer_del,
-+evtimer_pending,
-+evtimer_initialized,
-+signal_set,
-+signal_add,
-+signal_del,
-+signal_pending,
-+signal_initialized,
-+bufferevent_new,
-+bufferevent_free,
-+bufferevent_write,
-+bufferevent_write_buffer,
-+bufferevent_read,
-+bufferevent_enable,
-+bufferevent_disable,
-+bufferevent_settimeout,
-+bufferevent_base_set,
-+evbuffer_new,
-+evbuffer_free,
-+evbuffer_add,
-+evbuffer_add_buffer,
-+evbuffer_add_printf,
-+evbuffer_add_vprintf,
-+evbuffer_drain,
-+evbuffer_write,
-+evbuffer_read,
-+evbuffer_find,
-+evbuffer_readline,
-+evhttp_new,
-+evhttp_bind_socket,
-+evhttp_free
-+\- execute a function when a specific event occurs
-+.SH LIBRARY
-+The libevent library (libevent, -levent)
-+.br
-+.SH SYNOPSIS
-+.LP
-+.nf
-+\fB#include <sys/time.h>\fP
-+\fB#include <event.h>\fP
-+
-+\fBstruct event_base* \fBevent_init\fR\fR(\fBvoid\fP\fR);
-+
-+\fBint \fBevent_dispatch\fR\fR(\fBvoid\fP\fR);
-+
-+\fBint \fBevent_loop\fR\fR(\fBint \fIflags\fP\fR);
-+
-+\fBint \fBevent_loopexit\fR\fR(\fBstruct timeval* \fItv\fP\fR);
-+
-+\fBint \fBevent_loopbreak\fR\fR(\fBvoid\fP\fR);
-+
-+\fBvoid \fBevent_set\fR\fR(\fBstruct event* \fIev\fP\fR, \fBint \fIfd \fP\fR, \fBshort \fIevent\fP\fR, \fBvoid \fI(*fn)(\fBint, short, void *\fP\fR), \fBvoid* \fIarg\fP\fR);
-+
-+\fBint \fBevent_base_dispatch\fR\fR(\fBstruct event_base* \fIbase\fP\fR);
-+
-+\fBint \fBevent_base_loop\fR\fR(\fBstruct event_base* \fIbase\fP\fR, \fBint \fIflags\fP\fR);
-+
-+\fBint \fBevent_base_loopexit\fR\fR(\fBstruct event_base* \fIbase\fP\fR, \fBstruct timeval* \fItv\fP\fR);
-+
-+\fBint \fBevent_base_loopbreak\fR\fR(\fBstruct event_base* \fIbase\fP\fR);
-+
-+\fBint \fBevent_base_set\fR\fR(\fBstruct event_base* \fIbase\fP\fR, \fBstruct event* \fIev\fP\fR);
-+
-+\fBvoid \fBevent_base_free\fR\fR(\fBstruct event_base* \fIbase\fP\fR);
-+
-+\fBint \fBevent_add\fR\fR(\fBstruct event* \fIev\fP\fR, \fBstruct timeval* \fItv\fP\fR);
-+
-+.\fBint \fBevent_del\fR\fR(struct event* \fIev\fP\fR);
-+
-+\fBint \fBevent_once\fR\fR(\fBint \fIfd\fP\fR, \fBshort \fIevent\fP\fR, \fBvoid \fI(*fn)(\fBint, short, void*\fB\fR), \fBstruct timeval* \fItv\fP\fR);
-+
-+\fBint \fBevent_base_once\fR\fR(\fBstruct event_base* \fIbase\fP\fR, \fBint \fIfd\fB\fR, \fBshort \fIevent\fB\fR, \fBvoid \fI(*fn)(\fBint, short, void*\fB\fR), \fBvoid* \fIarg\fB\fR, \fBstruct timeval* \fItv\fP\fR);
-+
-+\fBint \fBevent_pending\fR\fR(\fBstruct event* \fIev\fP\fR, \fBshort \fIevent\fB\fR, \fBstruct timeval* \fItv\fP\fR);
-+
-+\fBint \fBevent_initialized\fR\fR(\fBstruct event* \fIev\fP\fR);
-+
-+\fBint \fBevent_priority_init\fR\fR (\fBint \fInpriorities\fP\fR);
-+
-+\fBint \fBevent_priority_set\fR\fR (\fBstruct event* \fIev\fP\fR, \fBint \fIpriority\fP\fR);
-+
-+\fBvoid \fBevtimer_set\fR\fR (\fBstruct event* \fIev\fP\fR, \fBvoid \fI(*fn)(\fBint, short, void*\fB\fR), \fBvoid* \fIarg\fP\fR);
-+
-+\fBvoid \fBevtimer_add\fR\fR (\fBstruct event* \fIev\fP\fR, \fBstruct timeval* \fItv\fP\fR);
-+
-+\fBvoid \fBevtimer_del\fR\fR (\fBstruct event* \fIev\fP\fR);
-+
-+\fBint \fBevtimer_pending\fR\fR (\fBstruct event* \fIev\fP\fR, \fBstruct timeval* \fItv\fP\fR);
-+
-+\fBint \fBevtimer_initialized\fR\fR(\fBstruct event* \fIev\fP\fR);
-+
-+\fBvoid \fBsignal_set\fR\fR (\fBstruct event* \fIev\fP\fR, \fBint \fIsignal\fP\fR, \fBvoid \fI(*fn)(\fBint, short, void*\fP\fR), \fBvoid* \fIarg\fP\fR);
-+
-+\fBvoid \fBsignal_add\fR\fR (\fBstruct event* \fIev\fP\fR, \fBstruct timeval* \fItv\fP\fR);
-+
-+\fBvoid \fBsignal_del\fR\fR (\fBstruct event* \fIev\fP\fR);
-+
-+\fBint \fBsignal_pending\fR\fR(\fBstruct event* \fIev\fP\fR, \fBstruct timeval* \fItv\fP\fR);
-+
-+\fBint \fBsignal_initialized\fR\fR(\fBstruct event* \fIev\fP\fR);
-+
-+\fBstruct bufferevent* \fBbufferevent_new\fR\fR(\fBint \fIfd\fP\fR, \fBevbuffercb \fIreadcb\fP\fR, \fBevbuffercb \fIwritecb\fP\fR, \fBeverrorcb \fIerrorcb\fP\fR, \fBvoid* \fIcbarg\fP\fR);
-+
-+\fBvoid \fBbufferevent_free\fR\fR(\fBstruct bufferevent* \fIbufev\fP\fR);
-+
-+\fBint \fBbufferevent_write\fR\fR(\fBstruct bufferevent* \fIbufev\fP\fR, \fBvoid* \fIdata\fP\fR, \fBsize_t \fIsize\fP\fR);
-+
-+\fBint \fBbufferevent_write_buffer\fR\fR(\fBstruct bufferevent* \fIbufev\fP\fR, \fBstruct evbuffer* \fIbuf\fP\fR);
-+
-+\fBsize_t \fBbufferevent_read\fR\fR(\fBstruct bufferevent* \fIbufev\fP\fR, \fBvoid* \fIdata\fP\fR, \fBsize_t \fIsize\fP\fR);
-+
-+\fBint \fBbufferevent_enable\fR\fR(\fBstruct bufferevent* \fIbufev\fP\fR, \fBshort \fIevent\fP\fR);
-+
-+\fBint \fBbufferevent_disable\fR\fR(\fBstruct bufferevent* \fIbufev\fP\fR, \fBshort \fIeven\fP\fR);
-+
-+\fBvoid \fBbufferevent_settimeout\fR\fR(\fBstruct bufferevent* \fIbufev\fP\fR, \fBint \fItimeout_read\fP\fR, \fBint \fItimeout_write\fP\fR);
-+
-+\fBint \fBbufferevent_base_set\fR\fR(\fBstruct event_base* \fIbase\fP\fR, \fBstruct bufferevent* \fIbufev\fP\fR);
-+
-+\fBstruct evbuffer* \fBevbuffer_new (\fBvoid\fP\fR);
-+
-+\fBvoid \fBevbuffer_free\fR\fR(\fBstruct evbuffer* \fIbuf\fP\fR);
-+
-+\fBint \fBevbuffer_add\fR\fR(\fBstruct evbuffer* \fIbuf\fP\fR, \fBconst void* \fIdata\fP\fR, \fBsize_t \fIsize\fP\fR);
-+
-+\fBint \fBevbuffer_add_buffer\fR\fR(\fBstruct evbuffer* \fIdst\fP\fR, \fBstruct evbuffer* \fIsrc\fP\fR);
-+
-+\fBint \fBevbuffer_add_printf\fR\fR(\fBstruct evbuffer* \fIbuf\fP\fR, \fBconst char* \fIfmt\fP\fR, \fB...\fP\fR);
-+
-+\fBint \fBevbuffer_add_vprintf\fR\fR(\fBstruct evbuffer* \fIbuf\fP\fR, \fBconst char* \fIfmt\fP\fR, \fBva_list \fIap\fP\fR);
-+
-+\fBvoid \fBevbuffer_drain\fR\fR(\fBstruct evbuffer* \fIbuf\fP\fR, \fBsize_t \fIsize\fP\fR);
-+
-+\fBint \fBevbuffer_write\fR\fR(\fBstruct evbuffer* \fIbuf\fP\fR, \fBint \fIfd\fP\fR);
-+
-+\fBint \fBevbuffer_read\fR\fR(\fBstruct evbuffer* \fIbuf\fP\fR, \fBint \fIfd\fP\fR, \fBint \fIsize\fP\fR);
-+
-+\fBu_char* \fBevbuffer_find\fR\fR(\fBstruct evbuffer* \fIbuf\fP\fR, \fBconst u_char* \fIdata\fP\fR, \fBsize_t \fIsize\fP\fR);
-+
-+\fBchar* \fBevbuffer_readline\fR\fR(\fBstruct evbuffer* \fIbuf\fP\fR);
-+
-+\fBstruct evhttp * \fBevhttp_new\fR\fR(\fBstruct event_base* \fIbase\fP\fR);
-+
-+\fBint \fBevhttp_bind_socket\fR\fR(\fBstruct evhttp* \fIhttp\fP\fR, \fBconst char* \fIaddress\fP\fR, \fBu_short \fIport\fP\fR);
-+
-+\fBvoid \fBevhttp_free\fR\fR(\fBstruct evhttp* \fIhttp\fP\fR);
-+
-+\fBint \fI(*event_sigcb)\fP\fR\fI(\fBvoid\fP\fR);
-+
-+\fBvolatile sig_atomic_t \fR\fRevent_gotsig\fP\fR;
-+.fi
-+
-+.SH DESCRIPTION
- The
--.Nm event
-+\fIevent\fP\fR
- API provides a mechanism to execute a function when a specific event
- on a file descriptor occurs or after a given time has passed.
--.Pp
-+.PP
- The
--.Nm event
-+\fIevent\fP\fR
- API needs to be initialized with
--.Fn event_init
-+\fBevent_init\fR
- before it can be used.
--.Pp
-+.PP
- In order to process events, an application needs to call
--.Fn event_dispatch .
-+\fBevent_dispatch\fP\fR.
- This function only returns on error, and should replace the event core
- of the application program.
--.Pp
-+.PP
- The function
--.Fn event_set
-+\fBevent_set\fP\fR
- prepares the event structure
--.Fa ev
-+\fIev\fP\fR
- to be used in future calls to
--.Fn event_add
-+\fBevent_add\fP\fR
- and
--.Fn event_del .
-+\fBevent_del\fP\fR .
- The event will be prepared to call the function specified by the
--.Fa fn
-+\fIfn\fP\fR
- argument with an
--.Fa int
-+\fIint\fP\fR
- argument indicating the file descriptor, a
--.Fa short
-+\fIshort\fP\fR
- argument indicating the type of event, and a
--.Fa void *
-+\fIvoid*\fP\fR
- argument given in the
--.Fa arg
-+\fIarg\fP\fR
- argument.
- The
--.Fa fd
-+The \fIfd\fP\fR
- indicates the file descriptor that should be monitored for events.
--The events can be either
--.Va EV_READ ,
--.Va EV_WRITE ,
--or both,
-+The events can be either EV_READ, EV_WRITE , or both,
- indicating that an application can read or write from the file descriptor
- respectively without blocking.
--.Pp
-+.PP
- The function
--.Fa fn
-+\fIfn\fP\fR
- will be called with the file descriptor that triggered the event and
- the type of event which will be either
--.Va EV_TIMEOUT ,
--.Va EV_SIGNAL ,
--.Va EV_READ ,
-+EV_TIMEOUT,
-+EV_SIGNAL,
-+EV_READ,
- or
--.Va EV_WRITE .
-+EV_WRITE.
- Additionally, an event which has registered interest in more than one of the
- preceeding events, via bitwise-OR to
--.Fn event_set ,
-+\fBevent_set\fP\fR,
- can provide its callback function with a bitwise-OR of more than one triggered
- event.
- The additional flag
--.Va EV_PERSIST
-+EV_PERSIST
- makes an
--.Fn event_add
-+\fBevent_add\fP\fR
- persistent until
--.Fn event_del
-+\fBevent_del\fP\fR
- has been called.
--.Pp
-+.PP
- Once initialized, the
--.Fa ev
-+\fIev\fP\fR
- structure can be used repeatedly with
--.Fn event_add
-+\fBevent_add\fP\fR
- and
--.Fn event_del
-+\fBevent_del\fP\fR
- and does not need to be reinitialized unless the function called and/or
- the argument to it are to be changed.
- However, when an
--.Fa ev
-+\fIev\fP\fR
- structure has been added to libevent using
--.Fn event_add
-+\fBevent_add\fP\fR
- the structure must persist until the event occurs (assuming
--.Fa EV_PERSIST
-+EV_PERSIST
- is not set) or is removed
- using
--.Fn event_del .
-+\fBevent_del\fP\fR.
- You may not reuse the same
--.Fa ev
-+\fIev\fP\fR
- structure for multiple monitored descriptors; each descriptor
- needs its own
--.Fa ev .
--.Pp
-+\fIev\fP\fR.
-+.PP
- The function
--.Fn event_add
-+\fBevent_add\fP\fR
- schedules the execution of the
--.Fa ev
-+\fIev\fP\fR
- event when the event specified in
--.Fn event_set
-+\fBevent_set\fP\fR
- occurs or in at least the time specified in the
--.Fa tv .
-+\fItv\fP\fR
- If
--.Fa tv
-+\fItv\fP\fR
- is
--.Dv NULL ,
-+\fINULL\fP\fR,
- no timeout occurs and the function will only be called
- if a matching event occurs on the file descriptor.
- The event in the
--.Fa ev
-+\fIev\fP\fR
- argument must be already initialized by
--.Fn event_set
-+\fBevent_set\fP\fR
- and may not be used in calls to
--.Fn event_set
-+\fBevent_set\fP\fR
- until it has timed out or been removed with
--.Fn event_del .
-+\fBevent_del\fP\fR.
- If the event in the
--.Fa ev
-+\fIev\fP\fR
- argument already has a scheduled timeout, the old timeout will be
- replaced by the new one.
--.Pp
-+.PP
- The function
--.Fn event_del
-+\fBevent_del\fP\fR
- will cancel the event in the argument
--.Fa ev .
-+\fIev\fP\fR.
- If the event has already executed or has never been added
- the call will have no effect.
--.Pp
-+.PP
- The functions
--.Fn evtimer_set ,
--.Fn evtimer_add ,
--.Fn evtimer_del ,
--.Fn evtimer_initialized ,
-+\fBevtimer_set\fP\fR,
-+\fBevtimer_add\fP\fR,
-+\fBevtimer_del\fP\fR,
-+\fBevtimer_initialized\fP\fR,
- and
--.Fn evtimer_pending
-+\fBevtimer_pending\fP\fR
- are abbreviations for common situations where only a timeout is required.
- The file descriptor passed will be \-1, and the event type will be
--.Va EV_TIMEOUT .
--.Pp
-+EV_TIMEOUT.
-+.PP
- The functions
--.Fn signal_set ,
--.Fn signal_add ,
--.Fn signal_del ,
--.Fn signal_initialized ,
-+\fBsignal_set\fP\fR,
-+\fBsignal_add\fP\fR,
-+\fBsignal_del\fP\fR,
-+\fBsignal_initialized\fP\fR,
- and
--.Fn signal_pending
-+\fBsignal_pending\fP\fR
- are abbreviations.
- The event type will be a persistent
--.Va EV_SIGNAL .
-+EV_SIGNAL .
- That means
--.Fn signal_set
-+\fBsignal_set\fP\fR
- adds
--.Va EV_PERSIST .
--.Pp
-+EV_PERSIST.
-+.PP
- In order to avoid races in signal handlers, the
--.Nm event
-+\fIevent\fP\fR
- API provides two variables:
--.Va event_sigcb
-+\fBevent_sigcb\fP\fR
- and
--.Va event_gotsig .
-+\fBevent_gotsig\fP\fR.
- A signal handler
- sets
--.Va event_gotsig
-+\fBevent_gotsig\fP\fR
- to indicate that a signal has been received.
- The application sets
--.Va event_sigcb
-+\fBevent_sigcb\fP\fR
- to a callback function.
- After the signal handler sets
--.Va event_gotsig ,
--.Nm event_dispatch
-+\fBevent_gotsig\fP\fR,
-+\fBevent_dispatch()\fP\fR
- will execute the callback function to process received signals.
- The callback returns 1 when no events are registered any more.
- It can return \-1 to indicate an error to the
--.Nm event
-+\fIevent\fP\fR
- library, causing
--.Fn event_dispatch
-+\fBevent_dispatch\fP\fR
- to terminate with
--.Va errno
-+\fBerrno\fP\fR
- set to
--.Er EINTR .
--.Pp
-+\fBEINTR\fP\fR.
-+.PP
- The function
--.Fn event_once
-+\fBevent_once\fP\fR
- is similar to
--.Fn event_set .
-+\fBevent_set\fP\fR.
- However, it schedules a callback to be called exactly once and does not
- require the caller to prepare an
--.Fa event
-+\fIevent\fP\fR
- structure.
- This function supports
--.Fa EV_TIMEOUT ,
--.Fa EV_READ ,
-+EV_TIMEOUT,
-+EV_READ,
- and
--.Fa EV_WRITE .
--.Pp
-+EV_WRITE.
-+.PP
- The
- .Fn event_pending
-+\fBevent_pending\fP\fR
- function can be used to check if the event specified by
--.Fa event
-+\fIevent\fP\fR
- is pending to run.
- If
--.Va EV_TIMEOUT
-+EV_TIMEOUT
- was specified and
--.Fa tv
-+\fItv\fP\fR
- is not
--.Dv NULL ,
-+\fINULL\fP\fR,
- the expiration time of the event will be returned in
--.Fa tv .
--.Pp
-+\fItv\fP\fR.
-+.PP
- The
--.Fn event_initialized
-+\fBevent_initialized\fP\fR
- macro can be used to check if an event has been initialized.
--.Pp
-+.PP
- The
--.Nm event_loop
-+\fBevent_loop\fP\fR
- function provides an interface for single pass execution of pending
- events.
- The flags
--.Va EVLOOP_ONCE
-+EVLOOP_ONCE
- and
--.Va EVLOOP_NONBLOCK
-+EVLOOP_NONBLOCK
- are recognized.
- The
--.Nm event_loopexit
-+\fBevent_loopexit\fP\fR
- function exits from the event loop. The next
--.Fn event_loop
-+\fBevent_loop\fP\fR
- iteration after the
- given timer expires will complete normally (handling all queued events) then
- exit without blocking for events again. Subsequent invocations of
--.Fn event_loop
-+\fBevent_loop\fP\fR
- will proceed normally.
- The
--.Nm event_loopbreak
-+\fBevent_loopbreak\fP\fR
- function exits from the event loop immediately.
--.Fn event_loop
-+\fBevent_loop\fP\fR
- will abort after the next event is completed;
--.Fn event_loopbreak
-+\fBevent_loopbreak\fP\fR
- is typically invoked from this event's callback. This behavior is analogous
- to the "break;" statement. Subsequent invocations of
--.Fn event_loop
-+\fBevent_loop\fP\fR
- will proceed normally.
--.Pp
-+.PP
- It is the responsibility of the caller to provide these functions with
- pre-allocated event structures.
--.Pp
--.Sh EVENT PRIORITIES
-+.PP
-+.SH EVENT PRIORITIES
- By default
--.Nm libevent
-+\fIlibevent\fP\fR
- schedules all active events with the same priority.
- However, sometimes it is desirable to process some events with a higher
- priority than others.
- For that reason,
--.Nm libevent
-+\fIlibevent\fP\fR
- supports strict priority queues.
- Active events with a lower priority are always processed before events
- with a higher priority.
--.Pp
-+.PP
- The number of different priorities can be set initially with the
--.Fn event_priority_init
-+\fBevent_priority_init\fP\fR
- function.
- This function should be called before the first call to
--.Fn event_dispatch .
-+\fBevent_dispatch\fP\fR.
- The
--.Fn event_priority_set
-+\fBevent_priority_set\fP\fR
- function can be used to assign a priority to an event.
- By default,
--.Nm libevent
-+\fIlibevent\fP\fR
- assigns the middle priority to all events unless their priority
- is explicitly set.
--.Sh THREAD SAFE EVENTS
--.Nm Libevent
-+.SH THREAD SAFE EVENTS
-+\fIlibevent\fP\fR
- has experimental support for thread-safe events.
- When initializing the library via
- .Fn event_init ,
- an event base is returned.
- This event base can be used in conjunction with calls to
--.Fn event_base_set ,
--.Fn event_base_dispatch ,
--.Fn event_base_loop ,
--.Fn event_base_loopexit ,
--.Fn bufferevent_base_set
-+\fBevent_base_set()\fP\fR,
-+\fBevent_base_dispatch()\fP\fR,
-+\fBevent_base_loop()\fP\fR,
-+\fBevent_base_loopexit()\fP\fR,
-+\fBbufferevent_base_set()\fP\fR
- and
--.Fn event_base_free .
--.Fn event_base_set
-+\fBevent_base_free()\fP\fR.
-+\fBevent_base_set()\fP\fR 
- should be called after preparing an event with
--.Fn event_set ,
-+\fBevent_set()\fP\fR,
- as
--.Fn event_set
-+\fBevent_set()\fP\fR,
- assigns the provided event to the most recently created event base.
--.Fn bufferevent_base_set
-+\fBbufferevent_base_set()\fP\fR
- should be called after preparing a bufferevent with
--.Fn bufferevent_new .
--.Fn event_base_free
-+\fBbufferevent_new()\fP\fR.
-+\fBevent_base_free()\fP\fR
- should be used to free memory associated with the event base
- when it is no longer needed.
--.Sh BUFFERED EVENTS
--.Nm libevent
-+.SH BUFFERED EVENTS
-+\fIlibevent\fP\fR
- provides an abstraction on top of the regular event callbacks.
- This abstraction is called a
--.Va "buffered event" .
-+\fB"buffered event"\fP\fR.
- A buffered event provides input and output buffers that get filled
- and drained automatically.
- The user of a buffered event no longer deals directly with the IO,
- but instead is reading from input and writing to output buffers.
--.Pp
-+.PP
- A new bufferevent is created by
--.Fn bufferevent_new .
-+\fBbufferevent_new()\fP\fR.
- The parameter
--.Fa fd
-+\fIfd\fP\fR
- specifies the file descriptor from which data is read and written to.
- This file descriptor is not allowed to be a
--.Xr pipe 2 .
-+\fBpipe(2)\fR.
- The next three parameters are callbacks.
- The read and write callback have the following form:
--.Ft void
--.Fn "(*cb)" "struct bufferevent *bufev" "void *arg" .
-+\fBvoid \fB(*cb)\fR\fR(\fBstruct bufferevent* \fIbufev\fP\fR, \fBvoid* \fIarg\fP\fR).
- The error callback has the following form:
--.Ft void
--.Fn "(*cb)" "struct bufferevent *bufev" "short what" "void *arg" .
-+\fBvoid \fB(*cb)\fR\fR(\fBstruct bufferevent* \fIbufev\fP\fR, \fBshort \fIwhat\fP\fR, \fBvoid* \fIarg\fP\fR).
- The argument is specified by the fourth parameter
--.Fa "cbarg" .
-+\fBcbarg\fP\fR.
- A
--.Fa bufferevent struct
--pointer is returned on success, NULL on error.
--Both the read and the write callback may be NULL.
-+\fBstruct bufferevent\fP\fR
-+pointer is returned on success, \fINULL\fP\fR on error.
-+Both the read and the write callback may be \fINULL\fP\fR.
- The error callback has to be always provided.
--.Pp
-+.PP
- Once initialized, the bufferevent structure can be used repeatedly with
- bufferevent_enable() and bufferevent_disable().
- The flags parameter can be a combination of
--.Va EV_READ
-+EV_READ
- and
--.Va EV_WRITE .
-+EV_WRITE .
- When read enabled the bufferevent will try to read from the file
- descriptor and call the read callback.
- The write callback is executed
- whenever the output buffer is drained below the write low watermark,
- which is
--.Va 0
-+\fI0\fP\fR
- by default.
--.Pp
-+.PP
- The
--.Fn bufferevent_write
-+\fBbufferevent_write()\fP\fR
- function can be used to write data to the file descriptor.
- The data is appended to the output buffer and written to the descriptor
- automatically as it becomes available for writing.
--.Fn bufferevent_write
-+\fBbufferevent_write()\fP\fR
- returns 0 on success or \-1 on failure.
- The
--.Fn bufferevent_read
-+\fBbufferevent_read()\fP\fR
- function is used to read data from the input buffer,
- returning the amount of data read.
--.Pp
-+.PP
- If multiple bases are in use, bufferevent_base_set() must be called before
- enabling the bufferevent for the first time.
- .Sh NON-BLOCKING HTTP SUPPORT
-@@ -549,74 +550,74 @@
- .Pp
- If multiple bases are in use, bufferevent_base_set() must be called before
- enabling the bufferevent for the first time.
--.Sh NON-BLOCKING HTTP SUPPORT
--.Nm libevent
-+.SH NON-BLOCKING HTTP SUPPORT
-+\fIlibevent\fP\fR
- provides a very thin HTTP layer that can be used both to host an HTTP
- server and also to make HTTP requests.
- An HTTP server can be created by calling
--.Fn evhttp_new .
-+\fBevhttp_new\fP\fR.
- It can be bound to any port and address with the
--.Fn evhttp_bind_socket
-+\fBevhttp_bind_socket\fP\fR
- function.
- When the HTTP server is no longer used, it can be freed via
--.Fn evhttp_free .
--.Pp
-+\fBevhttp_free\fP\fR.
-+.PP
- To be notified of HTTP requests, a user needs to register callbacks with the
- HTTP server.
- This can be done by calling
--.Fn evhttp_set_cb .
-+\fBevhttp_set_cb\fP\fR.
- The second argument is the URI for which a callback is being registered.
- The corresponding callback will receive an
--.Va struct evhttp_request
-+\fIstruct evhttp_request\fP\fR
- object that contains all information about the request.
--.Pp
-+.PP
- This section does not document all the possible function calls; please
- check
--.Va event.h
-+\fBevent.h\fP\fR
- for the public interfaces.
--.Sh ADDITIONAL NOTES
-+.SH ADDITIONAL NOTES
- It is possible to disable support for
--.Va epoll , kqueue , devpoll , poll
-+\fBepoll , kqueue , devpoll , poll\fP\fR
- or
--.Va select
-+\fBselect\fP\fR
- by setting the environment variable
--.Va EVENT_NOEPOLL , EVENT_NOKQUEUE , EVENT_NODEVPOLL , EVENT_NOPOLL
-+EVENT_NOEPOLL, EVENT_NOKQUEUE, EVENT_NODEVPOLL, EVENT_NOPOLL
- or
--.Va EVENT_NOSELECT ,
-+EVENT_NOSELECT,
- respectively.
- By setting the environment variable
--.Va EVENT_SHOW_METHOD ,
--.Nm libevent
-+EVENT_SHOW_METHOD,
-+\fIlibevent\fP\fR
- displays the kernel notification method that it uses.
--.Sh RETURN VALUES
-+.SH RETURN VALUES
- Upon successful completion
--.Fn event_add
-+\fBevent_add\fP\fR
- and
--.Fn event_del
-+\fBevent_del\fP\fR
- return 0.
- Otherwise, \-1 is returned and the global variable errno is
- set to indicate the error.
--.Sh SEE ALSO
--.Xr kqueue 2 ,
--.Xr poll 2 ,
--.Xr select 2 ,
--.Xr evdns 3 ,
--.Xr timeout 9
--.Sh HISTORY
-+.SH SEE ALSO
-+\fBpoll(2)\fR,
-+\fBselect(3C)\fR,
-+\fBport_create(3C)\fR,
-+\fBevdns(3)\fR,
-+\fBtimeout(9f)\fR.
-+.SH HISTORY
- The
--.Nm event
-+\fIevent\fP\fR
- API manpage is based on the
--.Xr timeout 9
-+\fBtimeout(9)\fR
- manpage by Artur Grabowski.
- The port of
--.Nm libevent
-+\fBlibevent\fP\fR
- to Windows is due to Michael A. Davis.
- Support for real-time signals is due to Taral.
--.Sh AUTHORS
-+.SH AUTHORS
- The
--.Nm event
-+\fIevent\fP\fR
- library was written by Niels Provos.
--.Sh BUGS
-+.SH BUGS
- This documentation is neither complete nor authoritative.
- If you are in doubt about the usage of this API then
- check the source code to find out how it works, write
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/components/libevent/patches/evthread_test_failures.patch	Wed May 04 15:48:49 2016 -0700
@@ -0,0 +1,15 @@
+Fixes test failures.  
+In house patch. 
+
+--- a/evthread_pthread.c	2016-04-21 10:00:00.404456451 -0700
++++ b/evthread_pthread.c	2016-04-21 10:01:55.930683110 -0700
+@@ -91,9 +91,7 @@ evthread_posix_get_id(void)
+ 		unsigned long id;
+ #endif
+ 	} r;
+-#if _EVENT_SIZEOF_PTHREAD_T < _EVENT_SIZEOF_LONG
+ 	memset(&r, 0, sizeof(r));
+-#endif
+ 	r.thr = pthread_self();
+ 	return (unsigned long)r.id;
+ }
--- a/components/libevent/test/results-all.master	Wed May 04 14:21:51 2016 -0700
+++ b/components/libevent/test/results-all.master	Wed May 04 15:48:49 2016 -0700
@@ -1,46 +1,90 @@
-make[1]: Entering directory `$(@D)'
-cd test && make verify
-make[2]: Entering directory `$(@D)/test'
+make[1]: Entering directory '$(@D)'
+/usr/gnu/bin/make  check-recursive
+make[2]: Entering directory '$(@D)'
+Making check in .
+make[3]: Entering directory '$(@D)'
+make[3]: Leaving directory '$(@D)'
+Making check in include
+make[3]: Entering directory '$(@D)/include'
+make[3]: Nothing to be done for 'check'.
+make[3]: Leaving directory '$(@D)/include'
+Making check in sample
+make[3]: Entering directory '$(@D)/sample'
+make[3]: Nothing to be done for 'check'.
+make[3]: Leaving directory '$(@D)/sample'
+Making check in test
+make[3]: Entering directory '$(@D)/test'
+/usr/gnu/bin/make  check-am
+make[4]: Entering directory '$(@D)/test'
+/usr/gnu/bin/make  check-TESTS
+make[5]: Entering directory '$(@D)/test'
 Running tests:
+EVPORT
+ test-eof: OKAY
+ test-weof: OKAY
+ test-time: OKAY
+ test-changelist: OKAY
+ regress: 
+  NOTE regress.c:2363: evport can't pass this in 2.0; skipping
+util/getaddrinfo: 
+  FAIL regress_util.c:972: assert(a)
+  [getaddrinfo FAILED]
+1/177 TESTS FAILED. (2 skipped)
+FAILED
 KQUEUE
 Skipping test
+EPOLL
+Skipping test
+EPOLL (changelist)
+Skipping test
 DEVPOLL
--n  test-eof: 
-OKAY
--n  test-weof: 
-OKAY
--n  test-time: 
-OKAY
--n  regress: 
-TYPE-COUNT-LINE OKAY
+ test-eof: OKAY
+ test-weof: OKAY
+ test-time: OKAY
+ test-changelist: OKAY
+ regress: util/getaddrinfo: 
+  FAIL regress_util.c:972: assert(a)
+  [getaddrinfo FAILED]
+1/178 TESTS FAILED. (1 skipped)
+FAILED
 POLL
--n  test-eof: 
-OKAY
--n  test-weof: 
-OKAY
--n  test-time: 
-OKAY
--n  regress: 
-TYPE-COUNT-LINE OKAY
+ test-eof: OKAY
+ test-weof: OKAY
+ test-time: OKAY
+ test-changelist: OKAY
+ regress: util/getaddrinfo: 
+  FAIL regress_util.c:972: assert(a)
+  [getaddrinfo FAILED]
+1/178 TESTS FAILED. (1 skipped)
+FAILED
 SELECT
--n  test-eof: 
-OKAY
--n  test-weof: 
-OKAY
--n  test-time: 
-OKAY
--n  regress: 
-TYPE-COUNT-LINE OKAY
-EPOLL
+ test-eof: OKAY
+ test-weof: OKAY
+ test-time: OKAY
+ test-changelist: OKAY
+ regress: util/getaddrinfo: 
+  FAIL regress_util.c:972: assert(a)
+  [getaddrinfo FAILED]
+1/178 TESTS FAILED. (1 skipped)
+FAILED
+WIN32
 Skipping test
-EVPORT
--n  test-eof: 
-OKAY
--n  test-weof: 
-OKAY
--n  test-time: 
-OKAY
--n  regress: 
-TYPE-COUNT-LINE OKAY
-make[2]: Leaving directory `$(@D)/test'
-make[1]: Leaving directory `$(@D)'
+FAIL: test-script.sh
+==================
+1 of 1 test failed
+==================
+Makefile:820: recipe for target 'check-TESTS' failed
+make[5]: *** [check-TESTS] Error 1
+make[5]: Leaving directory '$(@D)/test'
+Makefile:943: recipe for target 'check-am' failed
+make[4]: *** [check-am] Error 2
+make[4]: Leaving directory '$(@D)/test'
+Makefile:945: recipe for target 'check' failed
+make[3]: *** [check] Error 2
+make[3]: Leaving directory '$(@D)/test'
+Makefile:864: recipe for target 'check-recursive' failed
+make[2]: *** [check-recursive] Error 1
+make[2]: Leaving directory '$(@D)'
+Makefile:1176: recipe for target 'check' failed
+make[1]: *** [check] Error 2
+make[1]: Leaving directory '$(@D)'