The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.
=head1 ACKNOWLEDGEMENTS

Extra Thanks to:

Andreas Koenig <andreas.koenig@franz.ww.tu-berlin.de>
for *lots* of bug spotting, fixing and patching, 
Apache::Registry and CGI.pm overhaul efforts (aka CGI::XA & CGI::Switch)

Gisle Aas <aas@sn.no>
For getting this effort started

Other contributors are mentioned below:

=item 0.83_03

Perl*Handler's are now called with Apache->request as an argument
PerlHandler's may still ask for Apache->request so existing code and
mechanisms such as Apache::Registry will continue to work
However, other handlers such as PerlAuthenHandler and PerlTransHandler,
cannot use Apache->request.

added Apache::Constants module, based on patch to Apache.xs 
from Gisle

updated Apache::Debug with patch from Gisle to 
- update the status codes from the latest
  HTTP::Status and produce a prettier and more output.

- We also ensure that we do not generate output for HEAD requests and we
  set up status correctly.

updated Apache.pm and Apache::Options docs, thanks to Gisle

fixed PerlScript bug spotted by Gisle

renamed Apache::Msql to Apache::MsqlProxy

=item 0.83_02

bug patch to Apache::Registry from Andreas

=item 0.83_01

minor clean-up

fixed port and query_string related bugs in Apache::Msql example

applied patch from Salvador Garcia <sortiz@cfe.gob.mx> to fix PerlTransHandler bugs
spotted by Hugues Lafarge <Hugues.Lafarge@afp.com>

