Ryan Bloom [Thu, 28 Dec 2000 06:08:30 +0000 (06:08 +0000)]
We don't want to install CVS files, but the -P option to cp means something
different on FreeBSD than it means on Linux. This puts the recursive
copy back in, and just has us delete the CVS directories after they are
copied into place.
Ryan Bloom [Thu, 28 Dec 2000 01:14:22 +0000 (01:14 +0000)]
Ignore CRLF (or LF) when PEEK'ing at data on the socket. The general
problem is that some browsers send an extra line at the end of a POST
request. We use the PEEK method to determine if there is any data left
on the socket, if there is then we delay sending the response until we
have enough data to make it worthwhile. If the browser sends an extra
blank line, we don't want to delay the response at all. The only time
we use the PEEK method is to check for a second request, so this is safe
to do.
This also solves Joe Orton's problem of specifying a Content- Length
of 1 for a blank line, and having the server wait to send back a response.
The problem is that Linux (all Unix really) sends two characters \r\n for
a blank line, so specifying a C-L of 1 means that the server still sees
a \n when it PEEKs that the socket data. That \n can be safely ignored
however.
Ryan Bloom [Wed, 27 Dec 2000 23:30:07 +0000 (23:30 +0000)]
On Unix, we do not want to use an absolute path for CGI scripts. SuEXEC
will not let us use one, and when not using SuEXEC, we chdir() into the
correct directory.
Ryan Bloom [Wed, 27 Dec 2000 23:24:53 +0000 (23:24 +0000)]
We cannot set the SUEXEC_BIN directory from autoconf, because all of the
instructions say that in order to modify this variable, you have to modify
httpd.h
Ryan Bloom [Tue, 26 Dec 2000 21:39:35 +0000 (21:39 +0000)]
Allow buildconf to find the config.m4 files in the correct order. This
allows the decisions made in one config.m4 file to be based on decisions
made in previous config.m4 files. For example, the config.m4 in the
generators config.m4 can choose the correc cgi module based on which MPM
is chosen.
To do this, we find all filenames config*.m4, and then we re-order the
filename so that it looks like: *config.m4/path/to/file. Once all files
are in this format, we sort the files, and then re-arrange the file names
again to put them in the correct order. There may be better ways to do
this, but I couldn't find a portable way to call sort so that this would
work.
Ryan Bloom [Sat, 23 Dec 2000 07:09:01 +0000 (07:09 +0000)]
Get mod_cgid to use apr calls for creating the actual CGI process.
This also allows mod_cgid to use ap_os_create_priviledged_process,
thus allowing for SuExec execution from mod_cgid. Currently, we do
not support everything that standard SuExec supports, but at least
it works minimally now.
Ryan Bloom [Fri, 22 Dec 2000 23:43:16 +0000 (23:43 +0000)]
If we get EAGAIN returned from apr_sendfile, then we need to loop back and
call it again. This change allows us to serve large files (such as
apache_2.0a9.tar.gz) using Apache 2.0 on FreeBSD.
Greg Stein [Fri, 22 Dec 2000 22:44:45 +0000 (22:44 +0000)]
Back out the .libs thing from the aprutil linking. Add --disable-shared (for
now) to the subdir config to ensure that we only get a static library for
aprutil (which allows for linking all of its functions into the executable).
[ APR will need something similar if/when it gets libtool-ized ]
Mark a note in STATUS indicating we should eventually toss the
--disable-shared flag.
Ryan Bloom [Fri, 22 Dec 2000 00:02:52 +0000 (00:02 +0000)]
Cleanups so that the support programs build cleanly. The Win32 values
need to be sanity checked.
Submitted by: Cliff Woolley <cliffwoolley@yahoo.com>
Reviewed by: Ryan Bloom
Out of the sandbox and into prime time. Note... these should always and
only be regenerated immediately prior to the tag and roll. Do not assume
they are current with the sources in the development tree. They should
be generated as vc5 make files, since only vc5 makefiles are readable by
both vc5 and vc6.
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.