Newer
Older
9001
9002
9003
9004
9005
9006
9007
9008
9009
9010
9011
9012
9013
9014
9015
9016
9017
9018
9019
9020
9021
9022
9023
9024
9025
9026
9027
9028
9029
9030
9031
9032
9033
9034
9035
9036
9037
9038
9039
9040
9041
9042
9043
9044
9045
9046
9047
9048
9049
9050
9051
9052
9053
9054
9055
9056
9057
9058
9059
9060
9061
9062
9063
9064
9065
9066
9067
9068
9069
9070
9071
9072
9073
9074
9075
9076
9077
9078
9079
9080
9081
9082
9083
9084
9085
9086
9087
9088
9089
9090
9091
9092
9093
9094
9095
9096
9097
9098
9099
9100
9101
9102
9103
9104
9105
9106
9107
9108
9109
9110
9111
9112
9113
9114
9115
9116
9117
9118
9119
9120
9121
9122
9123
9124
9125
9126
9127
9128
9129
9130
9131
9132
9133
9134
9135
9136
9137
9138
9139
9140
9141
9142
9143
9144
9145
9146
9147
9148
9149
9150
9151
9152
9153
9154
9155
9156
9157
9158
9159
9160
9161
9162
9163
9164
9165
9166
9167
9168
9169
9170
9171
9172
9173
9174
9175
9176
9177
9178
9179
9180
9181
9182
9183
9184
9185
9186
9187
9188
9189
9190
9191
9192
9193
9194
9195
9196
9197
9198
9199
9200
9201
9202
9203
9204
9205
9206
9207
9208
9209
9210
9211
9212
9213
9214
9215
9216
9217
9218
9219
9220
9221
9222
9223
9224
9225
9226
9227
9228
9229
9230
9231
9232
9233
9234
9235
9236
9237
9238
9239
9240
9241
9242
9243
9244
9245
9246
9247
9248
9249
9250
9251
9252
9253
9254
9255
9256
9257
9258
9259
9260
9261
9262
9263
9264
9265
9266
9267
9268
9269
9270
9271
9272
9273
9274
9275
9276
9277
9278
9279
9280
9281
9282
9283
9284
9285
9286
9287
9288
9289
9290
9291
9292
9293
9294
9295
9296
9297
9298
9299
9300
9301
9302
9303
9304
9305
9306
9307
9308
9309
9310
9311
9312
9313
9314
9315
9316
9317
9318
9319
9320
9321
9322
9323
9324
9325
9326
9327
9328
9329
9330
9331
9332
9333
9334
9335
9336
9337
9338
9339
9340
9341
9342
9343
9344
9345
9346
9347
9348
9349
9350
9351
9352
9353
9354
9355
9356
9357
9358
9359
9360
9361
9362
9363
9364
9365
9366
9367
9368
9369
9370
9371
9372
9373
9374
9375
9376
9377
9378
9379
9380
9381
9382
9383
9384
9385
9386
9387
9388
9389
9390
9391
9392
9393
9394
9395
9396
9397
9398
9399
9400
9401
9402
9403
9404
9405
9406
9407
9408
9409
9410
9411
9412
9413
9414
9415
9416
9417
9418
9419
9420
9421
9422
9423
9424
9425
9426
9427
9428
9429
9430
9431
9432
9433
9434
9435
9436
9437
9438
9439
9440
9441
9442
9443
9444
9445
9446
9447
9448
9449
9450
9451
9452
9453
9454
9455
9456
9457
9458
9459
9460
9461
9462
9463
9464
9465
9466
9467
9468
9469
9470
9471
9472
9473
9474
9475
9476
9477
9478
9479
9480
9481
9482
9483
9484
9485
9486
9487
9488
9489
9490
9491
9492
9493
9494
9495
9496
9497
9498
9499
9500
9501
9502
9503
9504
9505
9506
9507
9508
9509
9510
9511
9512
9513
9514
9515
9516
9517
9518
9519
9520
9521
9522
9523
9524
9525
9526
9527
9528
9529
9530
9531
9532
9533
9534
9535
9536
9537
9538
9539
9540
9541
9542
9543
9544
9545
9546
9547
9548
9549
9550
9551
9552
9553
9554
9555
9556
9557
9558
9559
9560
9561
9562
9563
9564
9565
9566
9567
9568
9569
9570
9571
9572
9573
9574
9575
9576
9577
9578
9579
9580
9581
9582
9583
9584
9585
9586
9587
9588
9589
9590
9591
9592
9593
9594
9595
9596
9597
9598
9599
9600
9601
9602
9603
9604
9605
9606
9607
9608
9609
9610
9611
9612
9613
9614
9615
9616
9617
9618
9619
9620
9621
9622
9623
9624
9625
9626
9627
9628
9629
9630
9631
9632
9633
9634
9635
9636
9637
9638
9639
9640
9641
9642
9643
9644
9645
9646
9647
9648
9649
9650
9651
9652
9653
9654
9655
9656
9657
9658
9659
9660
9661
9662
9663
9664
9665
9666
9667
9668
9669
9670
9671
9672
9673
9674
9675
9676
9677
9678
9679
9680
9681
9682
9683
9684
9685
9686
9687
9688
9689
9690
9691
9692
9693
9694
9695
9696
9697
9698
9699
9700
9701
9702
9703
9704
9705
9706
9707
9708
9709
9710
9711
9712
9713
9714
9715
9716
9717
9718
9719
9720
9721
9722
9723
9724
9725
9726
9727
9728
9729
9730
9731
9732
9733
9734
9735
9736
9737
9738
9739
9740
9741
9742
9743
9744
9745
9746
9747
9748
9749
9750
9751
9752
9753
9754
9755
9756
9757
9758
9759
9760
9761
9762
9763
9764
9765
9766
9767
9768
9769
9770
9771
9772
9773
9774
9775
9776
9777
9778
9779
9780
9781
9782
9783
9784
9785
9786
9787
9788
9789
9790
9791
9792
9793
9794
9795
9796
9797
9798
9799
9800
9801
9802
9803
9804
9805
9806
9807
9808
9809
9810
9811
9812
9813
9814
9815
9816
9817
9818
9819
9820
9821
9822
9823
9824
9825
9826
9827
9828
9829
9830
9831
9832
9833
9834
9835
9836
9837
9838
9839
9840
9841
9842
9843
9844
9845
9846
9847
9848
9849
9850
9851
9852
9853
9854
9855
9856
9857
9858
9859
9860
9861
9862
9863
9864
9865
9866
9867
9868
9869
9870
9871
9872
9873
9874
9875
9876
9877
9878
9879
9880
9881
9882
9883
9884
9885
9886
9887
9888
9889
9890
9891
9892
9893
9894
9895
9896
9897
9898
9899
9900
9901
9902
9903
9904
9905
9906
9907
9908
9909
9910
9911
9912
9913
9914
9915
9916
9917
9918
9919
9920
9921
9922
9923
9924
9925
9926
9927
9928
9929
9930
9931
9932
9933
9934
9935
9936
9937
9938
9939
9940
9941
9942
9943
9944
9945
9946
9947
9948
9949
9950
9951
9952
9953
9954
9955
9956
9957
9958
9959
9960
9961
9962
9963
9964
9965
9966
9967
9968
9969
9970
9971
9972
9973
9974
9975
9976
9977
9978
9979
9980
9981
9982
9983
9984
9985
9986
9987
9988
9989
9990
9991
9992
9993
9994
9995
9996
9997
9998
9999
10000
Changes with Apache 1.2b1
*) Not listed. See <http://www.apache.org/docs/new_features_1_2.html>
Changes with Apache 1.1.1
*) Fixed bug where Cookie module would make two entries in the
logfile for each access [Mark Cox]
*) Fixed bug where Redirect in .htaccess files would cause memory
leak. [Nathan Neulinger]
*) MultiViews now works correctly with AddHandler [Alexei Kosut]
*) Problems with mod_auth_msql fixed [Dirk vanGulik]
*) Fix misspelling of "Anonymous_Authorative" directive in mod_auth_anon.
Changes with Apache 1.1.0
*) Bring NeXT support up to date. [Takaaki Matsumoto]
*) Bring QNX support up to date. [Ben Laurie]
*) Make virtual hosts default to main server keepalive parameters.
[Alexei Kosut, Ben Laurie]
*) Allow ScanHTMLTitles to work with lowercase <title> tags. [Alexei Kosut]
*) Fix missing address family for connect, also remove unreachable statement
in mod_proxy. [Ben Laurie]
*) mod_env now turned on by default in Configuration.tmpl.
*) Bugs which were fixed:
a) yet more mod_proxy bugs [Ben Laurie]
b) CGI works again with inetd [Alexei Kosut]
c) Leading colons were stripped from passwords [osm@interguide.com]
d) Another fix to multi-method Limit problem [jk@tools.de]
Changes with Apache 1.1b4
*) r->bytes_sent variable restored. [Robert Thau]
*) Previously broken multi-method <Limit> parsing fixed. [Robert Thau]
*) More possibly unsecure programs removed from the support directory.
*) More mod_auth_msql authentication improvements.
*) VirtualHosts based on Host: headers no longer conflict with the
Listen directive.
*) OS/2 compatibility enhancements. [Gary Smiley]
*) POST now allowed to directory index CGI scripts.
*) Actions now work with files of the default type.
*) Bugs which were fixed:
a) more mod_proxy bugs
b) early termination of inetd requests
c) compile warnings on several systems
d) problems when scripts stop reading output early
Changes with Apache 1.1b3
*) Much of cgi-bin and all of cgi-src has been removed, due to
various security holes found and that we could no longer support
them.
*) The "Set-Cookie" header is now special-cased to not merge multiple
instances, since certain popular browsers can not handle multiple
Set-Cookie instructions in a single header. [Paul Sutton]
*) rprintf() added to buffer code, occurrences of sprintf removed.
[Ben Laurie]
*) CONNECT method for proxy module, which means tunneling SSL should work.
(No crypto needed) Also a NoCache config directive.
*) Several API additions: pstrndup(), table_unset() and get_token()
functions now available to modules.
*) mod_imap fixups, in particular Location: headers are now complete
URL's.
*) New "info" module which reports on installed module set through a
special URL, a la mod_status.
*) "ServerPath" directive added - allows for graceful transition
for Host:-header-based virtual hosts.
*) Anonymous authentication module improvements.
*) MSQL authentication module improvements.
*) Status module design improved - output now table-based. [Ben Laurie]
*) htdigest utility included for use with digest authentication
module.
*) mod_negotiation: Accept values with wildcards to be treated with
less priority than those without wildcards at the same quality
value. [Alexei Kosut]
*) Bugs which were fixed:
a) numerous mod_proxy bugs
b) CGI early-termination bug [Ben Laurie]
c) Keepalives not working with virtual hosts
d) RefererIgnore problems
e) closing fd's twice in mod_include (causing core dumps on
Linux and elsewhere).
Changes with Apache 1.1b2
*) Bugfixes:
a) core dumps in mod_digest
b) truncated hostnames/ip address in the logs
c) relative URL's in mod_imap map files
Changes with Apache 1.1b1
*) Not listed. See <http://www.apache.org/docs/new_features_1_1.html>
Changes with Apache 1.0.3
*) Internal redirects which occur in mod_dir.c now preserve the
query portion of a request (the bit after the question mark).
[Adam Sussman]
*) Escape active characters '<', '>' and '&' in html output in
directory listings, error messages and redirection links.
[David Robinson]
*) Apache will now work with LynxOS 2.3 and later [Steven Watt]
*) Fix for POSIX compliance in waiting for processes in alloc.c.
[Nick Williams]
*) setsockopt no longer takes a const declared argument [Martijn Koster]
*) Reset timeout timer after each successful fwrite() to the network.
This patch adds a reset_timeout() procedure that is called by
send_fd() to reset the timeout ever time data is written to the net.
[Nathan Schrenk]
*) timeout() signal handler now checks for SIGPIPE and reports
lost connections in a more user friendly way. [Rob Hartill]
*) Location of the "scoreboard" file which used to live in /tmp is
now configurable (for OSes that can't use mmap) via ScoreBoardFile
which works similar to PidFile (in httpd.conf) [Rob Hartill]
*) Include sys/resource.h in the correct place for SunOS4 [Sameer Parekh]
*) the pstrcat call in mod_cookies.c didn't have an ending NULL,
which caused a SEGV with cookies enabled
*) Output warning when MinSpareServers is set to <= 0 and change it to 1
[Rob Hartill]
*) Log the UNIX textual error returned by some system calls, in
particular errors from accept() [David Robinson]
*) Add strerror function to util.c for SunOS4 [Randy Terbush]
Changes with Apache 1.0.2
*) patch to get Apache compiled on UnixWare 2.x, recommended as
a temporary measure, pending rewrite of rfc931.c. [Chuck Murcko]
*) Fix get_basic_auth_pw() to set the auth_type of the request.
[David Robinson]
*) past changes to http_config.c to only use the
setrlimit function on systems defining RLIMIT_NOFILE
broke the feature on SUNOS4. Now defines HAVE_RESOURCE
for SUNOS and prototypes the needed functions.
*) Remove uses of MAX_STRING_LEN/HUGE_STRING_LEN from several routines.
[David Robinson]
*) Fix use of pointer to scratch memory. [Cliff Skolnick]
*) Merge multiple headers from CGI scripts instead of taking last
one. [David Robinson]
*) Add support for SCO 5. [Ben Laurie]
Changes with Apache 1.0.1
*) Silence mod_log_referer and mod_log_agent if not configured
[Randy Terbush]
*) Recursive includes can occur if the client supplies PATH_INFO data
and the server provider uses relative links; as file.html
relative to /doc.shtml/pathinfo is /doc.shtml/file.html. [David Robinson]
*) The replacement for initgroups() did not call {set,end}grent(). This
had two implications: if anything else used getgrent(), then
initgroups() would fail, and it was consuming a file descriptor.
[Ben Laurie]
*) On heavily loaded servers it was possible for the scoreboard to get
out of sync with reality, as a result of a race condition.
The observed symptoms are far more Apaches running than should
be, and heavy system loads, generally followed by catastrophic
system failure. [Ben Laurie]
*) Fix typo in license. [David Robinson]
Changes with Apache 1.0.0 23 Nov 1995
*) Not listed. See <http://www.apache.org/docs/new_features_1_0.html>
Changes with Apache 0.8.16 05 Nov 1995
*) New man page for 'httpd' added to support directory [David Robinson]
*) .htgroup files can have more than one line giving members for a
given group (each must have the group name in front), for NCSA
back-compatibility [Robert Thau]
*) Mutual exclusion around accept() is on by default for SVR4 systems
generally, since they generally can't handle multiple processes in
accept() on the same socket. This should cure flaky behavior on
a lot of those systems. [David Robinson]
*) AddType, AddEncoding, and AddLanguage directives take multiple
extensions on a single command line [David Robinson]
*) UserDir can be disabled for a given virtual host by saying
"UserDir disabled" in the <VirtualHost> section --- it was a bug
that this didn't work. [David Robinson]
*) Compiles on QNX [Ben Laurie]
*) Corrected parsing of ctime time format [David Robinson]
*) httpd does a perror() before exiting if it can't log its pid
to the PidFile, to make diagnosing the error a bit easier.
[David Robinson]
*) <!--#include file="..."--> can no longer include files in the
parent directory, for NCSA back-compatibility. [David Robinson]
*) '~' is *not* escaped in URIs generated for directory listings
[Roy Fielding]
*) Eliminated compiler warning in the imagemap module [Randy Terbush]
*) Fixed bug involving handling URIs with escaped %-characters
in redirects [David Robinson]
Changes with Apache 0.8.15 14 Oct 1995
*) Switched to new, simpler license
*) Eliminated core dumps with improperly formatted DBM group files [Mark Cox]
*) Don't allow requests for ordinary files to have PATH_INFO [Ben Laurie]
*) Reject paths containing %-escaped '%' or null characters [David Robinson]
*) Correctly handles internal redirects to files with names containing '%'
[David Robinson]
*) Repunctuated some error messages [Aram Mirzadeh, Andrew Wilson]
*) Use geteuid() rather than getuid() to see if we have root privilege,
so that server correctly resets privilege if run setuid root. [Andrew
Wilson]
*) Handle ftp: and telnet: URLs correctly in imagemaps (built-in module)
[Randy Terbush]
*) Fix relative URLs in imagemap files [Randy Terbush]
*) Somewhat better fix for the old "Alias /foo/ /bar/" business
[David Robinson]
*) Don't repeatedly open the ErrorLog if a bunch of <VirtualHost>
entries all name the same one. [David Robinson]
*) Fix directory listings with filenames containing unusual characters
[David Robinson]
*) Better URI-escaping for generated URIs in directories with filenames
containing unusual characters [Ben Laurie]
*) Fixed potential FILE* leak in http_main.c [Ben Laurie]
*) Unblock alarms on error return from spawn_child() [David Robinson]
*) Sample Config files have extra note for SCO users [Ben Laurie]
*) Configuration has note for HP-UX users [Rob Hartill]
*) Eliminated some bogus Linux-only #defines in conf.h [Aram Mirzadeh]
*) Nuked bogus #define in httpd.h [David Robinson]
*) Better test for whether a system has setrlimit() [David Robinson]
*) Calls update_child_status() after reopen_scoreboard() [David Robinson]
*) Doesn't send itself SIGHUP on startup when run in the -X debug-only mode
[Ben Laurie]
Changes with Apache 0.8.14 19 Sep 1995
*) Compiles on SCO ODT 3.0 [Ben Laurie]
*) AddDescription works (better) [Ben Laurie]
*) Leaves an intelligible error diagnostic when it can't set group
privileges on standalone startup [Andrew Wilson]
*) Compiles on NeXT again --- the 0.8.13 RLIMIT patch was failing on
that machine, which claims to be BSD but does not support RLIMIT.
[Randy Terbush]
*) gcc -Wall no longer complains about an unused variable when util.c
is compiled with -DMINIMAL_DNS [Andrew Wilson]
*) Nuked another compiler warning for -Wall on Linux [Aram Mirzadeh]
Changes with Apache 0.8.13 07 Sep 1995
*) Make IndexIgnore *work* (ooops) [Jarkko Torppa]
*) Have built-in imagemap code recognize & honor Point directive [James
Cloos]
*) Generate cleaner directory listings in directories with a mix of
long and short filenames [Rob Hartill]
*) Properly initialize dynamically loaded modules [Royston Shufflebotham]
*) Properly default ServerName for virtual servers [Robert Thau]
*) Rationalize handling of BSD in conf.h and elsewhere [Randy Terbush,
Paul Richards and a cast of thousands...]
*) On self-identified BSD systems (we don't try to guess any more),
allocate a few extra file descriptors per virtual host with setrlimit,
if we can, to avoid running out. [Randy Terbush]
*) Write 22-character lock file name into buffer with enough space
on startup [Konstantin Olchanski]
*) Use archaic setpgrp() interface on NeXT, which requires it [Brian
Pinkerton]
*) Suppress -Wall warning by casting const away in util.c [Aram Mirzadeh]
*) Suppress -Wall warning by initializing variable in negotiation code
[Tobias Weingartner]
Changes with Apache 0.8.12 31 Aug 1995
*) Doesn't pause three seconds after including a CGI script which is
too slow to die off (this is done by not even trying to kill off
subprocesses, including the SIGTERM/pause/SIGKILL routine, until
after the entire document has been processed). [Robert Thau]
*) Doesn't do SSI if Options Includes is off. (Ooops). [David Robinson]
*) Options IncludesNoExec allows inclusion of at least text/* [Roy Fielding]
*) Allows .htaccess files to override <Directory> sections naming the
same directory [David Robinson]
*) Removed an efficiency hack in sub_req_lookup_uri which was
causing certain extremely marginal cases (e.g., ScriptAlias of a
*particular* index.html file) to fail. [David Robinson]
*) Doesn't log an error when the requested URI requires
authentication, but no auth header line was supplied by the
client; this is a normal condition (the client doesn't no auth is
needed here yet). [Robert Thau]
*) Behaves more sanely when the name server loses its mind [Sean Welch]
*) RFC931 code compiles cleanly on old BSDI releases [Randy Terbush]
*) RFC931 code no longer passes out name of prior clients on current
requests if the current request came from a server that doesn't
do RFC931. [David Robinson]
*) Configuration script accepts "Module" lines with trailing whitespace.
[Robert Thau]
*) Cleaned up compiler warning from mod_access.c [Robert Thau]
*) Cleaned up comments in mod_cgi.c [Robert Thau]
Changes with Apache 0.8.11 24 Aug 1995
*) Wildcard <Directory> specifications work. [Robert Thau]
*) Doesn't loop for buggy CGI on Solaris [Cliff Skolnick]
*) Symlink checks (FollowSymLinks off, or SymLinkIfOwnerMatch) always check
the file being requested itself, in addition to the directories leading
up to it. [Robert Thau]
*) Logs access failures due to symlink checks or invalid client address
in the error log [Roy Fielding, Robert Thau]
*) Symlink checks deal correctly with systems where lstat of
"/path/to/some/link/" follows the link. [Thau, Fielding]
*) Doesn't reset DirectoryIndex to 'index.html' when
other directory options are set in a .htaccess file. [Robert Thau]
*) Clarified init code and nuked bogus warning in mod_access.c
[Florent Guillaume]
*) Corrected several directives in sample srm.conf
--- includes corrections to directory indexing icon-related directives
(using unknown.gif rather than unknown.xbm as the DefaultIcon, doing
icons for encodings right, and turning on AddEncoding by default).
[Roy Fielding]
*) Corrected descriptions of args to AddIcon and AddAlt in command table
[James Cloos]
*) INSTALL & README mention "contributed modules" directory [Brian
Behlendorf]
*) Fixed English in the license language... "for for" --> "for".
[Roy Fielding]
*) Fixed ScriptAlias/Alias interaction by moving ScriptAlias handling to
mod_alias.c, merging it almost completely with handling of Alias, and
adding a 'notes' field to the request_rec which allows the CGI module
to discover whether the Alias module has put this request through
ScriptAlias (which it needs to know for back-compatibility, as the old
NCSA code did not check Options ExecCGI in ScriptAlias directories).
[Robert Thau]
Changes with Apache 0.8.10 18 Aug 1995
*) AllowOverride applies to the named directory, and not just
subdirectories. [David Robinson]
*) Do locking for accept() exclusion (on systems that need it)
using a special file created for the purpose in /usr/tmp, and
not the error log; using the error log causes real problems
if it's NFS-mounted; this is known to be the cause of a whole
lot of "server hang" problems with Solaris. [David Robinson;
thanks to Merten Schumann for help diagnosing the problem].
Changes with Apache 0.8.9 12 Aug 1995
*) Compiles with -DMAXIMUM_DNS ---- ooops! [Henrik Mortensen]
*) Nested includes see environment variables of the including document,
for NCSA bug-compatibility (some sites have standard footer includes
which try to print out the last-modified date). [Eric Hagberg/Robert
Thau]
*) <!--exec cgi="/some/uri/here"--> always treats the item named by the
URI as a CGI script, even if it would have been treated as something
else if requested directly, for NCSA back-compatibility. (Note that
this means that people who know the name of the script can see the
code just by asking for it). [Robert Thau]
*) New version of dbmmanage script included in support directory as
dbmmanage.new.
*) Check if scoreboard file couldn't be opened, and say so, rather
then going insane [David Robinson]
*) POST to CGI works on A/UX [Jim Jagielski]
*) AddIcon and AddAlt commands work properly [Rob Hartill]
*) NCSA server push works properly --- the Arena bug compatibility
workaround, which broke it, is gone (use -DARENA_BUG_WORKAROUND
if you still want the workaround). [Rob Hartill]
*) If client didn't submit any Accept-encodings, ignore encodings in
content negotiation. (NB this will all have to be reworked anyway
for the new HTTP draft). [Florent Guillaume]
*) Don't dump core when trying to log timed-out requests [Jim Jagielski]
*) Really honor CacheNegotiatedDocs [Florent Guillaume]
*) Give Redirect priority over Alias, for NCSA bug compatibility
[David Robinson]
*) Correctly set PATH_TRANSLATED in all cases from <!--#exec cmd=""-->,
paralleling earlier bug fix for CGI [David Robinson]
*) If DBM auth is improperly configured, report a server error and don't
dump core.
*) Deleted FCNTL_SERIALIZED_ACCEPTS from conf.h entry for A/UX;
it seems to work well enough without it (even in a 10 hits/sec
workout), and the overhead for the locking under A/UX is
alarmingly high (though it is very low on other systems).
[Eric Hagberg, Jim Jagielski]
*) Fixed portability problems with mod_cookies.c [Cliff Skolnick]
*) Further de-Berklize mod_cookies.c; change the bogus #include. [Brian
Behlendorf/Eric Hagberg]
*) More improvements to default Configuration for A/UX [Jim Jagielski]
*) Compiles clean on NEXT [Rob Hartill]
*) Compiles clean on SGI [Robert Thau]
Changes with Apache 0.8.8 08 Aug 1995
*) SunOS library prototypes now never included unless explicitly
requested in the configuration (via -DSUNOS_LIB_PROTOTYPES);
people using GNU libc on SunOS are screwed by prototypes for the
standard library.
(Those who wish to compile clean with gcc -Wall on a standard
SunOS setup need the prototypes, and may obtain them using
-DSUNOS_LIB_PROTOTYPES. Those wishing to use -Wall on a system
with nonstandard libraries are presumably competent to make their
own arrangements).
*) Strips trailing '/' characters off both args to the Alias command,
to make 'Alias /foo/ /bar/' work.
Changes with Apache 0.8.7 03 Aug 1995
*) Don't hang when restarting with a child from 'TransferLog "|..."' running
[reported by David Robinson]
*) Compiles clean on OSF/1 [David Robinson]
*) Added some of the more recent significant changes (AddLanguage stuff,
experimental LogFormat support) to CHANGES file in distribution root
directory
Changes with Apache 0.8.6 02 Aug 1995
*) Deleted Netscape reload workaround --- it's in violation of HTTP specs.
(If you actually wanted a conditional GET which bypassed the cache, you
couldn't get it). [Reported by Roy Fielding]
*) Properly terminate headers on '304 Not Modified' replies to conditional
GETs --- no browser we can find cares much, but the CERN proxy chokes.
[Reported by Cliff Skolnick; fix discovered independently by Rob Hartill]
*) httpd -v doesn't call itself "Shambhala". [Reported by Chuck Murcko]
*) SunOS lib-function prototypes in conf.h conditionalized on __GNUC__,
not __SUNPRO_C (they're needed to quiet gcc -Wall, but acc chokes on 'em,
and older versions don't set the __SUNPRO_C preprocessor variable). On
all other systems, these are never used anyway. [Reported by Mark Cox].
*) Scoreboard file (/tmp/htstatus.*) no longer publically writable.
Changes with Apache 0.8.5 01 Aug 1995
*) Added last-minute configurable log experiment, as optional module
*) Correctly set r->bytes_sent for HTTP/0.9 requests, so they get logged
properly. (One-line fix to http_protocol.c).
*) Work around bogus behavior when reloading from Netscape.
It's Netscape's bug --- for some reason they expect a request with
If-modified-since: to not function as a conditional GET if it also
comes with Pragma: no-cache, which is way out of line with the HTTP
spec (according to Roy Fielding, the redactor).
*) Added parameter to set maximum number of server processes.
*) Added patches to make it work on A/UX. A/UX is *weird*. [Eric Hagberg,
Jim Jagielski]
*) IdentityCheck bugfix [Chuck Murcko].
*) Corrected cgi-src/Makefile entry for new imagemap script. [Alexei Kosut]
*) More sample config file corrections; add extension to AddType for
*.asis, move AddType generic description to its proper place, and
fix miscellaneous typos. [ Alexei Kosut ]
*) Deleted the *other* reference to the regents from the Berkeley
legal disclaimer (everyplace).
*) Nuked Shambhala name from src/README; had already cleaned it out
of everywhere else.
Changes with Apache 0.8.4
*) Changes to server-pool management parms --- renamed current
StartServers to MinSpareServers, created separate StartServers
parameter which means what it says, and renamed MaxServers to
MaxSpareServers (though the old name still works, for NCSA 1.4
back-compatibility). The old names were generally regarded as
too confusing. Also altered "docs" in sample config files.
*) More improvements to default config files ---
sample directives (commented out) for XBitHack, BindAddress,
CacheNegotiatedDocs, VirtualHost; decent set of AddLanguage
defaults, AddTypes for send-as-is and imagemap magic types, and
improvements to samples for DirectoryIndex [Alexei Kosut]
*) Yet more improvements to default config files --- changes to
Alexei's sample AddLanguage directives, and sample LanguagePriority
[ Florent Guillaume ]
*) Set config file locations properly if not set in httpd.conf
[ David Robinson ]
*) Don't escape URIs in internal redirects multiple times; don't
do that when translating PATH_INFO to PATH_TRANSLATED either.
[ David Robinson ]
*) Corrected spelling of "Required" in 401 error reports [Andrew Wilson]
Changes with Apache 0.8.3
*) Edited distribution README to *briefly* summarize installation
procedures, and give a pointer to the INSTALL file in the src/
directory.
*) Upgraded imagemap script in cgi-bin to 1.8 version from more
recent NCSA distributions.
*) Bug fix to previous bug fix --- if .htaccess file and <Directory>
exist for the same directory, use both and don't segfault. [Reported
by David Robinson]
*) Proper makefile dependencies [David Robinson]
*) Note (re)starts in error log --- reported by Rob Hartill.
*) Only call no2slash() after get_path_info() has been done, to
preserve multiple slashes in the PATH_INFO [NCSA compatibility,
reported by Andrew Wilson, though this one is probably a real bug]
*) Fixed mod_imap.c --- relative paths with base_uri referer don't
dump core when Referer is not supplied. [Randy Terbush]
*) Lightly edited sample config files to refer people to our documentation
instead of NCSA's, and to list Rob McCool as *original* author (also
deleted his old, and no doubt non-functional email address). Would be
nice to have examples of new features...
Changes with Apache 0.8.2 19 Jul 1995
*) Added AddLanuage code [Florent Guillaume]
*) Don't say "access forbidden" when a CGI script is not found. [Mark Cox]
*) All sorts of problems when MultiViews finds a directory. It would
be nice if mod_dir.c was robust enough to handle that, but for now,
just punt. [reported by Brian Behlendorf]
*) Wait for all children on restart, to make sure that the old socket
is gone and we can reopen it. [reported by Randy Terbush]
*) Imagemap module is enabled in default Configuration
*) RefererLog and UserAgentLog modules properly default the logfile
[Randy Terbush]
*) Mark Cox's mod_cookies added to the distribution as an optional
module (commented out in the default Configuration, and noted as
an experiment, along with mod_dld). [Mark Cox]
*) Compiles on ULTRIX (a continuing battle...). [Robert Thau]
*) Fixed nasty bug in SIGTERM handling [reported by Randy Terbush]
*) Changed "Shambhala" to "Apache" in API docs. [Robert Thau]
*) Added new, toothier legal disclaimer. [Robert Thau; copied from BSD
license]
Changes with Apache 0.8.1
*) New imagemap module [Randy Terbush]
*) Replacement referer log module with NCSA-compatible RefererIgnore
[Matthew Gray again]
*) Don't mung directory listings with very long filenames.
[Florent Guillaume]
Changes with Apache 0.8.0 (nee Shambhala 0.6.2) 16 Jul 1995
*) New config script. See INSTALL for info. [Robert Thau]
*) Scoreboard mechanism for regulating the number of extant server
processes. MaxServers and StartServers defaults are the same as
for NCSA, but the meanings are slightly different. (Actually,
I should probably lower the MaxServers default to 10).
Before asking for a new connection, each server process checks
the number of other servers which are also waiting for a
connection. If there are more than MaxServers, it quietly dies
off. Conversely, every second, the root, or caretaker, process
looks to see how many servers are waiting for a new connection;
if there are fewer than StartServers, it starts a new one. This
does not depend on the number of server processes already extant.
The accounting is arranged through a "scoreboard" file, named
/tmp/htstatus.*, on which each process has an independent file
descriptor (they need to seek without interference).
The end effect is that MaxServers is the maximum number of
servers on an *inactive* server machine, but more will be forked
off to handle unusually heavy loads (or unusually slow clients);
these will die off when they are no longer needed --- without
reverting to the overhead of full forking operation. There is a
hard maximum of 150 server processes compiled in, largely to
avoid forking out of control and dragging the machine down.
(This is arguably too high).
In my server endurance tests, this mechanism did not appear to
impose any significant overhead, even after I forced it to put the
scoreboard file on a normal filesystem (which might have more
overhead than tmpfs). [Robert Thau]
*) Set HTTP_FOO variables for SSI <!--#exec cmd-->s, not just CGI scripts.
[Cliff Skolnick]
*) Read .htaccess files even in directory with <Directory> section.
(Former incompatibility noted on mailing list, now fixed). [Robert
Thau]
*) "HEAD /" gives the client a "Bad Request" error message, rather
than trying to send no body *and* no headers. [Cliff Skolnick].
*) Don't produce double error reports for some very obscure cases
mainly involving auth configuration (the "all modules decline to
handle" case which is a sure sign of a server bug in most cases,
but also happens when authentication is badly misconfigured).
[Robert Thau]
*) Moved FCNTL_SERIALIZED_ACCEPT defines into conf.h (that's what
it's *for*, and this sort of thing really shouldn't be cluttering
up the Makefile). [Robert Thau]
*) Incidental code cleanups in http_main.c --- stop dragging
sa_client around; just declare it where used. [Robert Thau]
*) Another acc-related fix. (It doesn't like const char
in some places...). [Mark Cox]
Changes with Shambhala 0.6.1 13 Jul 1995
*) Fixed auth_name-related typos in http_core.c [Brian Behlendorf]
Also, fixed auth typo in http_protocol.c unmasked by this fix.
*) Compiles clean with acc on SunOS [Paul Sutton]
*) Reordered modules in modules.c so that Redirect takes priority
over ScriptAlias, for NCSA bug-compatibility [Rob Hartill] ---
believe it or not, he has an actual site with a ScriptAlias and
a Redirect declared for the *exact same directory*. Even *my*
compatibility fetish wouldn't motivate me to fix this if the fix
required any effort, but it doesn't, so what the hey.
*) Fixed to properly default several server_rec fields for virtual
servers from the corresponding fields in the main server_rec.
[Cliff Skolnick --- 'port' was a particular irritant].
*) No longer kills off nph- child processes before they are
finished sending output. [Matthew Gray]
Changes with Shambhala 0.6.0 10 Jul 1995
*) Two styles of timeout --- hard and soft. soft_timeout()s just put
the connection to the client in an "aborted" state, but otherwise
allow whatever handlers are running to clean up. hard_timeout()s
abort the request in progress completely; anything not tied to some
resource pool cleanup will leak. They're still around because I
haven't yet come up with a more elegant way of handling
timeouts when talking to something that isn't the client. The
default_handler and the dir_handler now use soft timeouts, largely
so I can test the feature. [Robert Thau]
*) TransferLog "| my_postprocessor ..." seems to be there. Note that
the case of log handlers dying prematurely is probably handled VERY
gracelessly at this point, and if the logger stops reading input,
the server will hang. (It is known to correctly restart the
logging process on server restart; this is (should be!) going through
the same SIGTERM/pause/SIGKILL routine used to ding an errant CGI
script). [Robert Thau]
*) asis files supported (new module). [Robert Thau]
*) IdentityCheck code is compiled in, but has not been tested. (I
don't know anyone who runs identd). [Robert Thau]
*) PATH_INFO and PATH_TRANSLATED are not set unless some real PATH_INFO
came in with the request, for NCSA bug-compatibility. [Robert Thau]
*) Don't leak the DIR * on HEAD request for a directory. [Robert Thau]
*) Deleted the block_alarms() stuff from dbm_auth; no longer necessary,
as timeouts are not in scope. [Robert Thau]
*) quoted-string args in config files now handled correctly (doesn't drop
the last character). [Robert Thau; reported by Randy Terbush]
*) Fixed silly typo in http_main.c which was suddenly fatal in HP-UX.
How the hell did it ever work? [Robert Thau; reported by Rob Hartill]
*) mod_core.c --- default_type returns DEFAULT_TYPE (the compile-time
default default type); the former default default behavior when all
type-checkers defaulted had been a core dump. [Paul Sutton]
*) Copy filenames out of the struct dirent when indexing
directories. (On Linux, readdir() returns a pointer to the same
memory area every time). Fix is in mod_dir.c. [Paul Sutton]
Changes with Shambhala 0.5.3 [not released]
*) Default response handler notes "file not found" in the error log,
if the file was not found. [Cliff Skolnick].
*) Another Cliff bug --- "GET /~user" now properly redirects (the userdir
code no longer sets up bogus PATH_INFO which fakes out the directory
handler). [Cliff Skolnick]
Changes with Shambhala 0.5.2 06 Jul 1995
*) Changes to http_main.c --- root server no longer plays silly
games with SIGCHLD, and so now detects and replaces dying
children. Child processes just die on SIGTERM, without taking
the whole process group with them. Potential problem --- if any
child process refuses to die, we hang in restart.
MaxRequestsPerChild may still not work, but it certainly works
better than it did before this! [Robert Thau]
*) mod_dir.c bug fixes: ReadmeName and HeaderName
work (or work better, at least); over-long description lines
properly terminated. [Mark Cox]
*) http_request.c now calls unescape_url() more places where it
should [Paul Sutton].
*) More directory handling bugs (reported by Cox)
Parent Directory link is now set correctly. [Robert Thau]
Changes with Shambhala 0.5.1 04 Jul 1995
*) Generalized cleanup interface in alloc.c --- any function can be
registered with alloc.c as a cleanup for a resource pool;
tracking of files and file descriptors has been reimplemented in
terms of this interface, so I can give it some sort of a test.
[Robert Thau]
*) More changes in alloc.c --- new cleanup_for_exec() function,
which tracks down and closes all file descriptors which have been
registered with the alloc.c machinery before the server exec()s a
child process for CGI or <!--#exec-->. CGI children now get
started with exactly three file descriptors open. Hopefully,
this cures the problem Rob H. was having with overly persistent
CGI connections. [Robert Thau]
*) Mutual exclusion around the accept() in child_main() --- this is
required on at least SGI, Solaris and Linux, and is #ifdef'ed in
by default on those systems only (-DFCNTL_SERIALIZED_ACCEPT).
This uses fcntl(F_SETLK,...) on the error log descriptor because
flock() on that descriptor won't work on systems which have BSD
flock() semantics, including (I think) Linux 1.3 and Solaris.
This does work on SunOS (when the server is idle, only one
process in the pool is waiting on accept()); it *ought* to work
on the other systems. [Robert Thau]
*) FreeBSD and BSDI portability tweaks [Chuck Murcko]
*) sizeof(*sa_client) bugfix from [Rob Hartill]
*) pstrdup(..., NULL) returns NULL, [Randy Terbush]
*) block_alarms() to avoid leaking the DBM* in dbm auth (this should
be unnecessary if I go to the revised timeout-handling scheme).
[Robert Thau]
*) For NCSA bug-compatibility, set QUERY_STRING env var (to a null
string) even if none came in with the request. [Robert Thau]
*) CHANGES file added to distribution ;-).
Changes with Shambhala 0.4.5
*) mod_dld --- early dynamic loading support [rst]
*) Add wildcard content handlers for XBITHACK; default_hander now
invoked with that mechanism (as a handler hanging off mod_core) [rst]
*) XBITHACK supported as a wildcard content-handler, and
configurable at run-time (not just at compile time, as in the
"patchy server" releases) [rst]
Changes with Shambhala 0.4.4 30 Jun 1995
*) Fixed basic thinkos in mod_dbm_auth.c [rst, reported by Mark Cox]
*) Handle Addtype x/y .z [rst, reported by Cox]
Changes with Shambhala 0.4.3
*) Fixed very dumb bug in mod_alias; "Alias" and "Redirect" are not
synonymous [rst, terbush]
Changes with Shambhala 0.4.1 28 Jun 1995
*) First-cut virtual host implementation; some refit in the config
reading code, and log management, was necessary to support this [rst]
*) Sub-pool machinery, originally added to avoid excessive storage
allocation on listings of large directories (which turned out to
be the problem that the 0.3 storage accounting was added to
find). Subrequests and mod_dir changed to use subpools. [rst]
*) More memory debugging --- free list consistency checks. [rst]
*) Added err_headers to request_rec, with support elsewhere [rst]
*) Other fixes to minor bugs in mod_dir and mod_includes [rst, terbush]
Changes with Shambhala 0.3 19 Jun 1995
*) Switch ONE_PROCESS to a runtime command-line option (-X)
*) Don't compile in mod_ai_backcompat by default
*) Switch name of server from Apache to Shambhala in Makefile
*) Add some accounting routines to track memory usage in the pools,
for debugging
Changes with Shambhala 0.2
*) Set DOCUMENT_ROOT CGI variable
*) Add single-process debugging, as a compile-time option (ONE_PROCESS)
*) Add critical section protection to handling of cleanup structures
in alloc.c [rst]
*) Significant code reorg within the server core to group related
functions together [rst]
*) Correctly handle clients that hang up before sending any request
[rst]
*) Replace dying child processes. [rst]
Changes with Shambhala 0.1 12 Jun 1995
Major rewrite of the pre-existing "patchy server" codebase, by
Robert Thau (rst). Significant portions of the server code, such
as configuration-file handling and HTTP authentication support,
were ripped out and rewritten from scratch. Code that was not
completely rewritten was significantly altered.
Major changes with this release include:
*) Introduction of the module API; in request handling, the central
machinery just dispatches to various modules, which actually do
most of the work. Configuration handling is similar --- modules
declare their own commands, and the central machinery just
dispatches to them.
API features from shambhala/0.1 were substantially unchanged in
Apache 1.0 and 1.1. (1.0 API features not yet present in this
release, such as wildcard handlers and subpools, were added in
subsequent Shambhala releases, and were also generally rst's
work).
*) This release included the following modules:
mod_access (access control --- allow and deny directives),
mod_alias (Alias and Redirect commands),
mod_auth (straight HTTP authentication, based on flat-files)
mod_auth_dbm (same, with dbm files)
mod_cgi (CGI scripts and, in this release, ScriptAlias)
mod_common_log (CLF access logs; later renamed mod_log_common)
mod_dir (directory indexing)
mod_include (server-side includes)
mod_mime (AddType directives)
mod_negotiation (content negotiation)
mod_userdir (support for users' public_html directories)
It also included a mod_ai_backcompat, which was a private hack
for back-compatibility with rst's own AI-lab servers.
All of these modules were substantially complete, and functional
or nearly so (a few, which implemented features not in use at
Thau's site, required patches of a few lines).
*) sub-request machinery, to allow modules to determine how other
modules would assign MIME types to a given file, or optionally
serve its content (this is heavily used by mod_dir, mod_include
and mod_negotiation).
*) Resource pool system for keeping track of memory allocated and
files opened in service of a particular request. Much of the
code in the modules (when they weren't rewrites) was adjusted to
replace a pervasive convention of using fixed-size buffers on
the stack with an equally pervasive convention of using memory
allocated with palloc().