applied Apache::Registry patch from Andreas  
- allows filanames to start with a digit (you probably saw a "bad
  symbol after ::" error)

- strips path_info before deciding which package the script is compiled
  into.

=head1 *developer's release* release 0.83 - September 12, 1996

added Apache::Msql module

added $r->handler method

added $r->proxyreq method

added PerlTransHandler directive

minor clean-up

=head1 *developer's test* release 0.82 - September 11, 1996

added Apache::Authen and Apache::AuthenDBI modules

added $r->get_basic_auth_pw method

added $r->note_basic_auth_failure method

added PerlAuthHandler directive

added $r->dir_config method 

added PerlSetVar directive

we now have mod_perl.h

fix for using mod_perl_fast with Apache-SSL

=head1 release 0.81 - September 08, 1996

added Apache::CGI->exit method as suggested by Andreas

items needed for 1.2 are now conditional using MODULE_MAGIC_NUMBER

included Makefile.tmpl.1.2  

=head1 release 0.80 - September 06, 1996

fix so we can send $strings of binary data to the client

fix so we can log bytes sent

added Andreas' CGI::XA kit for users of CGI.pm + mod_perl_fast

added PerlSetupEnv directive

added PerlSendHeader directive 

we now take advantage of Perl's new IO abstraction so STDIN and 
STDOUT are hooked up to the client.
Thanks to Sven Verdoolaege <skimo@breughel.ufsia.ac.be> for the
initial patch

added $r->connection->close method

added $r->exit method

applied patch from Rob Hartill <robh@imdb.com> so read_client_block
works with apache-1.2 changes

updated UsersGuide to suggest using configuration that does not
require patching mod_alias.c, thanks to Rob Hartill <robh@imdb.com> 

added $r->method_number method

$r->method() now accepts an argument to change the request method 
(for things like internal re-directs)

added send_cgi_header method

added internal_redirect_handler method

applied NeXT fix from Andreas

applied patch from Andreas to fix eval error line number 
in Apache::Registry

changed Changes file so it can be read with 'perldoc Changes'

=head1 release 0.76b2 - August 16, 1996

updated Apache::CGI, now requires CGI.pm 2.22+

#undef pregcomp to fix namespace clash with Apache 1.2

added (placeholder for) PerlSetVar directive (need to think about it some more)

applied patch from Andreas Koenig <andreas.koenig@franz.ww.tu-berlin.de>
to fix bug introduced with perl5.003_01 + IRIX combo

=head1 release 0.76b1 - July 26, 1996

included Sven Verdoolaege's (experimental) patch for minimal TIEHANDLE
support, so we can tie *STDOUT, 'print' instead of '$r->print' that is.

added (experimental) Apache::TieHandle module

included Chip Salzenberg's FileHandle.pm patch

added UsersGuide document

if no PerlHandler is defined we fail with a SERVER_ERROR

Apache::Registry now checks to make sure uri is not a directory

applied Apache::Registry patch from Andreas for minor clean-up 
and an extra error check

=head1 release 0.75a1 - July 21, 1996

added Apache::Registry module contributed by 
Andreas Koenig <andreas.koenig@franz.ww.tu-berlin.de>

Apache::SSI now checks ExecCGI option before doing an 'exec'

included patch for mod_alias.c to allow for PerlAlias directive

added allow_options and is_perlaliased methods to Apache.pm

added Apache::Options module

added Apache::Debug module

applied patch from Andreas Koenig <andreas.koenig@franz.ww.tu-berlin.de> to
-fake up a PerlScript if one is not specified
-ITERATE over PerlModule directive so it will accept multiple modules
-no longer store request_rec in $Apache::Request
we now require ExtUtils::Embed as it has been re-named for
the standard perl distribution as of 5.003_01


=head1 release 0.71b1 - July 19, 1996

added PERL_CCFLAGS to Makefile.tmpl as suggested by 
Lincoln Stein <lstein@genome.wi.mit.edu>

subroutines no longer need to return '0' for OK status, 200 and 1 
are 'OK' too.

added 'PerlHandler' as replacement for 'PerlResponse',
seems like a more appropriate name after Salvador's 
'AddHandler' suggestion

added item to the handler_rec so we can say 'AddHandler'
Thanks to Salvador Garcia <sortiz@cfe.gob.mx>

fixed bug with storing 'PerlModule's read from srm.conf
Thanks to Salvador Garcia <sortiz@cfe.gob.mx> for the spot and helping with the fix
more Makefile.tmpl fixes from Andreas Koenig <andreas.koenig@franz.ww.tu-berlin.de>

=head1 release 0.70b1 - July 14, 1996

applied patches from Andreas Koenig <andreas.koenig@franz.ww.tu-berlin.de>
to fix Makefile.tmpl bug, NeXT define troubles, 
typos and documentation clean-up

Added Apache::SSI module for server side includes

Added 'PerlModule' directive for loading modules in srm.conf

fixed read_client_block bug that was causing trailing garbage to show up
n the client for some people. 
Thanks to Alan Beale <agb@openplus.co.uk> for the fix.


=head1 release 0.60a5 - June 25, 1996

fixed bug in mod_perl_fast that was causing bizarre problems for some people

=head1 release 0.60a4 - June 18, 1996

dropped content and args methods from Apache.xs, moved to Apache.pm
The xs implementation was causing problems for some people

added Apache::unescape_url function

added $r->header_in method


=head1 release 0.60a3 - June 17, 1996

Added read() alias for read_client_block

Updated Makefile.tmpl to use the renamed ExtUtils::embed

Fixed various small bugs that were causing big problems

pid $$ now set in mod_perl_fast, thanks to Alan Beale <agb@openplus.co.uk>

Added basic_http_header() method 


=head1 release 0.60a2 - May 21, 1996

fixed bug in mod_perl_fast.c the caused problems with 
$r->content and $r->args

Added Apache::CGI module for those who use CGI.pm

There's now a Makefile.PL (currently for installing perl-only modules).


=head1 release 0.60a1 - May 18, 1996

Started getting ready for optional Safe wrapper around scripts

Added $r->get_remote_host() method, putting $r->connection->remote_host back to normal

=head1 release 0.50a2 - May 9, 1996

new (faster) approach with mod_perl_fast
Thanks to John Detloff <detloff@arizona.edu> 
for friendly error checking code.

we now use an Apache.pm file

moved more code from mod_perl to Apache.xs so mod_perl_fast could share it

rganized Apache.xs

fixed $r->connection->remote_host 

hiding of 'Authorization' header is optional now

added 'print' alias to 'write_client'

dropped set_ prefix for several methods

=head1 release 0.50a1 - May 1, 1996

xs_init now gets linked with us, as generated by Devel::embed
so we can bootstrap static extensions (including Apache)

stomped out *main:: variables, moved to Apache.xs as methods

added method 'request' to return the request pointer object
And did a typedef request_rec * Apache
so we don't need to say @request_recPtr::ISA = 'Apache'; anymore

added method 'write_client' for sending a @list of data to the client

added methods that simply access members of request_rec
-method
-uri
-protocol
-path_info
-filename 

added method 'args'
when called in a scalar context, it returns the query string
when called in a list context, it splits the query_string into key => vairs

moved parsing code to Apache.xs, and now data is only read when the user
asks for it with the content() method.

added method 'content'
when called in a scalar context, it reads data from the client
when called in a list context, it splits the content into key => vairs

added method 'headers_in' to return a %hash of request headers
the 'Authentication' header is not returned

added perl_call_argv to Apache->bootstrap ourselves

we now flush the script's %ENV
users can set-up a standard CGI %ENV via method $r->cgi_vars

the script's STDERR in now redirected to the error_log

added client_to_stdout and client_to_stdin methods to
hookup the script's STDOUT and STDIN
** This is broken right now **

added method 'connection' and Apache::Connection class
returns a object reference to the request_rec's conn_rec
methods availible include:
- remote_host
- remote_ip
- remote_logname
- remote_user
- auth_type

added method 'server' and Apache::Server class
returns a object reference to the request_rec's server_rec
methods availible include:

- server_admin
- server_host
- port

Changes for Apache 1.1x
-rprintf to bputs, etc.


=head1 March ?? 1996

Initial version of mod_perl.c and perl_glue.xs
by Gisle Aas <aas@oslonett.no>
Thanks for getting this started Gisle!