Ryan Bloom [Fri, 1 Dec 2000 07:32:11 +0000 (07:32 +0000)]
Get Apache to use the new generated exports list. This works on my
Linux machine, but I am pretty sure there are going to be problems for
others. The idea here, is to be able to generate a list of the exported
functions from APR. This list needs to be correct, we can not list
functions that are not exported on the platform being built on. To
accomplish this, we generate a list of the exported symbols when we
configure APR. As a part of this list, we also include all of the
#if macros that surround those symbols. Apache then uses this list
of functions and macros to generate a file that refers to each of those
symbols. Because we have the macros, when we compile this file, the
compiler ignores any symbols that aren't valid on this platform.
XXX note that 1.3.13 grew the xmethods in some recent patch:
typedef struct {
table *action_types; /* Added with Action... */
char *scripted[METHODS]; /* Added with Script... */
array_header *xmethods; /* Added with Script -- extension methods */
} action_dir_config;
XXx seems like whoever applied needs to port forward to 2.0 :-)
Greg Stein [Wed, 29 Nov 2000 17:33:03 +0000 (17:33 +0000)]
Use "const char * const *" for process->argv (which is the correct
const-ness since we sometimes put "some string" in there, and also the CRT's
argv). propagate this change within http_main and mpm/winnt/ (also correct
some other const type usage within the MPM).
fix ab's call to parse_url() which removed a const to actually manipulate an
arg from the CRT's argv (indirectly via opt->arg). no idea how this has
avoided segfaulting.
clean up some really bad typedefs - and move one into mpm_winnt.c since
that's the only module remaining that needs it. Should be an apr type,
but we aren't using the apr accessors to handle them.
Ryan Bloom [Tue, 28 Nov 2000 23:07:01 +0000 (23:07 +0000)]
First step towards extracting the SSI handling from mod_include so that
it is extensible by modules
Submitted by: Paul J. Reder <rederpj@raleigh.ibm.com>
Reviewed by: Ryan Bloom
Ryan Bloom [Tue, 28 Nov 2000 21:31:51 +0000 (21:31 +0000)]
Split the hints file into two files, one in APR and one in Apache. The APR
hints file just sets build variables, the Apache hints file just sets
Apache variables. This is meant to clean up parts of APR, so that they
don't include Apache information.
Greg Stein [Tue, 28 Nov 2000 12:09:50 +0000 (12:09 +0000)]
add --with-dbm switch to configure, allowing the user to set the type of DBM
that apu_dbm will use (defaults to builtin sdbm). first pass at gdbm
config support (seems to work fine in my simple test).
- added src/lib/aputil/apu_private.h.in to hold aputil config info
- apu_dbm.c now uses #if for the config values (rather than #ifdef)
- cleared out temp hack in configure.in to force sdbm usage
Jeff Trawick [Mon, 27 Nov 2000 22:32:50 +0000 (22:32 +0000)]
Tweak the logic to avoid "make distclean" inside APR directories so that
it works on Tru64. On that platform, when grep failed (because we weren't
in an APR directory), the non-zero exit status failed the entire operation.
Greg Stein [Mon, 27 Nov 2000 22:30:34 +0000 (22:30 +0000)]
*) sprinkle a little magic "const" dust around (specifically, to compensate
for the prototype change to ap_os_create_privileged_process())
*) wrap some long lines
Jeff Trawick [Mon, 27 Nov 2000 16:32:45 +0000 (16:32 +0000)]
Always include lib/sdbm in INCLUDES (until somebody that can spell
lbi/aputil teaches the configure to be a little smarter). This
lets apu_dbm compile, which in turns lets us build httpd again.
Jeff Trawick [Mon, 27 Nov 2000 15:50:26 +0000 (15:50 +0000)]
use the APR feature test macro to check for sys/uio.h; it is the
only one defined and it is used in other Apache code;
this gets mod_rewrite to compile on RedHat 6.0 (and perhaps some
other systems)
Greg Stein [Mon, 27 Nov 2000 12:54:28 +0000 (12:54 +0000)]
*) make find_liveprop() hook take a dav_resource rather than "r"
*) repos.c: liveprop hooks shouldn't respond if the resource is not an FS
resource.
*) std_liveprop.c: use empty-elem form if value=="". return NOTDEF for the
properties that we aren't ready to insert yet
Greg Stein [Sun, 26 Nov 2000 15:27:33 +0000 (15:27 +0000)]
*) Put lib/aputil/ into the INCLUDES path
*) add a Makefile.in to test/ to help with building test programs (these are
not part of the build; just manual compiles right now)
*) add test/dbu.c as a quick test of apu_dbm
[ dbu.c originally came from the SDBM package ]
Greg Stein [Thu, 23 Nov 2000 12:50:31 +0000 (12:50 +0000)]
shift some processing of "core" WebDAV properties out of the generic
property handling code, and into a new, core liveprop handler.
*) add std_liveprop.c to deal with the core DAV properties
*) move DAV:resourcetype, DAV:supported-method-set,
DAV:supported-live-property-set, and DAV:supported-report-set over to the
new handler
*) props.c::dav_get_allprops() should not look in the deadprop database for
the DAV:resourcetype -- it is readonly, so should never be in there.
*) strip vsn_hooks from the propdb; only the core liveprops need it now
*) mod_dav.c: register the core liveprop hooks and URIs
*) fs/repos.c: stripped DAV:displayname and DAV:source, in favor of letting
the core handler deal with them.
Greg Stein [Thu, 23 Nov 2000 10:37:00 +0000 (10:37 +0000)]
More revamping of live properties. Focused around the fact that a provider's
hooks are only called if that provider defines the prop (e.g. NOTME return
values are no longer needed). Also refactored some code to simplify liveprop
management for providers (assuming they don't have "funny" stuff).
*) enumerate all known DAV properties (DAV_PROPID_* in mod_dav.h)
- use these in fs/repos.c rather than DAV_PROPID_FS_*
- will use in SVN and a second-round whack on the "core" props in props.c
*) refactor dav_fs_liveprop_name to dav_liveprop_spec and add a writeable
flag
*) add dav_liveprop_group to hold a number of "top-level" items to pass to
the new liveprop utility functions
*) add dav_do_find_liveprop() as a util for the find_liveprop hook function
- toss repos.c::dav_fs_find_prop
- use the new function for repos.c::dav_fs_find_liveprop
*) rebuild dav_register_liveprop_namespace() as a full "group" registration
which will handle all the namespaces in a liveprop provider. The new func
is called dav_register_liveprop_group().
*) add dav_get_liveprop_info() to look up liveprop info given a provider's
propid. used in dav_fs_insert_prop() and dav_fs_is_writeable()
*) fold dav_fs_insert_all() directly into dav_fs_insert_all_liveprops()
since the former wasn't called by anything else
*) rename var in dav_fs_insert_prop() to "global_ns" to clarify its purpose.
torch a couple out-of-date comments in there.
*) toss dav_prop_rw type and simplify is_writeable hook. fix up calling of
hook in props.c::dav_rw_liveprop(). dav_rw_liveprop() should also call
the provider *first*, if one has stated it is handling the property.
*) toss DAV_PROP_INSERT_NOTME since we can't call a provider's insert_prop
with somebody else's liveprop
*) remove DAV_IS_CORE_PROP() in props.c. a core prop is not defined by its
propid, but by provider==NULL. add comments to clarify when that happens.
*) fix sub-request creation to include new next-filter arg
Ryan Bloom [Wed, 22 Nov 2000 20:35:56 +0000 (20:35 +0000)]
Add the ability for apxs to install both libtool generated and non-libtool
generated shared objects.
Submitted by: Jon Travis <jtravis@covalent.net>
Reviewed by: Ryan Bloom
Ryan Bloom [Wed, 22 Nov 2000 19:49:20 +0000 (19:49 +0000)]
A complete re-write of mod_include. This has served the entire manual
now. This makes mod_include a filter that uses buckets directly.
Submitted by: Paul J. Reder <rederpj@raleigh.ibm.com>
Reviewed by: Ryan Bloom
Ryan Bloom [Wed, 22 Nov 2000 19:38:07 +0000 (19:38 +0000)]
Allow modules to specify the first module for a sub-request. This allows
modules to not have to muck with the output_filter after it creates the
sub-request. Without this change, modules that create a sub-request have
to manually edit the output_filters, and therefore skip the sub-request
output_filter. If they skip the sub-request output_filter, then we end
up sending multiple EOS buckets to the core_output_filter.
Joshua Slive [Wed, 22 Nov 2000 05:46:40 +0000 (05:46 +0000)]
A little more general MPM documentation.
Feeback welcome.
Note the comment at the bottom:
<!-- XXX: Needed here: a brief discussion or reference to instructions
on how to choose and load an MPM, how to figure out what MPM you are
currently using, and what MPMs are the defaults on various
platforms. -->
Ryan Bloom [Tue, 21 Nov 2000 20:17:20 +0000 (20:17 +0000)]
Modify the content-length filter to change the criteria used to determine
if/when we compute the content-length. There are just a few cases now:
1) We already have all the data
2) We don't have all the data and:
2a) This is a 1.1 request but we can't chunk
2b) The is a keep-alive request
In the future, we probably want to modify this to not
be a keep-alive request.
This filter always buffers 9K of data. The reason is simple, the core will
buffer 9K at a time anyway, and there is a chance that we may get the end
of the request before we hit 9K. This increases our chances of being able
to send a c-l.
Jeff Trawick [Tue, 21 Nov 2000 19:47:14 +0000 (19:47 +0000)]
Update ab to accept URLs with IPv6 literal address strings (in the
format described in RFC 2732), and to build Host header fields in
the same format. This allows IPv6 literal address strings to be
used with ab. This support has been tested against Apache 1.3 with
the KAME patch, but Apache 2.0 does not yet work with this format
of the Host header field.
*) Accomodate an out-of-space condition in the piped logs and the
rotatelogs.c code, and no longer churn log processes for this
condition. [Victor J. Orlikowski]