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
*) Proxy needs to use hard_timeout instead of soft_timeout when it is
reading from one buffer and writing to another, at least until it has
a custom timeout handler. [Roy Fielding and Petr Lampa]
*) Fixed problem on IRIX with servers hanging in IdentityCheck,
apparently due to a mismatch between sigaction and setjmp.
[Roy Fielding] PR#502
*) Log correct status code if we timeout before receiving a request (408)
or if we received a request-line that was too long to process (414).
[Ed Korthof and Roy Fielding] PR#601
*) Virtual hosts with the same ServerName, but on different ports, were
not being selected properly. [Ed Korthof]
*) Added code to return the requested IP address from proxy_host2addr()
if gethostbyaddr() fails due to reverse DNS lookup problems. Original
change submitted by Jozsef Hollosi <hollosi@sbcm.com>.
[Chuck Murcko] PR#614
*) If multiple requests on a single connection are used to retrieve
data from different virtual hosts, the virtual host list would be
scanned starting with the most recently used VH instead of the first,
causing most virtual hosts to be ignored.
[Paul Sutton and Martin Mares] PR#610
*) The OS/2 handling of process group was broken by a porting patch for
MPE, so restored prior code for OS/2. [Roy Fielding and Garey Smiley]
*) Inherit virtual server port from main server if none (or "*") is
given for VirtualHost. [Dean Gaudet] PR#576
*) If the lookup for a DirectoryIndex name with content negotiation
has found matching variants, but none are acceptable, return the
negotiation result if there are no more DirectoryIndex names to lookup.
[Petr Lampa and Roy Fielding]
*) If a soft_timeout occurs after keepalive is set, then the main child
loop would try to read another request even though the connection
has been aborted. [Roy Fielding]
*) Configure changes: Allow for whitespace at the start of a
Module declaration. Also, be more understanding about the
CC=/OPTIM= format in Configuration. Finally, fix compiler
flags if using HP-UX's cc compiler. [Jim Jagielski]
*) Subrequests and internal redirects now inherit the_request from the
original request-line. [Roy Fielding]
*) Test for error conditions before creating output header fields, since
we don't want the error message to include those fields. Likewise,
reset the content_language(s) and content_encoding of the response
before generating or redirecting to an error message, since the new
message will have its own Content-* definitions. [Dean Gaudet]
*) Restored the semantics of headers_out (headers sent only with 200..299
and 304 responses) and err_headers_out (headers sent with all responses).
Avoid the overhead of copying tables if err_headers_out is empty
(the usual case). [Roy Fielding]
*) Fixed a couple places where a check for the default Content-Type was
not properly checking both the value configured by the DefaultType
directive and the DEFAULT_TYPE symbol in httpd.h. Changed the value
of DEFAULT_TYPE to match the documented default (text/plain).
[Dean Gaudet] PR#506
*) Escape the HTML-sensitive characters in the Request-URI that is
output for each child by mod_status. [Dean Gaudet and Ken Coar] PR#501
*) Properly initialize the flock structures used by the mutex locking
around accept() when USE_FCNTL_SERIALIZED_ACCEPT is defined.
[Marc Slemko]
*) The method for determining PATH_INFO has been restored to the pre-1.2b
(and NCSA httpd) definition wherein it was the extra path info beyond
the CGI script filename. The environment variable FILEPATH_INFO has
been removed, and instead we supply the original REQUEST_URI to any
script that wants to be Apache-specific and needs the real URI path.
This solves a problem with existing scripts that use extra path info
in the ScriptAlias directive to pass options to the CGI script.
[Roy Fielding]
*) The _default_ change in 1.2b10 will change the behaviour on configs
that use multiple Listen statements for listening on multiple ports.
But that change is necessary to make _default_ consistent with other
forms of <VirtualHost>. It requires such configs to be modified
to use <VirtualHost _default_:*>. The documentation has been
updated. [Dean Gaudet] PR#530
*) If an ErrorDocument CGI script is used to respond to an error
generated by another CGI script which has already read the message
body of the request, the server would block trying to read the
message body again. [Rob Hartill]
*) signal() replacement conflicted with a define on QNX (and potentially
other platforms). Fixed. [Ben Laurie] PR#512
Changes with Apache 1.2b10
*) Allow HTTPD_ROOT, SERVER_CONFIG_FILE, DEFAULT_PATH, and SHELL_PATH
to be configured via -D in Configuration. [Dean Gaudet] PR#449
*) <VirtualHost _default_:portnum> didn't work properly. [Dean Gaudet]
*) Added prototype for mktemp() for SUNOS4 [Marc Slemko]
*) In mod_proxy.c, check return values for proxy_host2addr() when reading
config, in case the hostent struct returned is trash.
[Chuck Murcko] PR #491
*) Fixed the fix in 1.2b9 for parsing URL query info into args for CGI
scripts. [Dean Gaudet, Roy Fielding, Marc Slemko]
Changes with Apache 1.2b9 [never announced]
*) Reset the MODULE_MAGIC_NUMBER to account for the unsigned port
changes and in anticipation of 1.2 final release. [Roy Fielding]
*) Fix problem with scripts not receiving a SIGPIPE when client drops
the connection (e.g., when user presses Stop). Apache will now stop
trying to send a message body immediately after an error from write.
[Roy Fielding and Nathan Kurz] PR#335
*) Rearrange Configuration.tmpl so that mod_rewrite has higher priority
than mod_alias, and mod_alias has higher priority than mod_proxy;
rearranged other modules to enhance understanding of their purpose
and relative order (and maybe even reduce some overhead).
[Roy Fielding and Sameer Parekh]
*) Fix graceful restart. Eliminate many signal-related race
conditions in both forms of restart, and in SIGTERM. See
htdocs/manual/stopping.html for details on stopping and
restarting the parent. [Dean Gaudet]
*) Fix memory leaks in mod_rewrite, mod_browser, mod_include. Tune
memory allocator to avoid a behaviour that required extra blocks to
be allocated. [Dean Gaudet]
*) Allow suexec to access files relative to current directory but not
above. (Excluding leading / or any .. directory.) [Ken Coar]
PR#269, 319, 395
*) Fix suexec segfault when group doesn't exist. [Gregory Neil Shapiro]
PR#367, 368, 354, 453
*) Fix the above fix: if suexec is enabled, avoid destroying r->url
while obtaining the /~user and save the username in a separate data
area so that it won't be overwritten by the call to getgrgid(), and
fix some misuse of the pool string allocation functions. Also fixes
a general problem with parsing URL query info into args for CGI scripts.
[Roy Fielding] PR#339, 367, 354, 453
*) Fix IRIX warning about bzero undefined. [Marc Slemko]
*) Fix problem with <Directory proxy:...>. [Martin Kraemer] PR#271
*) Corrected spelling of "authoritative". AuthDBAuthoratative became
AuthDBAuthoritative. [Marc Slemko] PR#420
*) MaxClients should be at least 1. [Lars Eilebrecht] PR#375
*) The default handler now logs invalid methods or URIs (i.e. PUT on an
object that can't be PUT, or FOOBAR for some method FOOBAR that
apache doesn't know about at all). Log 404s that occur in mod_include.
[Paul Sutton, John Van Essen]
*) If a soft timeout (or lingerout) occurs while trying to flush a
buffer or write inside buff.c or fread'ing from a CGI's output,
then the timeout would be ignored. [Roy Fielding] PR#373
*) Work around a bug in Netscape Navigator versions 2.x, 3.x and 4.0b2's
parsing of headers. If the terminating empty-line CRLF occurs starting
at the 256th or 257th byte of output, then Navigator will think a normal
image is invalid. We are guessing that this is because their initial
read of a new request uses a 256 byte buffer. We check the bytes written
so far and, if we are about to tickle the bug, we instead insert a
padding header of eminent bogosity. [Roy Fielding and Dean Gaudet] PR#232
*) Fixed SIGSEGV problem when a DirectoryIndex file is also the source
of an external redirection. [Roy Fielding and Paul Sutton]
*) Configure would create a broken Makefile if the configuration file
contained a commented-out Rule. [Roy Fielding]
*) Promote per_dir_config and subprocess_env from the subrequest to the
main request in mod_negotiation. In particular this fixes a bug
where <Files> sections wouldn't properly apply to negotiated content.
[Dean Gaudet]
*) Fix a potential deadlock in mod_cgi script_err handling.
[Ralf S. Engelschall]
*) rotatelogs zero-pads the logfile names to improve alphabetic sorting.
[Mitchell Blank Jr]
*) Updated mod_rewrite to 3.0.4: Fixes HTTP redirects from within
.htaccess files because the RewriteBase was not replaced correctly.
Updated mod_rewrite to 3.0.5: Fixes problem with rewriting inside
<Directory> sections missing a trailing /. [Ralf S. Engelschall]
*) Clean up Linux settings in conf.h by detecting 2.x versus 1.x. For
1.x the settings are those of pre-1.2b8. For 2.x we include
USE_SHMGET_SCOREBOARD (scoreboard in shared memory rather than file) and
HAVE_SYS_RESOURCE_H (enable the RLimit commands).
[Dean Gaudet] PR#336, PR#340
*) Redirect did not preserve ?query_strings when present in the client's
request. [Dean Gaudet]
*) Configure was finding non-modules on EXTRA_LIBS. [Frank Cringle] PR#380
*) Use /bin/sh5 on ULTRIX. [P. Alejandro Lopez-Valencia] PR#369
*) Add UnixWare compile/install instructions. [Chuck Murcko]
*) Add mod_example (illustration of API techniques). [Ken Coar]
*) Add macro for memmove to conf.h for SUNOS4. [Marc Slemko]
*) Improve handling of directories when filenames have spaces in them.
[Chuck Murcko]
*) For hosts with multiple IP addresses, try all additional addresses if
necessary to get a connect. Fail only if hostent address list is
exhausted. [Chuck Murcko]
*) More signed/unsigned port fixes. [Dean Gaudet]
*) HARD_SERVER_LIMIT can be defined in the Configuration file now.
[Dean Gaudet]
Changes with Apache 1.2b8
*) suexec.c doesn't close the log file, allowing CGIs to continue writing
to it. [Marc Slemko]
*) The addition of <Location> and <File> directives made the
sub_req_lookup_simple() function bogus, so we now handle
the special cases directly. [Dean Gaudet]
*) We now try to log where the server is dumping core when a fatal
signal is received. [Ken Coar]
*) Improved lingering_close by adding a special timeout, removing the
spurious log messages, removing the nonblocking settings (they
are not needed with the better timeout), and adding commentary
about the NO_LINGCLOSE and USE_SO_LINGER issues. NO_LINGCLOSE is
now the default for SunOS4, UnixWare, NeXT, and IRIX. [Roy Fielding]
*) Send error messages about setsockopt failures to the server error
log instead of stderr. [Roy Fielding]
*) Fix loopholes in proxy cache expiry vis a vis alarms. [Brian Moore]
*) Stopgap solution for CGI 3-second delay with server-side includes: if
processing a subrequest, allocate memory from r->main->pool instead
of r->pool so that we can avoid waiting for free_proc_chain to cleanup
in the middle of an SSI request. [Dean Gaudet] PR #122
*) Fixed status of response when POST is received for a nonexistent URL
(was sending 405, now 404) and when any method is sent with a
full-URI that doesn't match the server and the server is not acting
as a proxy (was sending 501, now 403). [Roy Fielding]
*) Host port changed to unsigned short. [Ken Coar] PR #276
*) Fix typo in command definition of AuthAuthoritative. [Ken Coar] PR #246
*) Defined USE_SHMGET_SCOREBOARD for shared memory on Linux. [Dean Gaudet]
*) Report extra info from errno with many errors that cause httpd to exit.
spawn_child, popenf, and pclosef now have valid errno returns in the
event of an error. Correct problems where errno was stomped on
before being reported. [Dean Gaudet]
*) In the proxy, if the cache filesystem was full, garbage_coll() was
never called, and thus the filesystem would remain full indefinitely.
We now also remove incomplete cache files left if the origin server
didn't send a Content-Length header and either the client has aborted
transfer or bwrite() to client has failed. [Petr Lampa]
*) Fixed the handling of module and script-added header fields.
Improved the interface for sending header fields and reduced
the duplication of code between sending okay responses and errors.
We now always send both headers_out and err_headers_out, and
ensure that the server-reserved fields are not being overridden,
while not overriding those that are not reserved. [Roy Fielding]
*) Moved transparent content negotiation fields to err_headers_out
to reflect above changes. [Petr Lampa]
*) Fixed the determination of whether or not we should make the
connection persistent for all of the cases where some other part
of the server has already indicated that we should not. Also
improved the ordering of the test so that chunked encoding will
be set whenever it is desired instead of only when KeepAlive
is enabled. Added persistent connection capability for most error
responses (those that do not indicate a bad input stream) when
accessed by an HTTP/1.1 client. [Roy Fielding]
*) Added missing timeouts for sending header fields, error responses,
and the last chunk of chunked encoding, each of which could have
resulted in a process being stuck in write forever. Using soft_timeout
requires that the sender check for an aborted connection rather than
continuing after an EINTR. Timeouts that used to be initiated before
send_http_header (and never killed) are now initiated only within or
around the routines that actually do the sending, and not allowed to
propagate above the caller. [Roy Fielding]
*) mod_auth_anon required an @ or a . in the email address, not both.
[Dirk vanGulik]
*) per_dir_defaults weren't set correctly until directory_walk for
name-based vhosts. This fixes an obscure bug with the wrong config
info being used for vhosts that share the same ip as the server.
[Dean Gaudet]
*) Improved generation of modules/Makefile to be more generic for
new module directories. [Ken Coar, Chuck Murcko, Roy Fielding]
*) Generate makefile dependency for Configuration based on the actual
name given when running the Configure process. [Dean Gaudet]
*) Fixed problem with vhost error log not being set prior to
initializing virtual hosts. [Dean Gaudet]
*) Fixed infinite loop when a trailing slash is included after a type map
file URL (extra path info). [Petr Lampa]
*) Fixed server status updating of per-connection counters. [Roy Fielding]
*) Add documentation for DNS issues (reliability and security), and try
to explain the virtual host matching process. [Dean Gaudet]
*) Try to continue gracefully by disabling the vhost if a DNS lookup
fails while parsing the configuration file. [Dean Gaudet]
*) Improved calls to setsockopt. [Roy Fielding]
*) Negotiation changes: Don't output empty content-type in variant list;
Output charset in variant list; Return sooner from handle_multi() if
no variants found; Add handling of '*' wildcard in Accept-Charset.
[Petr Lampa and Paul Sutton]
*) Fixed overlaying of request/sub-request notes and headers in
mod_negotiation. [Dean Gaudet]
*) If two variants' charset quality are equal and one is the default
charset (iso-8859-1), then prefer the variant that was specifically
listed in Accept-Charset instead of the default. [Petr Lampa]
*) Memory allocation problem in push_array() -- it would corrupt memory
when nalloc==0. [Kai Risku <krisku@tf.hut.fi> and Roy Fielding]
*) invoke_handler() doesn't handle mime arguments in content-type
[Petr Lampa] PR#160
*) Reduced IdentityCheck timeout to 30 seconds, as per RFC 1413 minimum.
[Ken Coar]
*) Fixed problem with ErrorDocument not working for virtual hosts
due to one of the performance changes in 1.2b7. [Dean Gaudet]
*) Log an error message if we get a request header that is too long,
since it may indicate a buffer overflow attack. [Marc Slemko]
*) Made is_url() allow "[-.+a-zA-Z0-9]+:" as a valid scheme and
not reject URLs without a double-slash, as per RFC2068 section 3.2.
[Ken Coar] PR #146, #187
*) Added table entry placeholder for new header_parser callback
in all of the distributed modules. [Ken Coar] PR #191
*) Allow for cgi files without the .EXE extension on them under OS/2.
[Garey Smiley] PR #59
*) Fixed error message when resource is not found and URL contains
path info. [Petr Lampa and Dean Gaudet] PR #40
*) Fixed user and server confusion over what should be a virtual host
and what is the main server, resulting in access to something
other than the name defined in the virtualhost directive (but
with the same IP address) failing. [Dean Gaudet]
*) Updated mod_rewrite to version 3.0.2, which: fixes compile error on
AIX; improves the redirection stuff to enable the users to generally
redirect to http, https, gopher and ftp; added TIME variable for
RewriteCond which expands to YYYYMMDDHHMMSS strings and added the
special patterns >STRING, <STRING and =STRING to RewriteCond, which
can be used in conjunction with %{TIME} or other variables to create
time-dependent rewriting rules. [Ralf S. Engelschall]
*) bpushfd() no longer notes cleanups for the file descriptors it is handed.
Module authors may need to adjust their code for proper cleanup to take
place (that is, call note_cleanups_for_fd()). This change fixes problems
with file descriptors being erroneously closed when the proxy module was
in use. [Ben Laurie]
*) Fix bug in suexec reintroduced by changes in 1.2b7 which allows
initgroups() to hose the group information needed for later
comparisons. [Randy Terbush]
*) Remove unnecessary call to va_end() in create_argv() which
caused a SEGV on some systems.
*) Use proper MAXHOSTNAMELEN symbol for limiting length of server name.
[Dean Gaudet]
*) Clear memory allocated for listeners. [Randy Terbush]
*) Improved handling of IP address as a virtualhost address and
introduced "_default_" as a synonym for the default vhost config.
[Dean Gaudet] PR #212
Changes with Apache 1.2b7
*) Port to UXP/DS(V20) [Toshiaki Nomura <nom@yk.fujitsu.co.jp>]
*) unset Content-Length if chunked (RFC-2068) [Petr Lampa]
*) mod_negotiation fixes [Petr Lampa] PR#157, PR#158, PR#159
- replace protocol response numbers with symbols
- save variant-list into main request notes
- free allocated memory from subrequests
- merge notes, headers_out and err_headers_out
*) changed status check mask in proxy_http.c from "HTTP/#.# ### *" to
"HTTP/#.# ###*" to be more lenient about what we accept.
[Chuck Murcko]
*) more proxy FTP bug fixes:
- Changed send_dir() to remove user/passwd from displayed URL.
- Changed login error messages to be more descriptive.
- remove setting of SO_DEBUG socket option
- Make ftp_getrc() more lenient about multiline responses,
specifically, 230 responses which don't have continuation 230-
on each line). These seem to be all NT FTP servers, and while
perhaps questionable, they appear to be legal by RFC 959.
- Add missing kill_timeout() after transfer to user completes.
[Chuck Murcko]
*) Fixed problem where a busy server could hang when restarting
after being sent a SIGHUP due to child processes not exiting.
[Marc Slemko]
*) Modify mod_include escaping so a '\' only signifies an escaped
character if the next character is one that needs
escaping. [Ben Laurie]
*) Eliminated possible infinite loop in mod_imap when relative URLs are
used with a 'base' directive that does not have a '/' in it.
[Marc Slemko, reported by Onno Witvliet <onno@tc.hsa.nl>]
*) Reduced the default timeout from 1200 seconds to 300, and the
one in the sample configfile from 400 to 300. [Marc Slemko]
*) Stop vbprintf from crashing if given a NULL string pointer;
print (null) instead. [Ken Coar]
*) Don't disable Nagle algorithm if system doesn't have TCP_NODELAY.
[Marc Slemko and Roy Fielding]
*) Fixed problem with mod_cgi-generated internal redirects trying to
read the request message-body twice. [Archie Cobbs and Roy Fielding]
*) Reduced timeout on lingering close, removed possibility of a blocked
read causing the child to hang, and stopped logging of errors if
the socket is not connected (reset by client). [Roy Fielding]
*) Rearranged main child loop to remove duplication of code in
select/accept and keep-alive requests, fixed several bugs regarding
checking scoreboard_image for exit indication and failure to
account for all success conditions and trap all error conditions,
prevented multiple flushes before closing the socket; close the entire
socket buffer instead of just one descriptor, prevent logging of
EPROTO and ECONNABORTED on platforms where supported, and generally
improved readability. [Roy Fielding]
*) Extensive performance improvements. Cleaned up inefficient use of
auto initializers, multiple is_matchexp calls on a static string,
and excessive merging of response_code_strings. [Dean Gaudet]
*) Added double-buffering to mod_include to improve performance on
server-side includes. [Marc Slemko]
*) Several fixes for suexec wrapper. [Randy Terbush]
- Make wrapper work for files on NFS filesystem.
- Fix portability problem of MAXPATHLEN.
- Fix array overrun problem in clean_env().
- Fix allocation of PATH environment variable
*) Removed extraneous blank line is description of mod_status chars.
[Kurt Kohler]
*) Logging of errors from the call_exec routine simply went nowhere,
since the logfile fd has been closed, so now we send them to stderr.
[Harald T. Alvestrand]
*) Fixed core dump when DocumentRoot is a CGI.
[Ben Laurie, reported by geddis@tesserae.com]
*) Fixed potential file descriptor leak in mod_asis; updated it and
http_core to use pfopen/pfclose instead of fopen/fclose.
[Randy Terbush and Roy Fielding]
*) Fixed handling of unsigned ints in ap_snprintf() on some chips such
as the DEC Alpha which is 64-bit but uses 32-bit ints.
[Dean Gaudet and Ken Coar]
*) Return a 302 response code to the client when sending a redirect
due to a missing trailing '/' on a directory instead of a 301; now
it is cacheable. [Markus Gyger]
*) Fix condition where, if a bad directive occurs in .htaccess, and
sub_request() goes first to this directory, then log_reason() will
SIGSEGV because it doesn't have initialized r->per_dir_config.
[PR#162 from Petr Lampa, fix by Marc Slemko and Dean Gaudet]
*) Fix handling of lang_index in is_variant_better(). This was
causing problems which resulted in the server sending the
wrong language document in some cases. [Petr Lampa]
*) Remove free() from clean_env() in suexec wrapper. This was nuking
the clean environment on some systems.
*) Tweak byteserving code (e.g. serving PDF files) to work around
bugs in Netscape Navigator and Microsoft Internet Explorer.
Emit Content-Length header when sending multipart/byteranges.
[Alexei Kosut]
*) Port to HI-UX/WE2. [Nick Maclaren]
*) Port to HP MPE operating system for HP 3000 machines
[Mark Bixby <markb@cccd.edu>]
*) Fixed bug which caused a segmentation fault if only one argument
given to RLimit* directives. [Ed Korthof]
*) Continue persistent connection after 204 or 304 response. [Dean Gaudet]
*) Improved buffered output to the client by delaying the flush decision
until the BUFF code is actually about to read the next request.
This fixes a problem introduced in 1.2b5 with clients that send
an extra CRLF after a POST request. Also improved chunked output
performance by combining writes using writev() and removing as
many bflush() calls as possible. NOTE: Platforms without writev()
must add -DNO_WRITEV to the compiler CFLAGS, either in Configuration
or Configure, unless we have already done so. [Dean Gaudet]
*) Fixed mod_rewrite bug which truncated the rewritten URL [Marc Slemko]
*) Fixed mod_info output corruption bug introduced by buffer overflow
fixes. [Dean Gaudet]
*) Fixed http_protocol to correctly output all HTTP/1.1 headers, including
for the special case of a 304 response. [Paul Sutton]
*) Improved handling of TRACE method by bypassing normal method handling
and header parsing routines; fixed Allow response to always allow TRACE.
[Dean Gaudet]
*) Fixed compiler warnings in the regex library. [Dean Gaudet]
*) Cleaned-up some of the generated HTML. [Ken Coar]
Changes with Apache 1.2b6
*) Allow whitespace in imagemap mapfile coordinates. [Marc Slemko]
*) Fix typo introduced in fix for potential infinite loop around
accept() in child_main(). This change caused the rev to 1.2b6.
1.2b5 was never a public beta.
Changes with Apache 1.2b5
*) Change KeepAlive semantics (On|Off instead of a number), add
MaxKeepAliveRequests directive. [Alexei Kosut]
*) Various NeXT compilation patches, as well as a change in
regex/regcomp.c since that file also used a NEXT define.
[Andreas Koenig]
*) Allow * to terminate the end of a directory match in mod_dir.
Allows /~* to match for both /~joe and /~joe/. [David Bronder]
*) Don't call can_exec() if suexec_enabled. Calling this requires
scripts executed by the suexec wrapper to be world executable, which
defeats one of the advantages of running the wrapper. [Randy Terbush]
*) Portability Fix: IRIX complained with 'make clean' about *pure* (removed)
[Jim Jagielski]
*) Migration from sprintf() to snprintf() to avoid buffer
overflows. [Marc Slemko]
*) Provide portable snprintf() implementation (ap_snprintf)
as well as *cvt family. [Jim Jagielski]
*) Portability Fix: NeXT lacks unistd.h so we wrap it's inclusion
[Jim Jagielski]
*) Remove mod_fastcgi.c from the distribution. This module appears
to be maintained more through the Open Market channels and should
continue to be easily available at http://www.fastcgi.com/
*) Fixed bug in modules/Makefile that wouldn't allow building in more
than one subdirectory (or cleaning, either). [Jeremy Laidman]
*) mod_info assumed that the config files were relative to ServerRoot.
[Ken the Rodent]
*) CGI scripts called as an error document resulting from failed
CGI execution would hang waiting for POST'ed data. [Rob Hartill]
*) Log reason when mod_dir returns access HTTP_FORBIDDEN
[Ken the Rodent]
*) Properly check errno to prevent display of a directory index
when server receives a long enough URL to confuse stat().
[Marc Slemko]
*) Several security enhancements to suexec wrapper. It is _highly_
recommended that previously installed versions of the wrapper
be replaced with this version. [Randy Terbush, Jason Dour]
- ~user execution now properly restricted to ~user's home
directory and below.
- execution restricted to UID/GID > 100
- restrict passed environment to known variables
- call setgid() before initgroups() (portability fix)
- remove use of setenv() (portability fix)
*) Add HTTP/1.0 response forcing. [Ben Laurie]
*) Add access control via environment variables. [Ben Laurie]
*) Add rflush() function. [Alexei Kosut]
*) remove duplicate pcalloc() call in new_connection().
*) Fix incorrect comparison which could allow number of children =
MaxClients + 1 if less than HARD_SERVER_LIMIT. Also fix potential
problem if StartServers > HARD_SERVER_LIMIT. [Ed Korthof]
*) Updated support for OSes (MachTen, ULTRIX, Paragon, ISC, OpenBSD
AIX PS/2, CONVEXOS. [Jim Jagielski]
*) Replace instances of inet_ntoa() with inet_addr() for ProxyBlock.
It's more portable. [Martin Kraemer]
*) Replace references to make in Makefile.tmpl with $(MAKE).
[Chuck Murcko]
*) Add ProxyBlock directive w/IP address caching. Add IP address
caching to NoCache directive as well. ProxyBlock works with all
handlers; NoCache now also works with FTP for anonymous logins.
Still more code cleanup. [Chuck Murcko]
*) Add "header parse" API hook [Ben Laurie]
*) Fix byte ordering problems for REMOTE_PORT [Chuck Murcko]
*) suEXEC wrapper was freeing memory that had not been malloc'ed.
*) Correctly allow access and auth directives in <Files> sections in
server config files. [Alexei Kosut]
*) Fix bug with ServerPath that could cause certain files to be not
found by the server. [Alexei Kosut]
*) Fix handling of ErrorDocument so that it doesn't remove a trailing
double-quote from text and so that it properly checks for unsupported
status codes using the new index_of_response interface. [Roy Fielding]
*) Multiple fixes to the lingering_close code in order to avoid being
interrupted by a stray timeout, to avoid lingering on a connection
that has already been aborted or never really existed, to ensure that
we stop lingering as soon as any error condition is received, and to
prevent being stuck indefinitely if the read blocks. Also improves
reporting of error conditions. [Marc Slemko and Roy Fielding]
*) Fixed initialization of parameter structure for sigaction.
[mgyger@itr.ch, Adrian Filipi-Martin]
*) Fixed reinitializing the parameters before each call to accept and
select, and removed potential for infinite loop in accept.
[Roy Fielding, after useful PR from adrian@virginia.edu]
*) Fixed condition where, if a child fails to fork, the scoreboard would
continue to say SERVER_STARTING forever. Eventually, the main process
would refuse to start new children because count_idle_servers() will
count those SERVER_STARTING entries and will always report that there
are enough idle servers. [Phillip Vandry]
*) Fixed bug in bcwrite regarding failure to account for partial writes.
Avoided calling bflush() when the client is pipelining requests.
Removed unnecessary flushes from http_protocol. [Dean Gaudet]
*) Added description of "." mode in server-status [Jim Jagielski]
Changes with Apache 1.2b4
*) Fix possible race condition in accept_mutex_init() that
could leave a small security hole open allowing files to be
overwritten in cases where the server UID has write permissions.
[Marc Slemko]
*) Fix awk compatibilty problem in Configure. [Jim Jagielski]
*) Fix portablity problem in util_script where ARG_MAX may not be
defined for some systems.
*) Add changes to allow compilation on Machten 4.0.3 for PowerPC.
[Randal Schwartz]
*) OS/2 changes to support an MMAP style scoreboard file and UNIX
style magic #! token for better script portability. [Garey Smiley]
*) Fix bug in suexec wrapper introduced in b3 that would cause failed
execution for ~userdir CGI. [Jason Dour]
*) Fix initgroups() business in suexec wrapper. [Jason Dour]
*) Fix month off by one in suexec wrapper logging.
Changes with Apache 1.2b3:
*) Fix error in mod_cgi which could cause resources not to be properly
freed, or worse. [Dean Gaudet]
*) Fix find_string() NULL pointer dereference. [Howard Fear]
*) Add set_flag_slot() at the request of Dirk and others.
[Dirk vanGulik]
*) Sync mod_rewrite with patch level 10. [Ralf Engelschall]
*) Add changes to improve the error message given for invalid
ServerName parameters. [Dirk vanGulik]
*) Add "Authoritative" directive for Auth modules that don't
currently have it. This gives admin control to assign authoritative
control to an authentication scheme and allow "fall through" for
those authentication modules that aren't "Authoritative" thereby
allowing multiple authentication mechanisms to be chained.
[Dirk vanGulik]
*) Remove requirement for ResourceConfig/AccessConfig if not using
the three config file layout. [Randy Terbush]
*) Add PASV mode to mod_proxy FTP handler. [Chuck Murcko]
*) Changes to suexec wrapper to fix the following problems:
1. symlinked homedirs will kill ~userdirs.
2. initgroups() on Linux 2.0.x clobbers gr->grid.
3. CGI command lines paramters problems
4. pw-pwdir for "docroot check" still the httpd user's pw record.
[Randy Terbush, Jason Dour]
*) Change create_argv() to accept variable arguments. This fixes
a problem where arguments were not getting passed to the CGI via
argv[] when the suexec wrapper was active. [Randy Terbush, Jake Buchholz]
*) Collapse multiple slashes in path URLs to properly apply
handlers defined by <Location>. [Alexei Kosut]
*) Define a sane set of DEFAULT_USER and DEFAULT_GROUP values for AIX.
*) Improve the accuracy of request duration timings by setting
r->request_time in read_request_line() instead of read_request().
[Dean Gaudet]
*) Reset timeout while reading via get_client_block() in mod_cgi.c
Fixes problem with timed out transfers of large files. [Rasmus Lerdorf]
*) Add the ability to pass different Makefile.tmpl files to Configure
using the -make flag. [Rob Hartill]
*) Fix coredump triggered when sending a SIGHUP to the server caused
by an assertion failure, in turn caused by an uninitialised field in a
listen_rec.
[Ben Laurie]
*) Add FILEPATH_INFO variable to CGI environment, which is equal to
PATH_INFO from previous versions of Apache (in certain situations,
Apache 1.2's PATH_INFO will be different than 1.1's). [Alexei Kosut]
[later removed in 1.2b11]
*) Add rwrite() function to API to allow for sending strings of
arbitrary length. [Doug MacEachern]
*) Remove rlim_t typedef for NetBSD. Do older versions need this?
*) Defined rlim_t and WANTHSREGEX=yes and fixed waitpid() substitute for
NeXT. [Jim Jagielski]
*) Removed recent modification to promote the status code on internal
redirects, since the correct fix was to change the default log format
in mod_log_config so that it outputs the original status. [Rob Hartill]
Changes with Apache 1.2b2:
*) Update set_signals() to use sigaction() for setting handlers.
This appears to fix a re-entrant problem in the seg_fault()
bus_error() handlers. [Randy Terbush]
*) Changes to allow mod_status compile for OS/2 [Garey Smiley]
*) changes for DEC AXP running OSF/1 v3.0. [Marc Evans]
*) proxy_http.c bugfixes: [Chuck Murcko]
1) fixes possible NULL pointer reference w/NoCache
2) fixes NoCache behavior when using ProxyRemote (ProxyRemote
host would cache nothing if it was in the local domain,
and the local domain was in the NoCache list)
3) Adds Host: header when not available
4) Some code cleanup and clarification
*) mod_include.c bugfixes:
1) Fixed an ommission that caused include variables to not
be parsed in config errmsg directives [Howard Fear]
2) Remove HAVE_POSIX_REGEX cruft [Alexei Kosut]
3) Patch to fix compiler warnings [perrot@lal.in2p3.fr]
4) Allow backslash-escaping to all quoted text
[Ben Yoshino <ben@wiliki.eng.hawaii.edu>]
5) Pass variable to command line if not set in XSSI's env
[Howard Fear]
*) Fix infinite loop when processing Content-language lines in
type-map files. [Alexei Kosut]
*) Closed file-globbing hole in test-cgi script. [Brian Behlendorf]
*) Fixed problem in set_[user|group] that prevented CGI execution
for non-virtualhosts when suEXEC was enabled. [Randy Terbush]
*) Added PORTING information file. [Jim Jagielski]
*) Added definitions for S_IWGRP and S_IWOTH to conf.h [Ben Laurie]
*) Changed default group to "nogroup" instead of "nobody" [Randy Terbush]
*) Fixed define typo of FCNTL_SERIALIZED_ACCEPT where
USE_FCNTL_SERIALIZED_ACCEPT was intended.
*) Fixed additional uses of 0xffffffff where INADDR_NONE was intended,
which caused problems of systems where socket s_addr is >32bits.
*) Added comment to explain (r->chunked = 1) side-effect in
http_protocol.c [Roy Fielding]
*) Replaced use of index() in mod_expires.c with more appropriate
and portable isdigit() test. [Ben Laurie]
*) Updated Configure for ...
OS/2 (DEF_WANTHSREGEX=yes, other code changes)
*-dg-dgux* (bad pattern match)
QNX (DEF_WANTHSREGEX=yes)
*-sunos4* (DEF_WANTHSREGEX=yes, -DUSEBCOPY)
*-ultrix (new)
*-unixware211 (new)
and added some user diagnostic info. [Ben Laurie]
*) In helpers/CutRule, replaced "cut" invocation with "awk" invocation
for better portability. [Jim Jagielski]
*) Updated helpers/GuessOS for ...
SCO 5 (recognize minor releases)
SCO UnixWare (braindamaged uname, whatever-whatever-unixware2)
SCO UnixWare 2.1.1 (requires a separate set of #defines in conf.h)
IRIX64 (-sgi-irix64)
ULTRIX (-unknown-ultrix)
SINIX (-whatever-sysv4)
NCR Unix (-ncr-sysv4)
and fixed something in helpers/PrintPath [Ben Laurie]
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>