Back out the target path change from serverroot\bin back to serverroot
for Apache.exe and it's associated lib*.dll files until after beta one.
Change the make projects as well... and a commit of the actual .mak files
will be coming in a moment.
Ryan Bloom [Thu, 21 Dec 2000 01:27:46 +0000 (01:27 +0000)]
Actually link apr-util's .a file, instead of relying on libtool. We may
want to change this later, but right now, we want a single binary that
has every function it requires.
The Win32 overhaul, in summary;
Modules are named mod_foo.so
Dynamic Libraries are named libfoo.dll, and are stored in bin/
The former ApacheCoreDll is now libhttpd.dll
Apache.exe moves to bin/
The make install now copies include, lib, and libexec
All build options are normalized, filenames adjusted appropriately
Ryan Bloom [Wed, 20 Dec 2000 23:48:06 +0000 (23:48 +0000)]
This is about 99% complete for the binbuild script. The only problem that
still remains is that some of the apr-util functions aren't being compiled
in, so they work when the apr-util library is in the right location, but
once that library is removed, the server won't start.
Hmmm... seems the /dy solution wasn't sufficiently portable. This patch
prevents us from displaying the files copied, but at least bypasses the
confirmation messages.
Ryan Bloom [Wed, 20 Dec 2000 16:55:37 +0000 (16:55 +0000)]
Remove a STATUS entry that can't be implemented cleanly. The problem
is that there are multiple ways to start a CGI script, mod_cgi, mod_cgid,
and mod_include. If we move the directives out of the core and into one
of those modules, then the rest of the modules won't have it.
This may be solvable once mod_include calls out to mod_cgi(d) for the
exec tags.
Greg Stein [Wed, 20 Dec 2000 10:19:06 +0000 (10:19 +0000)]
exports.c was dependent upon delete-exports, but that dependency will always
fail since there is no delete-exports file (thus, exports.c would always get
regenerated, recompiled, and relinked). Instead, we move the delete-exports
target "up" to the "all" target. However, ltlib.mk doesn't allow us to add
things to the "all" target, so we also revise the set of .mk files to use.
Ryan Bloom [Wed, 20 Dec 2000 06:47:48 +0000 (06:47 +0000)]
Get the binbuild.sh script into the CVS repository and start to modify
it to work with httpd-2.0. There are still a lot of issues with this
script, but we have to start someplace.
Ryan Bloom [Wed, 20 Dec 2000 06:26:58 +0000 (06:26 +0000)]
Remove the test directory from the top level Makefile, and move the STATUS
item to "non-showstopper but nice to fix" category. This is in preparation
for tomorrow's BETA.
ApacheModuleProxy.dsp moved to os/win32 with the rest of them
(yes, all could move the their respective folders, this was the
path of least resistance.)
All compilation and linkage tags are identical, no incremental tags
CPP /Gm removed, /incremental:no consistently applied, and the
exception handling /GX was removed from release builds.
Every lib builds to LibD/LibR directories. Every executable and
dynamic module builds to Debug/Release directories. /Fd"name" tags
force .pdb/.idb files to be named as the project, rather than VC##.
Assure the build works correctly, and is similar to the normal style.
Ryan Bloom [Tue, 19 Dec 2000 20:44:24 +0000 (20:44 +0000)]
ap_start_shutdown is not used by anybody outside of the MPMs, so we don't
need to put it in the ap_mpm.h header file. This also makes all of the
instances of ap_start_shutdown static.
Ryan Bloom [Tue, 19 Dec 2000 17:05:48 +0000 (17:05 +0000)]
Force all Apache functions to be linked into the executable, whether they
are used or not. This uses the same mechanism that is used for APR
and APR-util. This may not be the correct solution, but it works, and that
is what I really care about. This also renames CHARSET_EBCDIC to
AP_CHARSET_EBCDIC. This is for namespace correctness, but it also makes
the exports script a bit easier.
Ryan Bloom [Tue, 19 Dec 2000 15:09:02 +0000 (15:09 +0000)]
Get all of the auth modules to the point that they will install and
be loadable into the server. Our new build/install mechanism expects
that all modules will have a common name format. The auth modules
didn't use that format, so we didn't install them properly.
Ryan Bloom [Tue, 19 Dec 2000 01:59:54 +0000 (01:59 +0000)]
Get the perchild MPM working better again. I have been able to pass
some file descriptors back and forth and serve requests, but this code is
still very experimental.
Jeff Trawick [Mon, 18 Dec 2000 17:52:05 +0000 (17:52 +0000)]
API routines ap_pgethostbyname() and ap_pduphostent() are no longer
available. Use apr_getaddrinfo() instead.
The ap_pduphostent() code was moved to modules/proxy/proxy_util.c for
now since that is the only caller. When the proxy's use of the
resolver is APR-ized this won't be needed anymore.
Ryan Bloom [Sun, 17 Dec 2000 23:05:24 +0000 (23:05 +0000)]
Clean up some formatting. Using a tab of 22 characters makes the output
very annoying to read. 8 looks much more reasonable to me.
PR:
Obtained from:
Submitted by:
Reviewed by:
Ryan Bloom [Sun, 17 Dec 2000 18:04:14 +0000 (18:04 +0000)]
Get byterange requests working with data that is generated by a handler
that does not add a content-length. For example, mod_autoindex doesn't
set a content-length, but the byterange filter requires one. We fix this
by computing the content-length in the byterange filter.
Jeff Trawick [Sun, 17 Dec 2000 17:47:03 +0000 (17:47 +0000)]
When the platform supports IPv6 (according to APR) and
the system is configured to support IPv6, Apache gets IPv6
listening sockets unless the Listen statement says otherwise
(i.e., Listen specifies an IPv4 numeric address string or a
hostname which resolves to an IPv4 address).
Jeff Trawick [Sun, 17 Dec 2000 12:30:29 +0000 (12:30 +0000)]
Call ap_log_error() instead of ap_log_rerror() from alloc_listener().
This bug, introduced in a recent commit, caused a segfault when the
hostname couldn't be resolved.
Jeff Trawick [Sat, 16 Dec 2000 21:36:33 +0000 (21:36 +0000)]
get_addresses()
. use apr_parse_addr_port() so we handle IPv6 addresses on
NameVirtualHost and <VirtualHost > directives
. don't hardcode AF_INET when a hostname or IP address was
coded
dump_a_vhost()
. check the address family before looking for certain IPv4
addresses
ap_fini_vhost_config()
. pass apr_status_t to ap_log_error() after apr_getnameinfo()
fails
Jeff Trawick [Sat, 16 Dec 2000 14:49:18 +0000 (14:49 +0000)]
tweak the responsibilities of make_sock() and alloc_listener()
because we need to resolve the hostname (i.e., call apr_getaddrinfo())
before creating the socket so that we get a socket of the appropriate
family
also, simplify some of the address displays in some error logs
Jeff Trawick [Sat, 16 Dec 2000 12:54:53 +0000 (12:54 +0000)]
Use apr_parse_addr_port() in fix_hostname(). This simplifies the
code by a small (okay, tiny) amount and lets IPv6 numeric address
strings be passed through.
Obtained from: the idea is from the KAME IPv6 patch for Apache 1.3
Jeff Trawick [Sat, 16 Dec 2000 12:21:21 +0000 (12:21 +0000)]
use apr_parse_addr_port() in ap_set_listener(); this allows IPv6
numeric address strings to be specified (though we wouldn't get
an IPv6 socket for it at the moment)
consolidate the use of APR_ANYADDR and make a note about its
protocol dependence
Jeff Trawick [Fri, 15 Dec 2000 19:20:12 +0000 (19:20 +0000)]
move closer to IPv6 support by changing the server_addr_rec
representation of the bound address to something which handles
IPv6; this also allows us to switch to APR resolver routines
in places instead of calling gethostbyname() and gethostbyaddr()
directly
Issues remaining with this set of changes:
1) apr_snprintf()'s %pA formatting needs to change to take
apr_sockaddr_t * instead of sockaddr_in * -OR- just get rid
of that type of formatting
2) apr_get_inaddr() is no longer used and should be removed
Jeff Trawick [Fri, 15 Dec 2000 13:28:57 +0000 (13:28 +0000)]
Axe ap_get_virthost_addr(). This <address>[:port] parse routine
is not used anymore and it doesn't handle IPv6, so it is best to
drop it. If/when mod_tls (Netware) is ported to 2.0 it can use
apr_parse_addr_port().
Jeff Trawick [Wed, 13 Dec 2000 13:03:32 +0000 (13:03 +0000)]
Get mod_rewrite to work as a DSO by changing the way it
keeps track of whether or not its post config hook has
been called before. Instead of a static variable (which
is replaced when the DSO is loaded a second time), use
userdata in the process pool.
Jeff Trawick [Wed, 13 Dec 2000 04:03:19 +0000 (04:03 +0000)]
Get mod_cgid to work as a DSO by changing the way it
keeps track of whether or not its post config hook has
been called before. Instead of a static variable (which
is replaced when the DSO is loaded a second time), use
userdata in the process pool.
Add magic, mime.types and -default of all /conf files to the Win32
build/install. Also copy the manual tree to htdocs/manual/, and the
index pages (if they do not exist) to htdocs/
One, it's very hard to type perl without $'s (stolen by the .mak parser)
Two, it's official ... we don't have anything useful on Win32 to help us
with rewriting (no sed, no nothing, by default) so we will require perl.
Sorry to anyone that causes trouble for, but it's fairly unavoidable
unless we want sed instead.