Newer
Older
7001
7002
7003
7004
7005
7006
7007
7008
7009
7010
7011
7012
7013
7014
7015
7016
7017
7018
7019
7020
7021
7022
7023
7024
7025
7026
7027
7028
7029
7030
7031
7032
7033
7034
7035
7036
7037
7038
7039
7040
7041
7042
7043
7044
7045
7046
7047
7048
7049
7050
7051
7052
7053
7054
7055
7056
7057
7058
7059
7060
7061
7062
7063
7064
7065
*) Rebind the Win32 NT and 9x services control into the MPM.
All console, WinNT SCM and Win9x pseudo-service control code is
now wrapped within the WinNT MPM.
[William Rowe]
*) Make a copy of getenv("PATH") before storing for later use. Some
getenv() implementations use the same storage for successive calls.
CGIs on OS/390 had a bad PATH due to this. [Jeff Trawick]
*) Server Tokens work in 2.0 again. This also propogates the change
to allow just the product name in the server string using
PRODUCT_ONLY.
[Ryan Bloom]
Changes with Apache 2.0a4
*) EBCDIC: Rearrange calls to ap_checkconv() so that most handlers
won't need to call it. [Greg Ames, Jeff Trawick]
*) Move pre_config hook call to between configuration read and config
tree walk. This allows all modules to implement pre_config hooks
and know that they will be called at an appropriate time.
[Ryan Bloom]
*) mod_cgi, mod_cgid: Make ScriptLog directive work again.
[Jeff Trawick]
*) Add pre-config hooks back to all modules.
[Ryan Bloom]
*) Fix a SIGSEGV in ap_md5digest(), which is used when you have
ContentDigest enabled and we can't/don't mmap the file.
[Jeff Trawick]
*) We now report the correct line number for syntax errors in config
files. [Ryan Bloom, Greg Stein, Jeff Trawick]
*) Brought mod_auth_digest up to synch with 1.3, fixed ap_time_t-
related bugs, and changed shmem/locking to use apr API. Shared-mem
is currently disabled, however, because of problems with graceful
restarts. [Ronald Tschalär]
*) Fix corruption of IFS variable in --with-module= handling.
Depending on the user's shell or customization thereof, there
would be errors generating ap_config_auto.h later in the configure
procedure. [Jeff Trawick]
*) mod_cgi: Restore logging of stderr from child process when ScriptLog
isn't used (as in 1.3), except that on Unix it is now logged via
ap_log_rerror() instead of by the child having STDERR_FILENO refer
to the error log. [Greg Ames, Jeff Trawick]
*) Add '-D' argument processing for run time configuration defines.
[William Rowe]
*) Organize http_main.c as independent code, such that no code or
global data is exported from it. WIN32 will dynamically link it
to the server core, so this will prevent mutual dependency.
[William Rowe]
*) Add separate dynamic linkage tags APR_EXPORT(), APR_EXPORT_NONSTD()
and APR_VAR_EXPORT to correctly resolve apr functions and globals.
[William Rowe]
*) Add Win9x service execution and Ctrl+C/Ctrl+Break/Shutdown handlers.
7067
7068
7069
7070
7071
7072
7073
7074
7075
7076
7077
7078
7079
7080
7081
7082
7083
7084
7085
7086
7087
7088
7089
7090
7091
7092
7093
*) Add mod_charset_lite for configuring character set translation.
[Jeff Trawick]
*) Add '-n' option to htpasswd to make it print its user:pw record
on stdout rather than having to frob a text file. [Ken Coar]
*) Fix saferead. Basically, we flush the output buffer if a read on the
input will block.
[Ryan Bloom]
*) APR: Add ap_xlate_get_sb() so that an app can find out whether or not
a conversion is single-byte only. [Jeff Trawick]
*) BEOS: ap_shutdown should return APR_SUCCESS or errno. Note that
the BeOS 5.0 documentation says that shutdown doesn't work yet.
[Roy Fielding]
*) Fix some minor errors where pid was being manipulated as an int
instead of the portable pid_t. [Roy Fielding]
*) Fix some error log prints that were printing the pointer to a
structure rather than the pid within the structure.
[Jeff Trawick, Roy Fielding]
*) ab: Fix a command-line processing bug; track bad headers in
err_response; support reading headers up to 2K.
*) Fix ap_resolve_env() so that it handles new function added in a prior
alpha (see "Added the capability to do ${ENVVAR} constructs in the
config file.") as well as the constructs used by mod_rewrite.
7100
7101
7102
7103
7104
7105
7106
7107
7108
7109
7110
7111
7112
7113
7114
7115
7116
7117
7118
7119
7120
7121
7122
7123
7124
7125
7126
7127
7128
7129
7130
7131
7132
7133
7134
7135
7136
7137
7138
7139
7140
7141
7142
7143
7144
7145
7146
7147
7148
7149
7150
7151
7152
7153
7154
7155
7156
7157
7158
7159
7160
7161
7162
7163
7164
7165
7166
7167
7168
7169
7170
7171
7172
7173
7174
7175
7176
7177
7178
7179
7180
7181
7182
7183
7184
7185
7186
7187
7188
7189
7190
7191
7192
7193
7194
7195
7196
7197
7198
7199
7200
7201
7202
7203
7204
7205
7206
7207
7208
7209
7210
*) Apache 2.0 builds and runs on OS/390. [Jeff Trawick, Greg Ames]
*) Change the EBCDIC support in functions for MD5, SHA1, and base 64 to use
APR to perform translation, instead of accessing the hard-coded tables
in 1.3's ebcdic.c. [Jeff Trawick]
*) Fix some bugs (mostly lost 1.3 code) in ab's command-line processing.
[Jeff Trawick]
*) Add the ability to hook into the config file reading phase. Basically
if a directive is specified EXEC_ON_READ, then when that directive is
read from the config file, the assocaited function is executed. This
should only be used for those directives that must muck with HOW the
server INTERPRETS the config. This should not be used for directives
that re-order or replace items in the config tree. Those changes should
be made in the pre-config step.
[Ryan Bloom]
*) Add mod_example to the build system.
[Tony Finch]
*) APR: Add ap_xlate_conv_byte() to convert one char between single-
byte character sets. [Jeff Trawick]
*) Pick up various EBCDIC fixes from 1.3 (from Martin
Kraemer and Oliver Reh originally according to the change log).
[Jeff Trawick]
*) Fix a couple of problems in RFC1413 support (controlled by the
IdentityCheck directive). Apache did not build the request string
properly and more importantly Apache would loop forever if the
would-be ident server dropped the connection before sending a
properly terminated response. [Jeff Trawick]
*) apxs works in 2.0.
[Ryan Bloom]
*) Reliable piped logs work in 2.0.
[Ryan Bloom]
*) Introduce a hash table implementation into APR to be used for
replacing tables and other random data structures in Apache.
[Tony Finch]
*) Add some more error reporting to htpasswd in the case of problems
generating or accessing the temporary file. Also, pass in a
buffer if the implementation knows how to use it (i.e., if L_tmpnam
is defined). [Ken Coar]
*) Configure creates config.nice now containing your configure
options. Syntax: ./config.nice [--more-options]
[Sascha Schumann]
*) Fix various return code problems in APR on Win32. For most of
these, APR was returning APR_EEXIST instead of GetLastError()/
WSAGetLastError(). [Jeff Trawick]
*) Make piped logs work again in version 2.0
[Ryan Bloom]
*) Add VPATH support to UNIX build system of Apache and APR.
[Sascha Schumann]
*) Fix ap_tokenize_to_argv to respect the const arguments that are
passed to it.
[Ryan Bloom]
*) Fix mm's memcpy/memset macros, pointer arithmetic was broken.
Patch submitted to author.
[Sascha Schumann]
*) Fix mm configuration on Solaris 8 x86 and OS/390. Don't require
/sbin in PATH on FreeBSD (all submitted to rse previously)
[Jeff Trawick]
*) Fix building Pthread-based MPMs on OpenBSD
[Sascha Schumann] PR#26
*) Fix ap_readdir() problem on systems where d_name[] field in
struct dirent is declared with only one byte. (This problem only
affected multithreaded builds.) This caused a segfault during
pool cleanup with mod_autoindex on Solaris (Solaris 8 x86, at
least). [Jeff Trawick]
*) Fix some make-portability problems on at least Tru64, Irix
and UnixWare.
[Sascha Schumann] PR#18, PR#39
*) Add ap_sigwait() to support old-style sigwait() on systems
like OS/390 and UnixWare.
[Sascha Schumann]
*) Add POSIX-thread flags for more platforms.
[Sascha Schumann]
*) Fix some minor bugs in ap_strerror(). Teach ap_strerror()
(on Unix, at least) to handle resolver errors. Fix a bug in
the definition of APR_ENOMEM so that ap_strerror() can spit
out the correct error message for it.
[Jeff Trawick]
Changes with Apache 2.0a3
*) mod_so reports ap_os_dso_error() if ap_dso_load() fails
[Doug MacEachern]
*) API: *HOOK* macros now have an AP_ prefix
[Doug MacEachern]
*) Win32: Eliminate redundant calls to initialize winsock.
*) Fix bugs initializing ungetchar for pipes.
7215
7216
7217
7218
7219
7220
7221
7222
7223
7224
7225
7226
7227
7228
7229
7230
7231
7232
7233
7234
7235
7236
7237
7238
7239
7240
7241
7242
7243
7244
7245
7246
7247
7248
7249
7250
*) The ab program in the src/support directory is now portable using
APR.
[Ryan Bloom]
*) Support directory is being compiled when the server is built
[Ryan Bloom]
*) The configure option --with-program-name has been added to allow
developers to rename the executable at configure time. This also
changes the name of the config files to match the executable's name.
[Ryan Bloom]
*) mod_autoindex: Add `IndexOptions +VersionSort', to nicely sort filenames
containing version numbers. [Martin Pool]
*) ap_open(..,APR_OS_DEFAULT,..) uses perms 0666 instead of 0777 on
Unix; access_log and error_log now created with these perms; non-
Unix is unaffected [Jeff Trawick]
*) Finished move of ap_md5 routines to apr_md5. Removed ap_md5.h.
Replaced more magic numbers with MD5_DIGESTSIZE.
[William Rowe, Roy Fielding]
*) Win32: Get mod_auth_digest compiling and added to the Windows
build environment. Not tested and I'd be suprised if it
actually works. [Bill Stoddard]
*) Revamp the Win32 make environment. Makefiles have been removed and
Apache.dsw created to bring together all the pieces. Create new file
os/win32/BaseAddr.ref to define module base addresses (to prevent
dll relocation at start-up).
[William Rowe, Greg Marr, Tim Costello, Bill Stoddard]
*) [EBCDIC] Port Paul Gilmartin's CRLF patch from 1.3. This replaces most
of the \015, \012, and \015\012 constants with macros.
[Greg Ames]
*) Add ap_xlate_open() et al for translation of text between different
character sets. The initial implementation requires iconv().
[Jeff Trawick]
*) More FAQs and answers from comp.infosystems.www.servers.unix.
*) CGI output is being timed out now.
[Ryan Bloom]
*) Fix the problem with dieing quietly. dupfile now takes a pool which
is used by the new apr file. There is no reason to create a new file
with the same lifetime as the original file.
[Ryan Bloom]
*) Win32: Attempt to eliminate dll relocation at start-up by specifying
module base addresses. This will help shooting seg faults
*) Update Apache on Windows documentation. Add new document
describing how to compile Apache on Windows.
*) ap_set_pipe_timeout(), ap_poll(), and APR_SO_TIMEOUT now take
microseconds instead of seconds. Some storage leaks and other
minor bugs in related code were fixed. [Jeff Trawick]
*) Win32: First cut at getting mod_isapi working under 2.0
*) First stab at getting mod_auth_digest working under 2.0
quick change summary:
- moved the random byte generation (ap_generate_random_bytes) into APR
- now uses ap_time_t
- compiles and runs on linux
- tested with amaya
*) Win32: Move the space stripping of physical service names
fix up from Apache 1.3. #include'ing "ap_mpm.h" fixes up an
unresolved symbol. Add dependency checking to the
CreateService call to ensure TCPIP and AFP (winsock) is started
before Apache.
*) Win32: Add code to perform latebinding on functions that may
not exist on all levels of Windows where Apache runs. This
is needed to allow Apache to start-up on Win95/98. All calls
to non portable functions should be protected with
ap_oslevel checks to prevent runtime segfaults.
*) Fix fallback default values for SHM_R and SHM_W [Martin Kraemer]
*) Get lingering_close() working again. [Dean Gaudet, Jeff Trawick]
*) Win32: Get non-blocking CGI pipe reads working under Windows NT.
This addresses PR 1623. Still need to address timing out runaway
CGI scripts. [Bill Stoddard]
*) Win32: Make ap_stat Windows 95/98 friendly
*) Win32: Fix a bug in ap_get_oslevel which causes GetVersionEx() to
always fail. Need to initialise the dwOSVersionInfoSize member of the
OSVERSIONINFO struct before calling GetVersionEx, so GetVersionEx
always fails.
The patch also enhances ap_get_oslevel (and the associated enum) to
handle selected service packs for NT4, and adds recognition for
Windows 2000. This is useful, eg. if we can recognise NT4 SP2 then
we can use ReadFileScatter and WriteFileGather in readwrite.c.
*) Get mod_rewrite building and running, and mod_status building for Win NT
*) Patch to port mod_auth_db to the 2.0 api and also to support
Berlekey DB 3.0. It works for me with both Berkeley DB 3.0.55 and
2.7.7. It should work with version 1 as well but I haven't tested it.
*) Get APR DSO code working under Windows. Includes cross platform
fixes to mod_so.c.
*) Fix some of the Windows APR time functions.
[William Rowe]
*) FAQ changes related to tidying up historical documents on the web site.
*) Move Windows DSO code into APR.
[Bill Stoddard]
*) Eliminate apr_win.h and apr_winconfig.h (and the ugly #ifdefs they cause).
Now, apr.h and apr_config.h are generated from apr.hw and apr_config.hw
at build time. At this point, the server will not compile on Windows because
of the recent DSO commits. Fixing those next.
[Bill Rowe & Bill Stoddard]
*) Added error checking for file I/O APR routines.
*) APR: Don't use the values of resolver error codes for the
corresponding APR error codes. On Unix and Win32, return the
proper APR error code after a resolver error. [Jeff Trawick]
Changes with Apache 2.0a2
*) Renamed the executable back to httpd on all platforms other
than Win32
[Ryan Bloom]
*) Allow BeOS to survive restarts, log properly and a few
small things it had problems with due to the way it setup
users and groups. [David Reid]
*) Get mod_rewrite working with APR locks
*) Actually remove the sempahore when the lock cleanup routine
is called on BeOS. [David Reid]
*) Clear hook registrations between reads of the config file.
When DSOs are unloaded and re-loaded the old hook pointers may
no longer be valid. This fix eliminates potential segfaults.
*) Fix a problem with Sigfunc not being defined or bypassed
if sigaction() wasn't found. [Jim Jagielski]
*) Fix the locking mechanism on BSD variants. They now use fcntl
locks. This allows the server to start and serve pages.
[Ryan Bloom]
*) First cut at getting the Win32 installer to work
*) Get htpasswd compiling under Windows
*) Change the log message for a bind() failure to show the
interface and port number. [Jeff Trawick]
*) Import the documentation from 1.3.12 and bring parts of it
up-to-date with respect to the changes that have occurred
in 2.0.
[Tony Finch]
*) BeOS MPM updated. CGI bug on BeOS fixed. IP addresses
now logged correctly on BeOS.
[David Reid]
*) Create one makefile for all Win32 distributions (NT/2000/95/98).
Makefile.win includes the same user interface as the old
Makefile.nt
*) Win32 exec now uses COMSPEC environment string for command
shell path resolution.
*) Win32: ap_connect() was not returning correct error condition
PR5866
*) Win32: ap_open() was broken on Win9x because an NT-specific
flag was passed to CreateFile. ap_puts() added an unnecessary
'\n'.
7424
7425
7426
7427
7428
7429
7430
7431
7432
7433
7434
7435
7436
7437
7438
7439
7440
7441
7442
7443
7444
7445
7446
7447
7448
7449
7450
7451
7452
7453
7454
7455
7456
7457
7458
7459
7460
7461
7462
7463
7464
7465
7466
7467
7468
7469
7470
7471
7472
7473
7474
7475
7476
7477
7478
7479
7480
7481
7482
7483
7484
7485
7486
7487
7488
7489
*) Put in Korean and Norwegian index.html pages (2.0 and 1.3)
which where donated by Lee Kuk Hyun and Lorant Czaran. 'Fixed'
confusing ee/et name and made all extensions language/dialect
rather than country reflecting. Changed example files to
explicit reflect the ISO charset and added a few common
ones to the example config [dirkx]
*) Extend external module capability. To use this, you call
configure with --with-module=path/to/mod1,path/to/mod2,etc.
[Ryan Bloom]
*) Backported the various "default charset" fixes from 1.3.12,
including the AddDefaultCharset directive. [Jim Jagielski]
*) Added the capability to do ${ENVVAR} constructs in the
config file. E.g. 'ServerAdmin ${POSTMASTER}'. As commited
it does this on a line by line basis; i.e. if the envvar
expands to something with spaces you have to protect it
by adding quotes around it (Unless of course you expect it
to contains more than one argument. Alternatively you
can compile it on a per token basis; which is what people
usually expect by setting RESOLVE_ENV_PER_TOKEN. But this
hampers fancier hacks.
[Dirk-Willem van Gulik]
*) Changed the 'ErrorDocument' syntax in that it NO longer
supports the asymetric
ErrorDocument 301 "Some message
Note the opening " quote, without a closing quote. It now
has either the following syntaxes
ErrorDocument XXX /local/uri
ErrorDocument XXX http://valid/url
ErrorDocument XXX "Some Message"
The recognition heuristic is: if it has a space it
is a message. If it has no spaces and starts with a /
or is a valid URL then treat it that way. Otherwise it
is assumed to be a message.
This breaks backward compatibility but makes live a hell
of a lot easier for GUI's and config file parsers.
[Dirk-Willem van Gulik]
*) Changed 'CacheNegotiatedDocs' from its present/not-present
syntax into a 'on' or 'off' syntax. As it currently is the
only non nesting token which uses NO_ARGS and thus is an
absolute pain for any config interface automation. This
breaks backward compatibility. [Dirk-Willem van Gulik]
*) Add ability to add external modules to the build process. This is
done with --with-module=/path/to/module. Modules can only be added
as static modules at this point.
[Ryan Bloom]
Changes with Apache 2.0a1
*) Fix FreeBSD 3.3 core dump.
Basically, ap_initialize() needs to get called before
create_process(), since create_process() passes op_on structure
to semop() to get a lock, but op_on isn't initialized until
ap_initialize() calls setup_lock(). Here is a slight
rearrangement to main() which calls ap_initialize() earlier...
7491
7492
7493
7494
7495
7496
7497
7498
7499
7500
7501
7502
7503
7504
7505
7506
7507
7508
7509
7510
7511
7512
7513
7514
7515
7516
7517
7518
7519
7520
7521
7522
*) Enable Apache to use sendfile/TransmitFile API
[Bill Stoddard, David Reid, Paul Reder]
*) Re-Implement Win32 APR network I/O APIs and most of the file I/O
APIs.
[Bill Stoddard]
*) Make file I/O and network I/O writev/sendv APIs consistent.
Eliminate use of ap_iovec_t and use Posix struct iovec.
Use seperate variable on ap_writev to set the number of iovecs
passed in and number of bytes written.
[Bill Stoddard]
*) Adapt file iol to use APR functions. Replaced ap_open_file()
with ap_create_file_iol(). ap_create_file_iol() requires that
the file be opened prior to the call using ap_open().
[Bill Stoddard]
*) Port mod_include and mod_cgi to 2.0
[Paul Reder, Bill Stoddard]
*) ap_send{,v}, ap_recv, ap_sendfile API clarification --
bytes_read/bytes_written is always valid (never -1). Plus
some fixes to buff.c to correct problems introduced by the
errno => ap_status_t changes a while back. Plus a fix to
chunked encoding introduced right at the beginning of 2.0.
[Dean Gaudet]
*) Revamped UNIX build system to use autoconf and libtool.
[Manoj Kasichainula, Sascha Schumann]
*) port mod_rewrite to 2.0. [Paul J. Reder <rederpj raleigh.ibm.com>]
*) SECURITY: More rigorous checking of Host: headers to fix security
problems with mass name-based virtual hosting (whether using mod_rewrite
7527
7528
7529
7530
7531
7532
7533
7534
7535
7536
7537
7538
7539
7540
7541
7542
7543
7544
7545
7546
7547
or mod_vhost_alias).
[Ben Hyde, Tony Finch]
*) Add back support for UseCanonicalName in <Directory> containers.
[Manoj Kasichainula]
*) Added APLOG_STARTUP log type. This allows us to write an error
message without any of the date and time information. As a part
of this change, I also removed all of the calls to fprintf(stderr
and replaced them with calls to ap_log_error using APLOG_STARTUP
writing to stderr is no longer portable, because we don't direct
stderr to the error log on all platforms.
[Ryan Bloom]
*) Convert error logging functions to take errno as an argument.
This makes our error logs more portable, because some Windows API's
don't set errno. This change allows us to still output a valid
message on all of our platforms.
[Ryan Bloom]
*) mod_mime_magic runs in 2.0-dev now.
*) sendfile has been added to APR.
*) buff.c has been converted to no longer use errno.
[Manoj Kasichainula]
*) mod_speling runs in 2.0-dev now: a bug in readdir_r handling and
interface adaption to APR functions did it. [Martin Kraemer]
*) Support DSOs properly on 32-bit HP-UX 11.0
7561
7562
7563
7564
7565
7566
7567
7568
7569
7570
7571
7572
7573
7574
7575
7576
7577
7578
7579
7580
7581
*) Updated MM in APR source tree from version 1.0.8 to 1.0.11
[Ralf S. Engelschall]
*) Cleaned APR build environment integration and bootstrap APR
automatically for developers from src/Configure.
[Ralf S. Engelschall]
*) Fixed building of src/support/htpasswd.c
[Ralf S. Engelschall]
*) When generating the Location: header, mod_speling forgot
to escape the spelling-fixed uri. (Forw-Port from 1.3)
[Martin Kraemer]
*) Moved mod_auth_digest.c from experimental to standard. [Roy Fielding]
*) Change all pools to APR contexts. This is the first step to
incorporating APR into Apache. [Ryan Bloom]
*) Move "handler not found" warning message to below the check
7583
7584
7585
7586
7587
7588
7589
7590
7591
7592
7593
7594
7595
7596
7597
7598
7599
7600
7601
7602
7603
7604
PR#2584, PR#2751, PR#3349, PR#3436, PR#3548, PR#4384, PR#4795, PR#4807
*) Support line-continuation feature in config.option file and
allow the loading of multiple option sections at once via
``--with-option=<section1>,<section2>,...''
[Ralf S. Engelschall]
*) Rebuilt CVS repository with Apache 1.3.9 as basis. [Roy Fielding]
Changes with Apache MPM
*) Use asynchronous AcceptEx() and a completion port to accept and
dispatch connections to threads in Windows NT/2000.
[Bill Stoddard]
*) Implement WINNT Win32 MPM from original Win32 code in http_main.c
[Bill Stoddard]
*) Implement the APACI --with-option facility
(per default used the config.option file).
[Ralf S. Engelschall]
7606
7607
7608
7609
7610
7611
7612
7613
7614
7615
7616
7617
7618
7619
7620
7621
7622
7623
7624
7625
7626
7627
7628
7629
7630
7631
7632
7633
7634
7635
*) Start to implement module-defined hooks that are a) fast and b) typesafe.
Replace pre_connection module call with a register_hook call and
implement pre_connection as a hook. The intent is that these hooks will
be extended to allow Apache to be multi-protocol, and also to allow the
calling order to be specified on a per-hook/per-module basis.
[Ben Laurie]
*) Implement mpm_* methods as "modules". Each method gets its own
subdir in src/modules (eg: src/modules/prefork). Selection
of method uses Rule MPM_METHOD. [Jim Jagielski]
*) Port the hybrid server from the apache-apr repository as
mpm_mpmt_pthread. [Manoj Kasichainula]
*) os/unix/unixd.[ch]: detach, setuid, setgid, stuff which will be common
amongst the unix MPMs.
*) mpm_prefork: throw away all the alarm/timeout crud; and clean up the
signal handling for the new world order. [Dean Gaudet]
*) Crude ap_thread_mutex abstraction so that we get the pthread stuff out
of alloc.c for now. [Dean Gaudet]
*) Handle partial large writes correctly. [Ben Laurie]
*) Eliminate conn_rec's pointer to server. All it knows is the base server
based on IP/port. [Ben Laurie]
*) Port a bunch of modules to the new module structure.
*) I/O layering and BUFF revamp. See docs/buff.txt. [Dean Gaudet]
*) Basic restructuring to introduce the MPM concept; includes various
changes to the module API... better described by
docs/initial_blurb.txt. [Dean Gaudet]
Changes with Apache pthreads
*) New buff option added: BO_TIMEOUT. It describes the timeout for
buff operations (generally over a network).
[Dean Gaudet, Ryan Bloom, Manoj Kasichainula]
*) Created http_accept abstraction. Added 4 new functions (not exported):
init_accept(), begin_accepting_requests(), get_request(),
stop_accepting_requests() [Bill Stoddard]
*) Fix to ap_rprintf call that allows mod_info to work properly.
7656
7657
7658
7659
7660
7661
7662
7663
7664
7665
7666
7667
7668
7669
7670
7671
7672
7673
7674
7675
7676
7677
7678
7679
7680
7681
7682
7683
7684
7685
7686
7687
7688
7689
7690
7691
7692
7693
7694
7695
7696
7697
7698
7699
7700
7701
7702
7703
7704
7705
7706
7707
7708
7709
7710
7711
7712
7713
7714
7715
7716
7717
7718
7719
7720
7721
7722
7723
7724
7725
7726
7727
7728
7729
7730
7731
7732
7733
7734
7735
7736
7737
7738
7739
7740
7741
7742
7743
7744
7745
7746
7747
7748
*) user and ap_auth_type fields were moved from connection_rec to
request_rec. [Ryan Bloom]
*) Removed the ap_block_alarms and ap_unblock_alarm calls. These aren't
needed in a threaded server.
*) Initial pthread implementation from from Dean's apache-nspr code.
[Bill Stoddard, Ryan Bloom]
Changes with Apache 1.3.9
*) Remove bogus error message when a redirect doesn't set Location.
Instead, use an empty string to avoid coredump if the error message
was supposed to include a location. [Roy Fielding]
*) Don't allow configure to include mod_auth_digest unless it is
explicitly requested, even if the user asked for all modules.
[Roy Fielding]
*) Translate module names to dll names for OS/2 so that they are no more
than 8 characters long and have an extension of "dll" instead of "so".
[Brian Havard]
*) Print out pointer to Rule DEV_RANDOM when truerand lib not found.
Fix test-compile check to check for randbyte instead of trand32.
Use ap_base64encode_binary/decode instead of copy in mod_auth_digest.c
and tweak to make Amaya happier. [Ronald Tschalär]
*) Ensure that the installed expat include files are world readable,
just like the other header files. [Martin Kraemer]
*) Fixed generated AddModule adjustments in APACI's `configure' script
in order to allow (new) modules like mod_vhost_alias to be handled
correctly (which was touched by the adjustments for mod_alias).
[Ralf S. Engelschall]
*) For binary builds, add -R flag to apachectl to work around the lack of
an absolute path to the ./libexec directory where the libhttp.ep file
is needed for SHARED_CORE architectures. [Randy Terbush]
*) WIN32: Create the CGI script process as DETACHED. This may solve the
problem observed by some Win95/98 users where they get CGI script
output sent to the console. [Bill Stoddard]
*) Fix (re)naming in the uuencode/decode section. The ap/ap_
routines are now called ap_base64* and are 'plain' (i.e., no
pool access or anything clever). Inside util.c the routines acting
like pstrdup are called ap_pbase64encode() and ap_pbase64decode().
The oddly named ap_uuencode(), ap_uudecode() are kept around for
now but deprecated. [dirkx]
*) Clean up the base64 and SHA1 additions and make sure they are
represented in the ApacheCore.def, ApacheCoreOS2.def, and httpd.exp
files. [Roy Fielding]
*) WIN32: Migrate to InstallShield 5.5 and provide a bit more error
checking. Allow compiling on VS 6.0. [Randy Terbush]
*) Fixed assumption of absolute paths in binbuild.sh. [Tony Finch]
*) Use TestCompile to search for the truerand library (rather than blindly
assuming its existence). If it is not found, complain (but do not
exit - yet). [Martin Kraemer]
*) We forgot to add the new exported function names to
src/support/httpd.exp. [Bill Stoddard, Randy Terbush]
*) Add description of -T command-line option to usage().
[Ralf S. Engelschall]
*) For "some" platforms (notably, EBCDIC based ones), libos needs to be
searched only AFTER libap has been searched, because libap needs
some symbols from libos. [Martin Kraemer]
*) Fix conflict with original mod_digest related to the symbol of the
module dispatch list (which has to be unique for DSO and follow the
usual conventions for the installation procedure).
[Ralf S. Engelschall]
*) Add a dbm-library check for the "usual places" (-ldbm, -lndbm, -ldb)
for other platforms as well. [Martin Kraemer]
*) Make ap_sha1.c compile for EBCDIC platforms: replace remaining LONG
types by AP_LONG and replace reference to renamed variable 'ubuf'
by 'buffer'. [Martin Kraemer]
Changes with Apache 1.3.8 [not released]
*) Flush the output buffer immediately after sending an error or redirect
response, since the result may be needed by the client to abort a
long data transfer or restart a series of pipelined requests.
*) PORT: Improved compilation and DSO support on Sequent DYNIX/ptx.
*) Local struct mmap in http_core.c conflicted with system structure
name on DYNIX -- changed to mmap_rec. [Roy Fielding] PR#4735
*) Added updated mod_digest as modules/experimental/mod_auth_digest.
*) Fix a memory leak where the module counts were getting messed
*) CIDR addresses such as a.b.c.d/24 where d != 0 weren't handled
properly in mod_access.
*) RewriteLock/RewriteMap didn't work properly with virtual hosts.
*) PORT: Support for compaq/tandem/com.
*) Added SHA1 password encryption support to easy migration from
Netscape servers. See support/SHA1 for more information.
Caused the separation of ap_md5.c into md5, sha1 and a general
ap_checkpass.c with just a validate_passwd routine. Added a
couple of flags to support/htpasswd. Some reuse of the to64()
function; hence renamed to ap_to64().
*) Change for EBCDIC platforms (TPF and BS2000) to correctly deal
with ASCII/EBCDIC conversions in "ident" query.
*) Get rid of redefinition warning on MAC_OS_X_SERVER platform.
Change "Power Macintosh" to Power* so if uname prints "Power Book"
we're still happy on Rhapsody platforms. [Wilfredo Sanchez]
*) Fix SIGSEGV on some systems because the Vary fix below included
a call to table_do with a variable argument list that was not
NULL terminated. Replaced with better implementation. [Roy Fielding]
Changes with Apache 1.3.7 [not released]
*) The "Vary" response header field is now sanitised right before
the header is sent back to the client. Multiple "Vary" fields
are combined, and duplicate tokens (e.g., "Vary: host, host" or
"Vary: host, negotiate, host, accept-language") are reduced to
single instances. This is a better solution than the force-no-vary
one (which is still valid for clients that can't cope with Vary
at all). PR#3118 [Dean Gaudet, Roy Fielding, Ken Coar]
*) Portability changes for BeOS. [David Reid <abb37 dial.pipex.com>]
*) Link DSO's with "gcc -shared" instead of "ld -Bshareable" at
least on Linux and FreeBSD for now.
[Rasmus Lerdorf]
*) Win32: More apache -k restart work. Restarts are now honored
immediately and connections in the listen queue are -not- lost.
This is made possible by the use of the WSADuplicateSocket()
call. The listeners are opened in the parent, duplicated, then
the duplicates are passed to the child. The original listen sockets
are not closed by the parent across a restart, thus the listen queue
is preserved.
*) Fix handling of case when a client has sent "Expect: 100-continue"
and we are going to respond with an error, but get stuck waiting to
discard the body in the pointless hope of preserving the connection.
*) Fix 'configure' to work correctly with SysV-based versions of
'tr' (consistent with Configure's use as well). [Jim Jagielski]
*) apxs: Add "-S var=val" option which allows for override of CFG_*
built-in values. Add "-e" option which works like -i but doesn't
install the DSO; useful for editing httpd.conf with apxs. Fix
editing code so that multiple invocations of apxs -a will not
create duplicate LoadModule/AddModule entries; apxs can now be
used to re- enable/disable a module. [Wilfredo Sanchez]
*) Win32: Update the server to use Winsock 2. Specifically, link with
ws2_32.lib rather than wsock32.lib. This gives us access to
WSADuplcateSocket() in addition to some other enhanced comm APIs.
Win 95 users may need to update their TCP/IP stack to pick up
Winsock 2. (See http://www.microsoft.com/windows95/downloads/)
*) Win32: Redirect CGI script stderr (script debug info) into the
error.log when CGI scripts fail. This makes Apache on Win32
behave more like Unix.
*) Fixed `httpd' usage display: -D was missing.
[Ralf S. Engelschall] PR#4614
*) Fix `make r' test procedure in src/regex/: ap_isprint was not found.
[Ralf S. Engelschall] PR#4561, PR#4562
*) OS/2: Fix problem with accept lock semaphores where server would die with
"OS2SEM: Error 105 getting accept lock. Exiting!"
[Brian Havard] PR#4505
*) Add DSO support for DGUX 4.x using gcc. Tested on x86 platforms.
*) Add the new mass-vhost module (mod_vhost_alias.c) developed and
*) Better GCC detection for DSO flags under Solaris 2 where the `cc'
command potentially _is_ GCC. [Ralf S. Engelschall]
*) Fix apxs build issues on AIX
7866
7867
7868
7869
7870
7871
7872
7873
7874
7875
7876
7877
7878
7879
7880
7881
7882
7883
7884
7885
7886
7887
7888
*) DocumentRoot Checking: Under previous versions, when Apache
first started up, it used to do a stat of each DocumentRoot to
see if it existed and was a directory. If not, then an error
message was printed. THIS HAS BEEN DISABLED. If DocumentRoot
does not exist, you will get error messages in error_log. If
the '-t' command line option is used (to check the configuration)
the check of DocumentRoot IS performed. An additional command
line option, '-T', has been added if you want to avoid the
DocumentRoot check even when checking the configuration.
[Jim Jagielski]
*) Win32: The query switch "apache -S" didn't exit after showing the
vhost settings. That was inconsistent with the other query functions.
[Bill Stoddard - Fixed by Martin on Unix in 1.3.4]
*) Win32: Changed behaviour of apache -k restart.
Previously, the server would drain all connections in the stack's
listen queue before honoring the restart. On a busy server, this
could take hours. Now, a restart is honored almost immediately.
All connections in Apache's queues are handled but connections in
the stack's listen queue are discarded. Restart triggered by
MaxRequestPerChild is unchanged.
*) Win32: Eliminated unnecessary call to wait_for_multiple_objects in
the accept loop. Good for a 5% performance boost. Cleaned up
parent/child process management code.
*) Added ceiling on file size for memory mapped files.
*) Fix ndbm.h include problems with brain-dead glibc >= 2.1 which
has ndbm.h in a non-standard db1/ subdir. PR#4431, PR#4528
*) Determine AP_BYTE_ORDER for ap_config_auto.h and already
use this at least for Expat. [Ralf S. Engelschall]
*) Allow .module files to specify libraries with Lib:.
[Ben Laurie]
*) Allow SetEnvIf[NoCase] to test environment variables as well
as header fields and request attributes. [Ken Coar]
*) Fix mod_autoindex's handling of ScanHTMLTitles when file
content-types are "text/html;parameters". PR#4524 [Ken Coar]
*) Remove "mxb" support from mod_negotiation -- it was a draft feature
never accepted into any standard, and it opens up certain DoS
*) TestCompile updated. We can now run programs and output the
results during the Configure process. [ Jim Jagielski]
*) The source is now quad (long long) aware as needed. Specifically,
the Configure process determines the correct size of off_t and
*void. When the OS/platform/compiler supports quads, ap_snprintf()
provides for the 'q' format qualifier (if quads are not available,
'q' is silently "demoted" to long). [Jim Jagielski]
*) When the username or password fed to htpasswd is too long, include the
size limit in the error message. Also report illegal characters
(currently only ':') in the username. Add the size restrictions
to the man page. [Ken Coar]
*) Fixed the configure --without-support option so it doesn't result in
an infinite loop. [Marc Slemko]
*) Piped error logs could cause a segfault if an error occured
during configuration after a restart.
*) If a "Location" field was stored in r->err_headers_out rather
than r->headers_out, redirect processing wouldn't find it and
the server would core dump on ap_escape_html(NULL). Check both
tables and raise HTTP_INTERNAL_SERVER_ERROR with a log message
if Location isn't set. [Doug MacEachern, Ken Coar]
*) Add RULE_EXPAT, the src/lib/ directory structure, and a modified copy
of the Expat 1.0.2 distribution. [Greg Stein]
*) Replace regexec() calls with calls to a new API stub function
ap_regexec(). This solves problems with DSO modules which use the regex
*) Add 'Request_Protocol' special keyword to mod_setenvif so that
environment variables can be set according to the protocol version
(e.g., HTTP/0.9 or HTTP/1.1) of the request. [Ken Coar]
*) Add DSO support for OpenStep (Mach 4.2) platform.
*) Fix sed regex for generating ap_config_auto.h in src/Configure.
*) Switch to /bin/sh5 in APACI on Ultrix and friends to avoid problems with
their brain-dead /bin/sh. [Ralf S. Engelschall] PR#4372
*) Better DSO flags recognition on NetBSD platforms using ELF.
*) Always log months in english format for %t in mod_log_config.
*) Support for server-parsed and multiview-determined ReadmeName and
HeaderName files in mod_autoindex. Removed the restriction on
"/"s in ReadmeName and HeaderName directives since the *sub_req*
routines will deal with the access issues. (It's now possible to
have {site|group|project|customer|...} wide readmes and headers.)
3569, 4256
*) When stat() fails, don't assume anything about the contents of
*) It's OK for a semop to return EINTR, just loop around and try
again. [Dean Gaudet]
*) Fix configuration engine re-entrant hangups, which solve a
handful of problems seen with mod_perl <Perl> configuration sections
*) Mac OS and Mac OS X Server now use the appropriate custom layout
by default when building with APACI; allow for platform-specific
variable defaults in configure. [Wilfredo Sanchez]
*) Do setgid() before initgroups() in http_main; some platforms
zap the grouplist when setgid() is called. This was fixed in
suexec earlier, but the main httpd code missed the change.
*) Add recognition of .tgz as a gzipped tarchive.
[Bertrand de Singly <bertrand.de-singly polytechnique.fr>] PR#2364