| Changelog for event | 
                
                                    
                        | Release | 
                        What has changed? | 
                    
                                            
                                                    
                                | 3.1.4 | 
                                
                                    Fixed tests failing with PHP 8.4.0-alpha1 (thanks to Remi Collet).                                 | 
                            
                                                                    
                                                    
                                | 3.1.3 | 
                                
                                    EventDnsBase::__construct() now throws a TypeError if the type of the $initialize argument is anything other than int or bool.                                 | 
                            
                                                                    
                                                    
                                | 3.1.2 | 
                                
                                    Fixed an issue in EventDnsBase::__construct() where it failed to accept the init flag set to true when using libevent version < 2.1.0.                                 | 
                            
                                                                    
                                                    
                                | 3.1.1 | 
                                
                                    Fixed build in RHEL 7 and 8 (thanks to Remi Collet).                                 | 
                            
                                                                    
                                                    
                                | 3.1.0 | 
                                
                                    Stable version based on 3.1.0RC1. Refer to release notes of 3.1.0RC1 for details.                                 | 
                            
                                                                    
                                                    
                                | 3.1.0RC1 | 
                                
                                    - The loop will now be stopped if an event callback throws an exception. 
  This prevents user from losing control on the event loop. 
- EventDnsBase::__construct() now accepts bool|int as its second parameter: 
    * false and true have the same meaning as before; 
    * EventDnsBase::DISABLE_WHEN_INACTIVE - Do not prevent the libevent event loop from exiting when we have no active DNS requests. 
    * EventDnsBase::INITIALIZE_NAMESERVERS - Process resolv.conf. 
    * EventDnsBase::NAMESERVERS_NO_DEFAULT - Do not add default nameserver if there are no nameservers in resolv.conf. 
