The London Perl and Raku Workshop takes place on 26th Oct 2024. If your company depends on Perl, please consider sponsoring and/or attending.
Revision history for Perl extension Nginx::Engine.

0.08  Thu Jun 30 21:43:03 EEST 2011
	- missing extern declaration for ngxe_pagesize;

0.07  Thu Jun 30 01:37:23 EEST 2011
	- added another example application: autocomplete-server.pl,
	  thanks to Yung-chung Lin;
	- more work on examples; Net::DNS-based resolver moved to examples
	  from separate module: it is simple enough to just use needed
	  parts of the code and avoid unnecessary complications;
	- removed couple of not so good examples;
	- a lot of cleaning up;
	- added ngxe_writer_put as an alias to ngxe_writer_buffer_set;
	- added Nginx::Engine::Debug - tiny code filter to uncomment
	  # warn ... things, can be enabled with --ngxe-debug command line
	  argument or NGXE_DEBUG=1 environment variable;
	XS internals:
	- reader checks whether or not writer was started in callback
	  and does nothing if it was;
	- now callback increments refcnt of every argument before passing 
	  it to call_sv and decrements on return avoiding premature 
	  destruction of SVs if connection was closed somewhere else;
	- nginx updated to 0.8.54; 1.0.4 was crashing on c->recv with
	  kqueue;
	- default kqueue/epoll changes/events raised to 4096;
	PP internals:
	- reader won't call back unless its buffer has $_[4] bytes
	  and $_[4] > 0, but still no need to rely on that feature, it should
	  be used as a hint only, kind of like lowat;
	- fix: autoswitch: writer was enabling reader back on after 
	  ngxe_writer_buffer_set, reader was checking $rin instead of $rout;
	- ngxe_buf returns blessed SCALARREF from pool that puts itself
	  back to the pool on DESTROY;

0.06  Sun Mar 13 21:13:27 2011 GMT
	- added pure-perl fallback;
	- added ngxe_buf(), ngxe_buffree();
	- tested in production for a few weeks;
	Internals:
	- ngxe_client was calling internal write handler [itself] 
	  if there was no writer;
	- added ngxe_debug.h and initial debugging support: 
	      perl Makefile.PL DEFINE="-DNGXE_DEBUG"
	- limiting reader's buffer size, limit can be set as a 3rd 
	  argument of ngxe_init();
	- writer extended to support ARRAYREF of SCALARREFs (ngxe_bufs) and
	  SCALARREF as a buffer;
	- some timeout fixes;
	- SAVETMPS/FREETMPS removed from the ngxe_loop, was causing really
	  weird problems;

0.05  Tue Jan 11 00:42:54 2011 GMT
	- Nginx::Engine::Cookies::Resolver removed from the Nginx::Engine 
	  distribution, keeping it clean;
	- Added simple example on how to do something asynchronously and
	  then return and deal with the connection again in 
	  examples/http-server-with-parser-xs.pl;
	Internals:
	- callback on memory allocation failure in ngxe_client;

0.04  Fri Jan  7 18:10:24 2011 GMT
	- added $_[4] to the reader's callback to control the amount of
	  data to be read, might be useful for a lot of protocols and
	  very benefitial for performance;
	- added a few examples showing how to do more complex things:
	  keepalive-client, resolver;
	- added Nginx::Engine::Cookies to implement some common things
	  on top of the Nginx::Engine;
	- added Nginx::Engine::Cookies::Resolver as a ready to use
	  implementation of a simple tcp resolver on top of Net::DNS;
	- removed nginx.pm and a few other files from nginx distribution
	  to prevent from showing up on CPAN;
	- fixed: was failing to build on Mac OS X, thanks to 
	  Tatsuhiko Miyagawa;
	Internals:
	- making sure not to reschedule just stopped callback by checking
	  c->read->handler and c->write->handler;
	- bugfix: ngxe_client needed read handler as well as write handler 
	  to avoid crashing on connect to closed port on some systems;
	- calling ngx_handle_read_event() after each callback 
	  in the reader to make sure that the c->read->ready is set;
	- dummy handlers on newly accepted connection;
	- call back on ev->error in client's handler;
	- reader and writer start with a dummy handlers for itself 
	  and only use real ones with NGXE_START flag set
	- timer resets every time *_start is called;

0.03  Sat Jan  1 22:22:19 2011 GMT
	- START argument in both reader and writer is changed to FLAGS;
	  NGXE_START is a flag for automatic start;
	- reader and writer are more smart now and can start and stop
	  depending on the write buffer;
	- added dual calls to stop and start reader and writer in 
	  a single perl -> xsub call but might not be needed anymore;
	- a few automated tests for basic functionality;
	- bugfix: failed connect to localhost was crashing, required 
	  peer->name to log an error, which was not used at all;
	- fix: ngxe_server was not returning an error if port was already
	  taken;

0.02  Wed Dec 29 21:58:40 2010 GMT
	- reader and writer timeouts can be changed via *_start functions
	  as a second argument;
	- added ngxe_reader_timeout, ngxe_writer_timeout;
	- added initialization flag check in every XS function;
	- ngxe_init requires only single argument now, allocating
	  512 connections by default, old syntax is still supported

0.01  Wed Dec 15 03:01:23 2010 GMT +0200
	- original version; created by h2xs 1.23 with options
		-A -n Nginx::Engine