/
Changes
2504 lines (1592 loc) · 77.8 KB
/
Changes
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
=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 and many contributions since
Other contributors are mentioned below.
=head1 CHANGES
=over 3
=item 1.09 - March 19, 1998
rid of stupid "can't bootstrap Apache::Constants outside of httpd" message
added r->content_languages method
added htdocs/manual/mod/mod_perl.html (generated from Apache::ModuleDoc)
now support <Perl> under win32 (requires 1.3b6-dev+)
PerlChildExitHandler is now implemented via register_cleanup() rather
than the module child_exit hook (which might go away!)
support Apache::Constants tags `override' and `args_how', for Apache::Module
'make test' will now work again under win32
applied Apache::Symbol/Apache::StatINC patches from Chris Dean
fixed bug in Makefile.PL that would tack `aix' onto INCDIR w/ apache
1.2.x, spotted by Mike Klein
removed uneeded check for HTTP_AUTHORIZATION from perl_setup_env()
fixup perl_section_self_boot so it doesn't try to read config
if keys %Apache::ReadConfig:: < 1
perl_section_self_boot thang will now work w/ PerlRequire'd files too
compile @Apache::Constants::EXPORT subroutines at boot time (rather
than AUTOLOAD in each process)
added internal/error.t test to test the new feature below
ErrorDocument's can now access the $@ that threw SERVER_ERROR via
$@{ $r->prev->uri }
added internal/rwrite.t test to test printing of HUGE strings
1.3b6 compat:
- tmp fix for new r->server->names type
- adapt to SERVER_BUILT change to apapi_get_server_built()
for Constants.xs
fixed print $HUGE_buffer bug w/ ApacheSSL spotted by Jirka Hejsek
added WRITE method for tied filehandles
fix so threaded Perl can have <Perl> sections
Perl 5.004_61 dropped -DUSE_THREADS from $Config{ccflags}, Makefile.PL
will now test $Config{usethreads} and add the flag itself
fixed eg/registry.pl sytax erros thanks to David Landgren
fix #ifdefs so we build under win32 again
config files now support =pod/=cut and __END__ in the same fashion Perl does
fix Makefile.PL so it can handle \'ed lines with help from Tom Hukins
Apache::Symbol::handler will skip all Devel::Symdump undef's so
make_universal will work properly
=item 1.08 - February 20, 1998
Apache::Registry will now fold multiple /'s to fix possible bug
spotted by Gerald Richter
fix Apache/Makefile.PL and Constants/Makefile.PL so DYNAMIC=1 works
with 1.3b5 (new include directory)
Constants.xs will now #include mod_perl.h so namespace #undefs are used
fixup some #define clashes on aix thanks to Eric Bartley
fixed Makefile.PL workaround for plucking SSL_INCLUDE with help from
Dan Peterson
can build again with threaded Perl (was just missing a few dTHR's)
cleared up BEGIN/END documenation with help from John Charlesworth
applied patch from Christopher McCrory so -f is also used when 'make
test' httpd is started so it'll work with a .rpm file for a redhat
linux
added Apache::Constants->name method
fix an #endif; in mod_perl.h thanks to Eric Bartley
mod_perl_cleanup_handler won't try to if(cld) MP_RCLEANUP_off(cld);
#ifdef WIN32 to stop crash spotted by David Hodson
expose stacked handlers to Perl via %Apache::PerlStackedHandlers
(this is only those pushed via $r->push_handlers)
can now tell Makefile.PL APACHE_INCLUDE_INSTALL=0 if you don't want
header files installed
when Apache::Status tries to load optional modules, it will locally
turn off $SIG{__DIE__} to fix bug spotted by Dan Peterson
added SERVER_BUILT to Apache::Constants
got rid of "Use of uninitialized value." warning in perl_util.c seen
when running HTML::Embperl, hunted down by Todd Eigenschink and Gerald
Richter (listed as change in _04, but was lost!)
fixed Makefile.PL so it can deal with metacharacters when copying the
apache source include files, otherwise src.pm breaks, thanks to Dan
Peterson for the spot
=item 1.07_04 - February 10, 1998
fix "building mod_perl by hand" bug w/ 1.3bx spotted by Brian Mosley
no longer force 'PerlSendHeader On' for sub-requests which triggered a
bug spotted by Doug Bagley and Gerald Richter
Fix "Attempt to free unreferenced scalar." during kill -HUP w/
PerlFreshRestart On and <Perl> in httpd.conf spotted by Brian Mosley
clear endav and stacked_handlers on FreshRestart
fix bug spotted by Gerald Richter where Apache->register_cleanup would
cause a core dump
Apache->module will no longer eval "require $module", it will now
return true if the module is in %INC, false otherwise
fix so END blocks encountered at startup are run at shutdown
(I think one of the 1.07_xx version broke it)
If exists, Makefile.PL will add /usr/local/stronghold/conf/httpd.conf's
StrongholdKey to t/conf/httpd.conf for 'make test' for you
Makefile.PL will edit Stronghold's Makefile to replace:
"CFLAGS=$(CFLAGS)" with 'CFLAGS=$(CFLAGS)' so the SUBVERSION thang works
fix $r->custom_response problem spotted by Brian Mosley so it works
with SERVER_ERROR
added new method child_terminate
fix $r->current_callback so it can be called during startup
perl Makefile.PL PERL_DEBUG=1 will:
-add `-g' to EXTRA_CFLAGS
-turn on PERL_TRACE
-set PERL_DESTRUCT_LEVEL=2
-link against libperld if -e $Config{archlibexp}/CORE/libperld$Config{lib_ext}
Apache::Constants :common export tag no longer includes
OPT_EXECCGI (was held off from 1.07_01's Changes Apache::Constants
cleanup waiting to make sure HTML::Embperl and Apache::ePerl didn't
rely on OPT_EXECCGI to be exported by default. both look fine now)
added workaround Apache::RedirectLogFix module to work around the
re-introduced log bug below
to fix a double-header send bug spotted by Doug Bagley, backed out
this Change from 1.06:
Apache::Registry will return REDIRECT if $r->header_out("Location")
so the request is logged properly, thanks to spot by Jon Drukman
added experimental PerlRestartHandler
(enabled with PERL_RESTART_HANDLER=1, note: _not_ enabled with EVERYTHING=1)
moved Apache::sv_name function to the new Apache::Symbol package
Apache::StatINC will call Apache::Symbol's undef_functions method for
.pm classes if PerlSetVar UndefOnReload is On
before re-compiling, Apache::Registry will now check if
$package->can('undef_functions'), if so, invoke that method
added Apache::Symbol module with an undef_functions method
Apache->server_root_relative now defaults to "" when no
filename/directory name argument is given (ie returns ServerRoot)
made PERL_TRACE more useful with levels set via environment variable
MOD_PERL_TRACE:
d - trace directive handling during config read
s - trace processing of perl sections
h - trace Perl*Handler callbacks
g - trace global variable handling, intepreter allocation, END blocks, etc.
all - all of the above
will add -DSTRONGHOLD to CFLAGS if build against stronghold, thanks to
Todd R. Eigenschink
fix Makefile.PL's parsing of SERVER_SUBVERSION, spotted by Paul Sutton
$r->send_http_header can now accept an optional second argument, if
present will set $r->content_type
PerlPassEnv, PerlRequire and PerlModule now use an array_header
structure for internal storage
1.3b4 compat:
- adapt to new table api changes (with help from Rob Hartill and Dean Gaudet)
- adapt to *.h move to the new src/include directory
Apache::Status enhancements:
- "Loaded Modules" will now report last modified time
- "packages" are now links, click, symbol table dump
- now that packages are links, no longer do recursive dump
(recurse yourself via hyperlinks, much easier to read!!!)
- hashes, scalars and arrays are now links,
click, Data::Dumper Dump (only if PerlSetVar StatusDumper is On)
- functions are now links, click, subroutine info (requires the B module)
- dump of any type also has a link "Peek Dump"
(only if PerlSetVar StatusPeek is On and Apache::Peek is installed)
- dump of any type also has a link "OP Tree Graph"
(only if PerlSetVar StatusGraph is On)
(requires the B and B::Graph modules and the dot program)
- added t/modules/status test
with the -DPERL_MARK_WHERE experimental feature enabled, there's a
chance you'll never see "Use of uninitialized value." again without
some more useful information, nor will you see '-e' reported outside
of Apache::Registry
perl_destruct_level can now be set via the environment variable
PERL_DESTRUCT_LEVEL or -DPERL_DESTRUCT_LEVEL
turn default perl_destruct_level down from 2 to Perl's default of 0
use a copy of apache's ap_cpystrn against versions < 1.3b4-dev
got rid of "Use of uninitialized value." warning in perl_util.c seen
when running HTML::Embperl, hunted down by Todd Eigenschink and Gerald
Richter
added modules/src test for Apache::src
documented Apache::src
the Apache::src->new method will now default to the first
auto/Apache/include directory found relative to @INC
the apache header files (*.h) will now be installed in
$(INST_ARCHLIB)/auto/Apache/include
fix $Apache::ServerStarting bug that broke 'make test' w/ ApacheSSL
and Stronghold spotted by Vivek Khera
remove the need for File::Copy's mv() function, since it can't seem to
decide if it has one or not
_03's new tests assumed PerlCleanupHandler was enabled, fixed now
thanks to spot by Rob Hartill
Makefile.PL will now chmod a+x t/net/perl/* t/net/perl/io/*
thanks to Rob Hartill
experimental features can be enabled with -DDEFINEs instead of
$variables or %ENV, changes to Makefile.PL make them simple to add,
see eg/makepl_args.mod_perl for even simpler
added eg/makepl_args.mod_perl
the makepl_args.mod_perl can now have multiple lines, space, #comments
and empty newlines are ignored, stops reading if it hits __END__
Makefile.PL will now also look for $ENV{HOME}/.makepl_args.mod_perl
and read in if exists
before clearing handlers stacked via Apache->push_handlers at the end
of each request, save the PerlChildExitHandler stack and putback after
the clear. this way, modules pulled in at server startup can say:
Apache->push_handlers(PerlChildExitHandler => sub {})
a "top-level" mod_perl per-directory directive would cause core dump
inside <Perl> sections. now trap that and exit with message that the
directive should be inside a containter e.g. %Location, %VirtualHost
(not sure what the real problem is here)
re-work PERL_SECTIONS_SELF_BOOT stuff so it calls perl_section() directly,
rather than perl_eat_config_string("<Perl>\n</Perl>"), because:
- it no longer core dumps when a "top-level" per-server directive is found
- it no longer requires 1.3b3+ (1.2.x will work)
- it is faster
PerlModule/PERL_SECTIONS_SELF_BOOT will delete $INC{$PerlModule} on
the first config read pass, so it's re-read on the second pass
if ($] < 5.004_04) Makefile.PL will warn that users should upgrade to
5.004_04 or higher
removed Apache::PerlSections' self test now that we have
modules/psections.t and it won't work without the =pod line.
remove =pod line from Apache:: modules (SIG, fork, Resource,
PerlSections) to stop 5.004's pod2man's bogus warnings spotted by
Eric Cholet
fixed but in $r->get_remote_host, which was forcing the default type
REMOTE_NAME even if another type was passed as the optional second argument
renamed eg/perlio.pl to eg/test.pl
moved SUPPORT section from INSTALL doc to it's own file
fixed auto-set of $ServerRoot bug in Apache::httpd_conf
get rid of -Wall warning in Apache::sv_name
=item 1.07_03 - January 8, 1998
removed "[notice] mod_perl restarted" message since it doesn't go to
the error_log as it should, spotted by Vivek Khera and Paul Phillips
fixed corrupted $ENV{TZ} spotted by Michael Parker
cut out 'make test' error_log noise, anything there now should only be
an error or a non-error [notice]
make Apache::Resource simpler to configure, to use w/ all defaults
(1.3bx + PerlChildInitHandler required):
PerlSetEnv PERL_RLIMIT_DEFAULTS On
PerlModule Apache::Resource
Makefile.PL will now:
mv "t/conf/httpd.conf", "t/conf/httpd.conf.old"
so httpd.conf is re-generated when Makefile.PL is re-run
added new module Apache::src for finding it and picking out bits-n-pieces
get rid of some <Perl> section warnings with help from Doug Bagley
improved register_cleanup tests
applied $r->register_cleanup patch from Doug Bagley to properly call
MP_RCLEANUP_off after cleanups are run
perl Makefile.PL can now accept ADD_MODULE, Makefile.PL will (s/,/ /g)
and uncomment the list of modules from src/Configuration
e.g.:
ADD_MODULE=unique_id,proxy,info
perl Makefile.PL can now accept PERL_EXTRA_CFLAGS, Makefile.PL will
(s/,/ /g) which are added to EXTRA_CFLAGS
e.g.:
PERL_EXTRA_CFLAGS=-DFOO=1,-DBAR=2
if the file `makepl_args.modperl' is present in . or .. it will be read into
@ARGV, e.g. might contain EVERYTHING=1 DO_HTTPD=1
fixes for 1.3b4-dev compat
- get rid of AuthName space in generated .htaccess file for
internal/hooks test
if a PerlModule defines something in %Apache::ReadConfig <Perl>
sections are run without need to actually have <Perl></Perl> in
httpd.conf, i.e. httpd.conf could be nothing more than:
PerlModule Apache::httpd_conf
whilst experimental, enable by setting the envrionment variable
PERL_SECTIONS_SELF_BOOT to something true
experimental feature, modules can 'exit|die AUTH_REQUIRED;' or with
any HTTP error code and that response is sent rather than SERVER_ERROR
to test enable by setting $Apache::ERRSV_CAN_BE_HTTP = 1
take CGI.pm version check out of Apache::Registry, now that we require
5.004+, they'll have at least 2.36
get rid of "Use of uninitialized value at -e line 65535" warning
caused by perl_run_rgy_endav() spotted by Doug Bagley
if there is an error inside <Perl>, filename and line number are now
displayed in the error message, e.g.
syntax error at t/conf/httpd.conf line 25
instead of
syntax error at (eval 1) line 2
Apache::RegistryLoader->handler will now strip leading '/' when $uri is
server_root_relative and no $filename is present
Apache::Status menu item "Perl Section Configuration"
(only if $Apache::ReadConfig is true)
added Apache::Status menu item "Enabled mod_perl Hooks"
added mod_perl.pm functions hook() and hooks()
go back to internal <Perl> sections package name ApacheReadConfig
Apache::PerlSections stuff:
- added handy store method for writing dump() to disk
- fixed self-test
- updated docs to reflect new output format
Apache::test stuff:
- added run method
- added MM_test method for Makefile.PL's to say:
*MY::test = \&Apache::test::MM_test
some httpd_conf.pm stuff:
- added server_url method
- added catch_signals method to terminate httpd on __DIE__ or INT
($conf->server_start calls this by default)
- when httpd.conf is written, set BaseDir in a BEGIN block
- drop trailing slash from Alias'
- fix write() method's assignment of %$self to *Apache::ReadConfig::
fix possible core dump when calling gv_fetchmethod()
=item 1.07_02 - December 22, 1997
fixed perl.exp thang on aix
added tests t/modules/httpdconf.t and t/modules/perlsections.t
added Apache::httpd_conf module
if variable $Apache::ReadConfig is true, don't undef the <Perl>
section eval package %Apache::ReadConfig::
output of Apache::PerlSections->dump is now suitable to be eval'd
added Apache->httpd_conf method (just pushes into
@Apache::ReadConfig::PerlConfig and requires 1.3b3+)
renamed package <Perl> sections are proccessed in
from ApacheReadConfig to Apache::ReadConfig
ensure values of %Location keys, etc. in <Perl> sections are HASH refs
to stop possible core dump spotted by Stuart Frew
fixed memory leak in $r->push_handlers() with help from Gerald Richter
added new items to Apache::Status: "Environment",
"Perl Configuration", and "Signal Handlers"
when %ENV is setup, my_setenv() is now called so subprocesses will inherit
"top-level" PerlSetEnv variables will now be set during server startup
got rid of unintialized warning in Apache::Status
$r->custom_response will now add the `"' needed if arg is not a url or
filename
added new Constants CONTINUE and NOT_AUTHORITATIVE as aliases for DECLINED
change the `PerlScript' directive name to `PerlRequire' as suggested
by Dick Hardt (PerlScript will still work, but is not documented)
set variable $Apache::ServerStarting to 1 during perl_startup()
set variable $Apache::ServerReStarting to 1 during perl_restart()
Apache::SIG->set is now called at server startup by default
applied patch from Doug Bagley to stop possible infininite loop in
Apache->read
create stacked_handlers = newHV() before modules are loaded,
so PerlModule's can do things like:
Apache->push_handlers(PerlChildInitHandler => sub {
srand(time ^ $$);
});
$r->args can now be modified as suggested by Joel Truher
remove obsolete (and broken) iedit of t/net/perl/cgi.pl thanks to
Vivek Khera
Apache::Resource now correctly converts MB values
=item 1.07_01 - 12/1/97
added t/internal/stacked test
updated the FAQ from Frank Cringle
added Apache::fork module which override's Perl's built-in fork() and
provides a forkoption function, contributed by Michael Turner
can now build/run w/ 5.004_55 threaded Perl
added Apache::Status item for PerlScripts
there can now be multiple PerlScript files in *.conf and .htaccess
(same behavior as PerlModule)
ServerRoot is now pushed into @INC at server startup
filename argument to log_reason is now optional, defaults to $r->uri
Apache::Constants cleanup:
- @EXPORT now only holds items in :common
- re-organized tags (adding some new ones)
- added some documentation!
$r->get_remote_host can now take an optional type argument, default is
still REMOTE_HOST, other valid options are Apache::Constants :remotehost
added new Apache::Constants tag :remotehost (for $r->get_remote_host)
with new constants:
REMOTE_HOST REMOTE_NAME REMOTE_NOLOOKUP REMOTE_DOUBLE_REV
added new Apache::Constants tag :satisfy (for $r->satisfies)
with new constants:
SATISFY_ALL, SATISFY_ANY, SATISFY_NOSPEC
added new method $r->satisfies
added new method $r->some_auth_required
`METHODS' Apache::Constant added to import tag :methods
perl_stdout2client() will now set $| instead of perl_handler(), so
thanks to Salvador Ortiz Garcia for the tip
PerlSetEnv will now call my_setenv() underneath thanks to Tim Bunce
for the tip
fix mod_perl_traps.pod typo so it can install, spotted by Brian Tiemann
=item 1.07 - 11/25/97
added notes from Larry Denneau and Michael Smith on building with
mod_auth_dbm to mod_perl_traps.pod
added $r->custom_response method
$r->proxyreq can now be set
'use Apache qw(warn);' will now work during server startup
fixed loading of PerlScript, so errors are reported!
(your PerlScript must "return a true value")
fix TEST.win32 thanks to Peter Tillemans
s/DEFAULT_RSS_LIMIT/DEFAULT_RLIMIT_RSS/ in Apache::Resource
thanks to Jarkko Hietaniemi
fix Apache::RegistryLoader bug spotted by Brian Mosley
changed "Options ExecCGI" to "Options +ExecCGI" in httpd.conf-dist to
fix problem in 'make test' seen by Frank Ridderbusch
=item 1.06 - 11/20/97
fixed core dump seen under linux if PerlChild{Init,Exit}Handler is
defined (bug was introduced in 1.05 when PerlDispatchHandler was added)
added new module Apache::Resource
fix core dump in $r->notes when val is an IV, spotted by Dwayne Fontenot
get rid of "use of uninitialized value" from <Perl></Perl> pointed out
by Joel Wagner
fixed strict refs bug in Apache::PerlSections spotted by Brian Mosley
Apache::Registry will return REDIRECT if $r->header_out("Location")
so the request is logged properly, thanks to spot by Jon Drukman
call mod_perl_pass_env() during perl_startup() so PerlScript and
<Perl> sections can see PerlPassEnv variables
mkdir t/logs so we can run tests with ApacheSSL
Makefile.PL will add -I$(SSL_BASE)/include to EXTRA_CFLAGS for ApacheSSL
fix core dump with 1.3b3-dev
=item 1.05_01 - 11/15/97
If Apache::SIG is set, don't install the default $SIG{PIPE}="IGNORE"
added PerlPassEnv directive suggested by Joel Wagner
stop core dump in Apache::exit spotted by Joel Wagner if called as a
function, too early (before PerlHandler) without having called
Apache->request($r)
fixed bug spotted by Roland Friedwagne where CGI.pm-2.37bx's header()
method (Apache->send_cgi_header underneath) would not work unless
PerlSendHeader was On (added new tests to internal/headers.t to make
sure from now on!)
applied patches from Peter Tillemans so we can run the test suite
under win32
applied win32 patches from Peter Tillemans so perl_handler() is mutex
locked and to cut out Makefile.PL attempt to symlink the eg directory
Apache::test will define the bootstrap method for Apache and
Apache::Constants to quiet 'make test' noize spotted by Andreas
=item 1.05 - 11/06/97
no longer include $r->server->server_name as part of the
Apache::Registry uri->package name translation by default. if you
*really* need this to happen set this in PerlScript:
$Apache::Registry::NameWithVirtualHost = 1;
and, please tell me why you need it, we'll figure out a better way
yanked DeleteINC thingy from StatINC
applied patch from Randal Schwartz so StatINC doesn't loop when it has
to reload itself
disable CV cache of stacked handlers for now, they stick around too
long, e.g. Apache::StatINC won't work, thanks to Randal Schwartz for
spotting this
applied patch from Ben Reser so $r->send_fd returns the length (as it
should have been doing)
added current_callback() method handy for PerlDispatchHandler's
added suggestion from Andreas for a PerlDispatchHandler hook
re-worked code in perl_load_startup_script() that was causing IRIX 6.x
to choke when saving dowarn, thanks to Lasse Petersen for tracking
this down
fixed newline eating bug spotted by Eckard Brauer when headers and
body are sent in the same print() statement
renamed 'core' test directory to 'internal'
remove t/TEST's search for obsolete directories, which caused trouble
on IRIX 6, spotted by Lasse Petersen
for internal redirects (spotted by $r->cgi_header_out), don't
perl_call_halt(), instead, tie STDOUT to the Apache::FakeRequest class
which just soaks up print() output.
suggestion from Salvador Ortiz Garcia, for table methods, if value is
undef, call table_unset underneath, these methods are subprocess_env,
header_in, header_out, err_header_out, notes and dir_config. e.g.:
$r->header_out("Content-length" => undef);
ensure constant subroutine re-definition warnings are surpressed
during restart (when PerlFreshRestart On), spotted by Vivek Khera
added Apache::FakeRequest module
added tests for embperl and eperl
applied patch from Lupe Christoph so Makefile.PL will not throw out
-DSERVER_SUBVERSION if present in apache_x.x.x/src/Configuration
fixed bug in Apache->send_cgi_header that was sending headers twice
with "here" docs, spotted by Leonard Megliola
Apache->server->log_error will return undef if logs are not open yet
as suggested by Mike Fletcher
fixed typo bug in Apache::Status spotted by Brian Tiemann
=item 1.04 - 10/30/97
PerlScript and -Mmod_perl are no longer handed to perl_parse(),
instead perl_parse() gets a -e to set $ENV{MOD_PERL} and
$ENV{GATEWAY_INTERFACE} (and possibly other switches -T, -w)
PerlScript is pulled in via 'do $PerlScript';
applied patch from Ron Hawkins to fix bug in perl_setup_env() when
running with Stronghold in secure mode
added Apache::PerlSections module, currently with one method: dump()
for use in <Perl> sections, PerlScript and PerlModules, can now say
'my $s = Apache->server' during server startup, which returns a
server_rec* blessed into the Apache::Server class just as $r->server
does during request time.
Apache::Server class can now warn() and log_error()
avoid using LWP::Simple so we don't get caught up on HTTP_PROXY which
was cause 'make test' to fail several tests for some people.
thanks to Philippe Froidevaux, Tom Hughes and Frank Cringle
added some 3rd-party tests for Apache::Stage and Apache::Sandwich
added Apache::test module
back out support for internal redirects, caused big problems with
sfio-enabled Perl spotted by Lupe Christoph and Salvador Ortiz Garcia
(can still try by setting $Apache::DoInternalRedirect=1 #ifndef USE_SFIO)
added Apache::SIG module for testing
Apache::exit will not rflush if r->connection->aborted
updated Vivek's mod_perl_tuning.pod
now that 1.3b3-dev config gears are not tied so tight to a FILE*,
<Perl> sections may define $PerlConfig and/or @PerlConfig, who's
string values are fed to the apache config
some mod_perl.pm fixes
Apache::Status "Loaded Modules" item enhancements:
-now shows file location
-can click on module package for dump of it's symbol table
-pretty table format
don't add -I. to perl_startup() which may cause confusion spotted by
Mike Fletcher
make _sure_ perl_per_request_init() is called for sub-requests so
everything works properly, e.g. Action or a mod_include'd #perl
thanks to Peter Levart and Scott Holdren for spotting this
=item 1.03 - 10/23/97
configure/build/INSTALL enhancements with much help from Bowen Dwelle:
- to use an apache Configuration file that mod_perl will not edit:
perl Makefile.PL CONFIG=Configuration.custom
- perl Makefile.PL DYNAMIC=1 ALL_HOOKS=1 ...
Configure mod_perl with ../apache_1.2.4/src ? [y]
Shall I build httpd in ../apache_1.2.4/src for you? [y] n
now, $APACHE_SRC/modules/perl/Makefile will be enabled with those hooks
- to aid EXTRA_CFLAGS when building by hand or using a custom
Configuration file: `perl -Mmod_perl -e subversion` prints:
SERVER_SUBVERSION=\"mod_perl/$mod_perl::VERSION\"
- fixed up INSTALL quite a bit
added $r->post_connection alias for $r->cleanup_handler
if 1.3b2+, drop log_error(), use new aplog_error() instead (everywhere)
if Tie::IxHash can't be loaded for <Perl> sections, don't complain
applied patch from Rob so mod_perl.pm is in the tar_Apache target
removed Apache->request depreciation warning
added redirect.t test to test remote redirect and internal redirects
fixed internal re-direction handling of Location: /local/file.html
removed several eg/ scripts that were "ports" of CGI.pm-x.xx/examples
now that CGI.pm runs solid under mod_perl and mod_perl requires
5.004+, there's no need for $r->print and CGI::Switch, so those
examples don't need "porting"
force 'PerlSendHeader On' for sub-requests, e.g. Apache::Sandwich
so headers don't show up in the browser
fixed PerlSendHeader bug with virtual includes spotted by Scott Holdren
make lib/mod_perl.pm -> mod_perl.pm symlink (for 'make test') relative,
suggested by Bowen Dwelle
applied patch from Andreas to add a new $r->subprocess_env method
fixed Apache::StatINC brokeness spotted by Bowen Dwelle and applied a
StatINC doc patch from him too
fixed bug with PERL_TRACE=1 spotted by Jimmy Oh
restarting httpd ala kill -HUP will now reload all modules and flush
the Apache::Registry cache
(must set 'PerlFreshRestart On' in httpd.conf for this to work)
=item 1.02 - 10/17/97
have Makefile.PL edit t/net/perl/cgi.pl's #! line to fix perl location
thanks to Frank Cringle for spotting this
=item 1.01 - 10/16/97
removed undocumented auto-import of qw(OK DECLINED) use to short-cut
Perl*Handlers and/or apache C handlers, use Apache::OK and
Apache::DECLINED instead
start perl interpreter with -Mmod_perl so _every_ module no matter
where it's loaded from will see $ENV{GATEWAY_INTERFACE} and $ENV{MOD_PERL}
Thanks to Mark Dedlow for illustrating this need with Apache::DBI and friends.
<Perl> section %Hash values of hash refs now go through
perl_handle_command_hv(), so `Location' can be inside %VirtualHost,
etc. Thanks to Ask Hansen for spotting this.
<Perl> section %Hash values of array refs now go though
perl_handle_command_av(), so proper action is used on TAKE1, etc.
if Tie::IxHash is available, tie <Perl> section %Hashes to it, so the
apache config routines get info in the order it needs to. Thanks to
Rob Hartill and Dean Gaudet for explaining this need for 1.3bx's
new virtual host features
include the mod_perl logo image (mod_perl.gif)
ensure _all_ stacked handlers registered with $r->push_handlers() are
cleared after each request to fix bug spotted by Peter Lister
test suite will now delete $ENV{HTTP_PROXY} before running,
thanks to Frank Cringle
Apache::Registry args changes:
-$_[0] is the blessed Apache request_rec
-$_[1..-1] are args from Apache::Include::handler or elsewhere
as suggested by Andreas
added tests for Apache::Include
applied Apache::Registry optimization patch from Andreas
Apache/Apache::Constants no longer ISA Exporter,
just alias *import = \&Exporter::import
test suite re-org
write a mod_perl.pm so we can require a mod_perl min version
and hooks/features ala
use mod_perl 1.01;
use mod_perl 1.01, qw(Authen Authz);
new Apache::RegistryLoader to pre-load Apache::Registry scripts
added Apache::Include->virtual($uri) method
1.3b1 stuff:
-cat apache_x.x.x/src/Makefile.config and src/modules/perl/Makefile
together so we get $(INCLUDES) (for os/unix, etc)
applied patch from Salvador Ortiz Garcia so calling $r->args in an
array context will not produce "Odd number of elements in hash list"
$r->auth_name can now be modified
remove Apache->send_cgi_header's broken internal re-direct handling
spotted by Debby Fu
added Frank Cringle's mod_perl FAQ
added mod_perl_tuning.pod document from Vivek Khera <khera@kciLink.com>
fixed bug spotted by Brian Millett so stacked handlers work again with
Apache-SSL
set environment variable `MOD_PERL' so scripts can say:
if(exists $ENV{MOD_PERL}) { ...
added suggestion from Rob Hartill:
'PerlSetVar MaxModPerlRequestsPerChild 10' behaves like
MaxRequestsPerChild, but counts mod_perl requests only. 1.3b1-dev+ is
needed for this
=item 1.00_03 - 09/21/97
save %SIG before perl_handler (Apache::Registry) is run, restore
afterwards as suggested by Randal Schwartz
fixed virtual host/Apache::Registry bug introduced in _02,
spotted by Ryan A. Whelan
a few win32 fixes:
- skip uid,gid,etc., in perl_init_ids
- fix ApacheModulePerl.dsp for source re-org
if PerlSendHeader is On, the environment variable PERL_SEND_HEADER is
set to `On'
=item 1.00_02 - 09/15/97
1.3b1 stuff:
- $r->warn and $r->log_error go through new aplog_error() function.
If `LogLevel' is not set to `warn' or higher, $r->warn messages are
ignored (not sent to error_log).
(i.e. $r->warn == APLOG_WARNING, $r->log_error == APLOG_ERR)
- always enable child_init/child_exit
+ use child_init for perl_init_ids()
+ use child_exit to:
-run END blocks suspended at server startup
-run perl_destruct(), now global objects will be DESTROYed
- make sure mod_include can find modules/perl/mod_perl.h if PERL_SSI=1
- fix INCDIR in src/modules/perl/Makefile
- rename libmodperl -> libperl for new Configure changes
- added PerlPostReadRequestHandler hook for new api phase
- make Makefile.PL deal with source re-org
- is_matchexp -> is_fnmatch (perl_config.c)
- #undef die to resolve conflict spotted by Rob Hartill
applied Apache->read patch from Evert-Jan Couperus to use lvalue
substr() instead of .=
Apache->seqno will no longer dig into scoreboard info for rec.my_access_count
the seqno method was originally introduced for CGI.pm, which now uses
$r->register_cleanup instead. It was never documented in Apache.pm,
does anyone actually use Apache->seqno?
perl_section() will call perl_startup() if Perl's not running already,
as suggested by Rob Hartill
included t/conf/httpd.conf.pl for testing <Perl>, which can replace
t/conf/httpd.conf if you've configured with PERL_SECTIONS=1
removed undocumented Apache::Registry->push_cleanup method
various documentation updates
- document END blocks behavior
- added "Additional memory tips" section to mod_perl.pod
- added mod_perl_traps document
- Apache.pm docs patch from Gisle Aas
- cgi_to_mod_perl.pod suggestions from Ben Laurie
- other stuff here-n-there
applied patch from Ulrich Pfeifer so Makefile.PL does not eat args for
MakeMaker, e.g. PREFIX=~
mod_perl now requires Perl version 5.004 or higher
hookup STDERR to error_log first chance we get (first Perl*Handler
that's called)
$r->warn and $r->log_error will now join @_ and log one string instead
of calling log_error foreach @_, suggested by Joel Wagner
PerlScript may now be relative to ServerRoot
remove UNIVERSAL::AUTOLOAD from Apache::Debug (more trouble than help!)
make sent_header variable per-directory instead of global
added $r->bytes_sent method suggested by Maurice Aubrey
along with code from Nathan Torkington to make sure we get it right as
mod_log_common does
added fix to Apache::Include from Randal Schwartz so $r->uri is
properly reset
SetEnv PERL5LIB will now work on a per-directory basis thanks to spot
by Vivek Khera
if PERL_SSI=1 only do `perl -MExtUtils::Embed -e ccopts` once instead
of for every .c file! nudge from Rob.
applied Makefile.PL patch from Rob Hartill to prompt for most recently
modified apache*/src directories first
now suspend all END blocks encountered during server startup and run
them during server shutdown aka child_exit (need 1.3b1+)
now execute END blocks of PerlHandler (Apache::Registry) scripts at
the expected time
make sure CGI.pm version 2.36 or higher is being used
make sure GATEWAY_INTERFACE is not cleared from %ENV so
Apache::DBI/ApacheAuthenDBI work together, thanks to spot by
John Groenveld
some source re-org: split stuff into perl_util.c and perlio.c,
rename config.c -> perl_config.c, various cleanups
the constants.t test is now run under httpd with t/net/constants.pl
Apache::Constants not longer defines subs at startup. we now use a C
AUTOLOAD which creates newSUBs when needed, without eval {} and
without "prototype mismatch" errors. This shrunk my httpd image size
by ~50K
according to Joel Wagner, Solaris's tar did not like the trailing / on
the Apache/ argument to the tar_Apache target in Makefile. gone now.
thanks to help from Vern Hart, Apache::Registry will now include
$r->server->server_name as part of the uri->perl package translation
if $r->server->is_virtual
$0 is now set to $r->filename thanks to spot by Dylan Tynan
added auth.t test to the suite
moved constants/export.t to net/constants.t