- Internally, a safer strlcpy() will be used instead of strcpy(). 
- Fixed a segmentation fault that might occur in the EventHttpRequest callback. 
- Fixed a bug where the EventBuffer::copyout method didn't populate the output variable properly in PHP >= 8.2 (thanks to Joseph Tseng).                                 | 
                            
                                                                    
                                                    
                                | 3.0.8 | 
                                
                                    Set --with-openssl-dir configure option to "yes" by default.                                 | 
                            
                                                                    
                                                    
                                | 3.0.7 | 
                                
                                    Added support for in-tree build (PR https://bitbucket.org/osmanov/pecl-event/pull-requests/18/support-in-tree-build by dixyes) 
Fixed tests/27-event-util-create-socket_php8.phpt on macOS                                 | 
                            
                                                                    
                                                    
                                | 3.0.7RC1 | 
                                
                                    Fixed #69: The event loop remained running when the user called exit() or an exception was thrown from the event callback. Now in these cases the loop will be stopped automatically.                                 | 
                            
                                                                    
                                                    
                                | 3.0.6 | 
                                
                                    Fixed tests for the builds in debug mode where libevent complained about STDIN and STDOUT being not set to non-blocking mode 
Fixed build with OpenSSL 3.0 (Thanks to Remi Collet).                                 | 
                            
                                                                    
                                                    
                                | 3.0.5 | 
                                
                                    Fixed a test not working with PHP 8.1.0alpha1                                 | 
                            
                                                                    
                                                    
                                | 3.0.4 | 
                                
                                    Internal changes: Created a non-fastcall wrapper for zend_objects_new().                                 | 
                            
                                                                    
                                                    
                                | 3.0.3 | 
                                
                                    Fixed #66: Segmentation fault when calling EventConfig::avoidMethod because of incorrect arg info                                 | 
                            
                                                                    
                                                    
                                | 3.0.2r1 | 
                                
                                    Stable version release.                                 | 
                            
                                                                    
                                                    
                                | 3.0.2 | 
                                
                                    - Fixed #65: some methods had wrong argument/return type hints                                 | 
                            
                                                                    
                                                    
                                | 3.0.1 | 
                                
                                    - Fixed #64: build failed to find arginfo.h when invoked via pecl install event-beta                                 | 
                            
                                                                    
                                                    
                                | 3.0.0 | 
                                
                                    - Added PHP8 support. 
- Introduced strict type hinting. 
- Removed deprecated EventBufferEvent::sslFilter method.                                 | 
                            
                                                                    
                                                    
                                | 2.5.7 | 
                                
                                    Issue #61: fixed segfault that appeared after throwing exception from event handler in PHP 7.4.9+                                 | 
                            
                                                                    
                                                    
                                | 2.5.6 | 
                                
                                    Fixed a bug where numeric file descriptor was fetched from stdio stream incorrectly (issue #60)                                 | 
                            
                                                                    
                                                    
                                | 2.5.5 | 
                                
                                    Issue #60: fixed a segfault which appeared when Event::add was called on malformed or freed Event object                                 | 
                            
                                                                    
                                                    
                                | 2.5.4 | 
                                
                                    Fixed #59: PHP7 build errors with disabled SSL support 
Fixed build error with disabled sockets support                                 | 
                            
                                                                    
                                                    
                                | 2.5.3 | 
                                
                                    Fixed #56: a warning occurred randomly when PHP stream cast via php_stream_cast() without the PHP_STREAM_CAST_INTERNAL flag. 
Fixed build warnings with PHP 7.4.0-alpha1: 'incompatible pointer type' warnings occurred in assignments to the write property handlers (thanks to Remi Collet).                                 | 
                            
                                                                    
                                                    
                                | 2.5.2 | 
                                
                                    Fixed the value of EINPROGRESS constant in WIN32                                 | 
                            
                                                                    
                                                    
                                | 2.5.1 | 
                                
                                    Fixed build warnings with PHP 7.3                                 | 
                            
                                                                    
                                                    
                                | 2.5.0 | 
                                
                                    Issue #53: Added EventConfig::setFlags() method. (There was no way to set EVENT_BASE_FLAG_* flags.)                                 | 
                            
                                                                    
                                                    
                                | 2.4.4 | 
                                
                                    Fixed issue #53: EventBase::__construct now throws EventException if the features specified via the EventConfig parameter are not supported on the current platform.                                 | 
                            
                                                                    
                                                    
                                | 2.4.3 | 
                                
                                    Fixed config.w32 to take in account newer OpenSSL, which fixes build with PHP 7.2 (by Anatol Belski).                                 | 
                            
                                                                    
                                                    
                                | 2.4.2 | 
                                
                                    Fixed: SSL verification callback failed when EventSslContext was used with either EventBufferEvent::createSslFilter or EventBufferEvent::sslFilter.                                 | 
                            
                                                                    
                                                    
                                | 2.4.1 | 
                                
                                    Fixed issue #52: namespace issues when installing via pecl command in non-interactive mode.                                 | 
                            
                                                                    
                                                    
                                | 2.4.0 | 
                                
                                    Replaced obsolete AC_TRY_COMPILE with AC_COMPILE_IFELSE in config.m4                                 | 
                            
                                                                    
                                                    
                                | 2.4.0RC3 | 
                                
                                    Fixed test error on RHEL 6/7 (thanks to Remi Collet).                                 | 
                            
                                                                    
                                                    
                                | 2.4.0RC2 | 
                                
                                    Fixed tests/12-serialization.phpt (thanks to Remi Collet) 
Fixed issue #49: "Invalid file descriptor" exceptions in PHP 7.2. Due to 
  Zend API changes in PHP 7.2, Event stream arguments were accepted by 
  reference.                                 | 
                            
                                                                    
                                                    
                                | 2.4.0RC1 | 
                                
                                    Issue #46: Class name conflict with Laravel and Lumen. 
  Added --with-event-ns configuration option.                                 | 
                            
                                                                    
                                                    
                                | 2.3.0 | 
                                
                                    Fixed build errors with LibreSSL                                 | 
                            
                                                                    
                                                    
                                | 2.3.0RC1 | 
                                
                                    Add: EventSslContext methods: setMinProtoVersion and setMaxProtoVersion for OpenSSL >= 1.1.0. 
Add: EventSslContext constants: OPENSSL_VERSION_NUMBER and OPENSSL_VERSION_TEXT. 
Fix: compilation warnings regarding OpenSSL features deprecated in version 1.0.0 and newer. 
Deprecated: EventSslContext protocol version options are deprecated for OpenSSL >= 1.1.0. 
  Use the new setMinProtoVersion and setMaxProtoVersion methods instead. 
Fix: build failed with custom openssl setup (non-standard --with-openssl-dir)                                 | 
                            
                                                                    
                                                    
                                | 2.2.1 | 
                                
                                    Fix: issue #31 where numeric file descriptor caused segmentation fault                                 | 
                            
                                                                    
                                                    
                                | 2.1.0 | 
                                
                                    Add: EventUtil::SOCK_RAW constant 
Add: EventSslContext option constants: OPT_REQUIRE_CLIENT_CERT and OPT_VERIFY_CLIENT_ONCE 
Fix: EventBufferEvent::createPair caused segmentation fault in PHP7 
SSL Fixes: 
- chained self-signed certificate failed to pass with EventSslContext::OPT_ALLOW_SELF_SIGNED = TRUE 
- the server didn't set the list of CAs to be sent to the client when requesting a client certificate for underlying SSL structure 
- EventSslContext::OPT_ALLOW_SELF_SIGNED = TRUE accepted any self-signed certificate without regard to OPT_CA_FILE/OPT_CA_PATH 
Fix: PHP 7.1.0alpha1 build errors                                 | 
                            
                                                                    
                                                    
                                | 2.0.4 | 
                                
                                    Issue #28: event-2.0.3 Windows build fails                                 | 
                            
                                                                    
                                                    
                                | 2.0.3 | 
                                
                                    Issue #27: PHP > 7.0.6RC1 build fails                                 | 
                            
                                                                    
                                                    
                                | 2.0.2 | 
                                
                                    PHP7: fixed random EDOM errors in EventUtil::setSocketOption                                 | 
                            
                                                                    
                                                    
                                | 2.0.1 | 
                                
                                    PHP7: Protected user callbacks from destruction within libevent callbacks                                 | 
                            
                                                                    
                                                    
                                | 2.0.0 | 
                                
                                    Fixed some memory issues in PHP7 
- SSL leaks 
- Possibility of implicit destruction of user vars 
- Unclean SSL bufferevent shutdown 
- EventBufferEvent::free() within a callback damaged zvals bound to corresponding bufferevent thereby causing SEGFAULT 
 
Fixed PHP5/PHP7 memory issue: string returned by EventBuffer::pullup() was not zero-terminated                                 | 
                            
                                                                    
                                                    
                                | 2.0.0RC2 | 
                                
                                    Fixed Mac OS X build errors                                 | 
                            
                                                                    
                                                    
                                | 2.0.0RC1 | 
                                
                                    PHP7 support added. 
 
Fixes: 
  - issue #23: memory leak in EventHttpConnection close callback + memory leaks in HTTP callbacks. 
  - Libevent 'unrecoverable' fatal errors(fixed by stopping the loop in EventBase free-storage handler). 
 
API changes: 
  - EventUtil::createSocket method added(PHP7) 
  - The first(EventBase) argument of EventBufferEvent::sslFilter method is deprecated, since the internal EventBase object must match EventBase object within the underlying EventBufferEvent 
  - Added EventBufferEvent::createSslFilter method as a replacement for the sslFilter method.                                 | 
                            
                                                                    
                                                    
                                | 1.11.3 | 
                                
                                    Issue #20: SSL_GET_PREV_SESSION:session id context uninitialized                                 | 
                            
                                                                    
                                                    
                                | 1.11.2 | 
                                
                                    Issue #6: memory leaks in EventHttp callbacks. 
EventBufferEvent object returned by EventHttpRequest::getBufferEvent() should be freed explicitly, 
if the method is called from a userspace callback.                                 | 
                            
                                                                    
                                                    
                                | 1.11.1 | 
                                
                                    Fixed build with old openssl (RHEL-5) (thanks to Remi Collet)                                 | 
                            
                                                                    
                                                    
                                | 1.11.0 | 
                                
                                    Fix: exceptions thrown from EventHttp and EventBufferEvent userspace callbacks were not passed through back to user. 
Now the event loop will break and re-throw the exception. 
Add: EventBase::free method 
Add: EventBufferEvent methods: 
  - close 
  - sslGetCipherInfo 
  - sslGetCipherName 
  - sslGetCipherVersion 
  - sslGetProtocol 
Add: EventSslContext options: 
  - OPT_NO_SSLv2 
  - OPT_NO_SSLv3 
  - OPT_NO_TLSv1 
  - OPT_NO_TLSv1_1 
  - OPT_NO_TLSv1_2 
  - OPT_CIPHER_SERVER_PREFERENCE 
  - TLSv11_CLIENT_METHOD 
  - TLSv11_SERVER_METHOD 
  - TLSv12_CLIENT_METHOD 
  - TLSv12_SERVER_METHOD 
(Thanks to Mathieu CARBONNEAUX @ bitbucket.org) 
Issue #13: EventBufferEvent::__construct failed to accept a persistent 
socket client(STREAM_CLIENT_PERSISTENT)                                 | 
                            
                                                                    
                                                    
                                | 1.10.3 | 
                                
                                    Issue #8: pecl install failed due to the REST API issues with Unicode                                 | 
                            
                                                                    
                                                    
                                | 1.10.2 | 
                                
                                    Fix: EventBufferEvent::read() accepted negative values 
Fix: TSRM context was not set in EventHttp::__construct (J?nos Fekete) 
Fix: refcounter in EventHttp's default callback (J?nos Fekete)                                 | 
                            
                                                                    
                                                    
                                | 1.10.1 | 
                                
                                    Deleted a troublesome phpt test                                 | 
                            
                                                                    
                                                    
                                | 1.10.0 | 
                                
                                    Issue #3: Segmentation fault on EventHttpRequest->free() (Bitbucket's tracker). 
Add: EventHttpConnection::__construct() now optionally accepts EventSslContext argument (issue #5). 
Add: EventHttp::__construct() now accepts EventSslContext object as argument.                                 | 
                            
                                                                    
                                                    
                                | 1.9.1 | 
                                
                                    Fix: return value of EventBase::reInit() was inverted 
issue #7: PHP_EVENT_REQUIRE_BASE_BY_REF() didn't work in 5.6.0-dev (fixed by Remi Collet)                                 | 
                            
                                                                    
                                                    
                                | 1.9.0 | 
                                
                                    Windows support introduced(thanks to Anatol Belski <ab@php.net>) 
 
LIBEVENT_VERSION is now reported in phpinfo(Remi <remi@php.net>) 
 
 Forced passing EventBase argument by reference. A method accepting EventBase 
 will generate fatal error in case if corresponding argument is not passed by 
 reference. 
 
 EventBufferEvent::createPair method made static.                                 | 
                            
                                                                    
                                                    
                                | 1.8.1 | 
                                
                                    Fix: Bug #65847 Issue with old libevent2 where evhttp_connection_get_bufferevent function was not available with libevent version < 2.0.17 (thanks to Remi <remi@php.net>)                                 | 
                            
                                                                    
                                                    
                                | 1.8.0 | 
                                
                                    Add: EventHttpRequest methods: getBufferEvent, getConnection, closeConnection(thanks to rickysu at Bitbucket) 
Add: EventHttpConnection::setCloseCallback method                                 | 
                            
                                                                    
                                                    
                                | 1.7.8 | 
                                
                                    Fix: build error on Solaris 
Introduced negative dependencies: libevent extension, windows OS                                 | 
                            
                                                                    
                                                    
                                | 1.7.7 | 
                                
                                    Fix: incorrect handling of sockets extension dependency 
(a hack for distros installing sockets separately)                                 | 
                            
                                                                    
                                                    
                                | 1.7.6 | 
                                
                                    Change: sockets extension is now required(see bug #65597). The user can still 
turn off this requirement explicitly with --disable-event-sockets configure 
option                                 | 
                            
                                                                    
                                                    
                                | 1.7.5 | 
                                
                                    Fix: build error with custom libevent installation prefixes like /lib(John Wamer)                                 | 
                            
                                                                    
                                                    
                                | 1.7.4 | 
                                
                                    Fix: Segmentation fault caused by direct access to the zend object properties' hash table                                 | 
                            
                                                                    
                                                    
                                | 1.7.3 | 
                                
                                    Fix: in php_event.c write_property function was non-static 
Fix: absence of get_gc property handler caused segfaults with gc_collect_cycles()                                 | 
                            
                                                                    
                                                    
                                | 1.7.2 | 
                                
                                    Fix: bug #65320 where we got build errors in attempts to compile event statically(thanks to florin) 
Fix: bug #65319 where config.m4 used <php_version.h> to detect current PHP version 
Fix: config.m4 included -levent_pthreads into LDFLAGS even --without-event-pthreads configuration 
Fix: evthread_use_pthreads() call skept due to a "macro magic"(PHP_EVENT_ASSERT)                                 | 
                            
                                                                    
                                                    
                                | 1.7.1 | 
                                
                                    Fix: segmentation fault on gc_collect_cycles() after calling Event::free(), 5lava @ Bitbucket reported 
Fix: assignment reference to "data" property caused 'Fatal error:  Cannot assign by reference to overloaded object' 
Fix: evnt object dtors sometimes didn't free the 'data' member until the script shutdown phase                                 | 
                            
                                                                    
                                                    
                                | 1.7.0 | 
                                
                                    Merged in 5lava/pecl-event (pull request #1) @bitbucket: 
Fix: EventBufferEvent::setTimeouts() didn't work with double values 
Fix: EventBuffer::copyout() didn't work in some cases 
Add: EventBuffer::readFrom() method (corresponds to evbuffer_read()) 
Add: EventUtil::getSocketFD() method                                 | 
                            
                                                                    
                                                    
                                | 1.6.2 | 
                                
                                    Fix: bug #64678 where Fedora Packaging Guidlines required LICENSE file 
Fix: bug #64680 where we should check for SKIP_ONLINE_TESTS environment variable 
Fix: bug #64679 where we had buffer overflow caused by struct sockaddr_storage * pointer                                 | 
                            
                                                                    
                                                    
                                | 1.6.1 | 
                                
                                    Fix: bug #64652 where Event::__construct returned valid object, however, with 
uninitialized internal struct which caused segmentation faults in further 
method calls                                 | 
                            
                                                                    
                                                    
                                | 1.6.0 | 
                                
                                    Fix: bug #64551 with build failed on Mac OS X 
Fix: address argument of the listener accept callback contained garbage in case of a client connected via UNIX domain socket 
Add: EventBuffer::write, EventUtil::setSocketOption methods and some constants 
Refact: automatically set the upper bound of EventBuffer::search to the buffer length, if it is greater then the length 
Fix: make the code compatible with PHP 5.5.0 .. 5.6.0-dev 
Fix: build error with zts PHP setup 
Fix: build error with libevent_extra disabled 
Add: EventListener fd readonly property for numeric file descriptor of the socket associated with the listener 
Add: EventBuffer::substr method 
 
INCOMPATIBLE CHANGES! 
Renamed EventBuffer::remove to EventBuffer::read, EventBuffer::read now takes only max_bytes argument and returns string. 
Renamed EventBuffer::removeBuffer to EventBuffer::appendFrom 
EventBuffer::read now takes single argument 'size' and returns the string read                                 | 
                            
                                                                    
                                                    
                                | 1.5.1 | 
                                
                                    Fix: EventBuffer::removeBuffer returned boolean instead of the number of bytes read 
Add: EventBuffer::fd property 
Change: EventBuffer class is not final any more                                 | 
                            
                                                                    
                                                    
                                | 1.5.0 | 
                                
                                    Fix: uninitialized socket caused segmentation fault in EventBufferEvent methods 
Del: EventBufferPosition class removed, EventBuffer::search now accepts and returns integers 
Add: EventBuffer::searchEol method 
Add: EventUtil::getSocketName method 
Add: EventListener::getSocketName method 
Fix: memory leak due to lack of zend_hash_destroy on the ssl context options 
Add: support of UNIX domain sockets in EventListener::__construct, EventBufferEvent::connect methods                                 | 
                            
                                                                    
                                                    
                                | 1.4.0 | 
                                
                                    Add: HTTP server support: 
  * EventHttp methods: setMaxBodySize, setMaxHeadersSize, setTimeout, 
    addServerAlias, removeServerAlias setCallback, setDefaultCallback, 
    setAllowedMethods, setMaxBodySize, setMaxHeadersSize, setTimeout, 
    addServerAlias, removeServerAlias; 
  * EventHttpRequest class, callback and custom data can be bound to the 
    request for future use with EventHttpConnection 
  * New EventHttpConnection::makeRequest method allows to make custom HTTP 
    requests by means of EventHttpRequest class 
Change: make EventDnsBase parameter optional in EventHttpConnection::__construct 
Fix: classes/buffer_event.c: possible memory access violation in bufferevent callback 
Fix: turn off buggy libevent thread lock debugging when built with --enable-event-debug                                 | 
                            
                                                                    
                                                    
                                | 1.3.0 | 
                                
                                    Fix: possible memory access violations in EventBufferEvent input/output property handlers 
Change: Event::$timer_pending property removed; generic Event::$pending property added 
Fix: With OPT_LEAVE_SOCKETS_BLOCKING flag EventListener::__construct turned fd to non-blocking mode 
Fix: property and class HashTable's were not free'd in MSHUTDOWN 
Add: Event::$data property 
Fix: Event::__construct failed with Event::TIMEOUT flag 
Fix: memory leak in EventBuffer::readLine 
Add: --with-event-pthreads configure option 
Fix: EventBase::reInit method's arginfo                                 | 
                            
                                                                    
                                                    
                                | 1.2.6 | 
                                
                                    Fix: with OpenSSL turned off got error: undefined symbol: zim_EventUtil_sslRandPoll 
Add: implemented get_properties property handler(is called when one casts an object to array) 
Refact: removed memory alloc for empty property hashtables 
Fix: heap corruption caused by EventBufferEvent callbacks(thanks to Marco Schuster) 
Fix: continuous calls to EventBufferEvent::setCallbacks didn't free old fci/fcc(thanks to Marco Schuster) 
Fix: possible heap corruption in EventListener's callback 
Add: EventBase::resume method                                 | 
                            
                                                                    
                                                    
                                | 1.2.5 | 
                                
                                    This is the first release on PECL since 1.0.0. Previous releases are available 
here: https://bitbucket.org/osmanov/pecl-event 
 
Add: callbacks and the callback arg are now passed to EventBufferEvent::__construct as optional arguments 
Change: EventBufferEvent enable/disable methods return bool now 
Change: instead of stream pass numeric file descriptor to EventListener's accept-connection callback 
Fix: unneeded Z_ADDREF_P() calls in EventListener, EventBufferEvent constructors and factory methods 
Fix: EventListener cached file descriptor for all connections                                 | 
                            
                                                                    
                                                    
                                | 0.9.1 | 
                                
                                    Added event_timeout() function for easily scheduling a callback after a certain 
period of time.  The timeout may be persistent to make the callback a recurrent 
event. 
 
Fixed an issue with timercmp() on windows that caused a busy wait when the 
scheduler could have performed a sleep. 
 
Windows scheduling engine now also processes the message queue while waiting; 
useful for COM/GUI based scripts. 
 
Fixed build for threaded systems with real signals. 
 
Supports epoll(4), poll(2) and select(2) IO notification engines. 
Support for /dev/poll and kqueue is pending. 
 
On Windows, currently only sockets can participate in the IO notification engine.                                 | 
                            
                                                                    
                                                    
                                | 0.9 | 
                                
                                    Supports epoll(4), poll(2) and select(2) IO notification engines. 
Support for /dev/poll and kqueue is pending. 
 
On Windows, currently only sockets can participate in the IO notification engine.                                 |