Commit Graph

553 Commits

Author SHA1 Message Date
c1b39458ab Command handler revamp. Note that this makes the code produce a LOT of
warnings!


git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@85595 13f79535-47bb-0310-9956-ffa450edef68
2000-06-17 11:13:05 +00:00
b18a907dad Turn on buffering for config file reads. This is dependent on ap_fgets()
doing the right thing.

Brian Havard implemented buffering for ap_fgets() on Win32 recently; OS/2 had
it already.  This provides it for Unix.

changes to ap_read(), ap_getc(), ap_fgets() for Unix:

1) this fixes a problem in where ap_open() where a lock is created for
   non-buffered files
2) this fixes problems setting rv correctly in the ap_read() buffered
   path
3) since ap_read() works as expected, it is possible to make ap_getc()
   and ap_fgets() even smaller
4) ap_fgets() no longer cares about '\r'


git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@85586 13f79535-47bb-0310-9956-ffa450edef68
2000-06-16 16:41:21 +00:00
78571030f9 Fix segfault when reporting this type of syntax error:
"</container> without matching <container> section", where
container is VirtualHost or Directory or whatever.

This was a path not covered by the fix in 2.0a4 to report
the proper line numbers (sorry!).


git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@85585 13f79535-47bb-0310-9956-ffa450edef68
2000-06-16 12:00:58 +00:00
e38702601d Include the proper header file (under X/Open, at least) for ntohs() in
a couple of modules.  This lets us link-edit successfully again on OS/390.
(OS/390 only has the macro form of these functions.)


git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@85580 13f79535-47bb-0310-9956-ffa450edef68
2000-06-15 13:42:01 +00:00
8df8ca51e3 Add support to ap_xlate_open() for an app to specify that the
charset of the locale is to be used for the source or target
charset.

At EBCDIC initialization, use the locale charset as one of the
pair when setting up the default translation handles for content.


git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@85571 13f79535-47bb-0310-9956-ffa450edef68
2000-06-14 20:38:32 +00:00
35e97374a7 Add sys/time.h to mpm_common to include define of timeval.
git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@85569 13f79535-47bb-0310-9956-ffa450edef68
2000-06-14 13:50:40 +00:00
87fb37f9c5 Tidy up the beos mpm by
- removing some unused variables
- correct a problem with pool allocations that killed the server
- add back the ap_lingering close call which I removed in error
  just before going on holiday.


git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@85568 13f79535-47bb-0310-9956-ffa450edef68
2000-06-14 00:17:21 +00:00
a9746375cf Get the ap_config.h cleanup working on FreeBSD by adding includes of
additional system headers.

A platform check in logresolve.c to determine whether or not we include
<arpa/inet.h> was converted to a feature check.


git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@85567 13f79535-47bb-0310-9956-ffa450edef68
2000-06-13 21:36:18 +00:00
20641b5303 Add mpm.h to the src/modules/mpm/winnt directory (it's empty for now, but its presense
is required for http_core.c, et. al.).  Update ApacheCore.dsp to pick it up in the
include path.


git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@85564 13f79535-47bb-0310-9956-ffa450edef68
2000-06-13 14:09:22 +00:00
b4f482c494 Stop checking for Shared Memory. This function is actually no longer
defined by our autoconf setup, but I forgot to remove all of the calls
to it.


git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@85560 13f79535-47bb-0310-9956-ffa450edef68
2000-06-13 01:08:20 +00:00
750d8cc03c Protect system header files with the appropriate macros.
git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@85558 13f79535-47bb-0310-9956-ffa450edef68
2000-06-12 23:03:05 +00:00
580852da85 Clean up a big chunk of ap_config.h. This basically stops ap_config.h from
including any files.  Because of this change, other files must include
their own headers.  I also cleaned up a couple of other bugs in some
modules because I had to compile them all.

I expect this to break multiple platforms, but this will be fixed over time.
The massive configure cleanup is almost done.  I will go through the files
one more time after this commit.


git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@85553 13f79535-47bb-0310-9956-ffa450edef68
2000-06-12 21:47:17 +00:00
bfbb1c736d Fix logging of errors creating the httpd.pid file.
perror() was converted to ap_log_error(), which will interpret the
specified APR error code properly.

The existing ap_log_error() call was changed so that the message is
formatted properly.  Note that this call is made from the mpm after
we detach from the foreground process, so it can only appear in the
log.


git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@85551 13f79535-47bb-0310-9956-ffa450edef68
2000-06-12 21:39:57 +00:00
93a6d2f3a7 Back out ap_set_default_perms(). Remove old logic to play with umask
around the creation of the httpd.pid file.  Pass explicit permissions to
ap_open(), omitting write-ability except by the owning user.  As always,
we end up with rw-r--r-- for the permissions unless the umask is something
unusual.

Note that the OS/2 and Win32 implementations of ap_open() ignore the
permissions parameter altogether.


git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@85550 13f79535-47bb-0310-9956-ffa450edef68
2000-06-12 21:08:25 +00:00
09076e771a Clean up the stat commit. Basically there was one struct stat that I
missed converting to ap_finfo_t.


git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@85545 13f79535-47bb-0310-9956-ffa450edef68
2000-06-12 18:07:43 +00:00
2cf4563fcc Including apr_file_io.h is not necessary.
git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@85543 13f79535-47bb-0310-9956-ffa450edef68
2000-06-12 17:41:14 +00:00
4f8f778113 Fix typos.
git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@85542 13f79535-47bb-0310-9956-ffa450edef68
2000-06-12 17:40:00 +00:00
ec58094da8 All of Apache uses APR for shared memory, so Apache doesn't need to check
for SHM_[RW].


git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@85539 13f79535-47bb-0310-9956-ffa450edef68
2000-06-12 17:04:39 +00:00
b44c18edd7 Add a new function ap_set_default_fperms. This allows people to set the
umask to be used when creating files.  This should change the permissions
of files created using APR_DEFAULT_OS.  Also removed a warning introduced
with the sys/stat.h changes.


git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@85537 13f79535-47bb-0310-9956-ffa450edef68
2000-06-12 16:00:33 +00:00
16748b4e22 Remove the final vestiges of stat.h from Apache 2.0. All calls are now to
ap_stat.  This also adds the new function ap_lstat().  This function is
analogous to lstat.


git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@85535 13f79535-47bb-0310-9956-ffa450edef68
2000-06-12 15:29:09 +00:00
ad614825ba Make this build again...
git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@85532 13f79535-47bb-0310-9956-ffa450edef68
2000-06-12 12:58:12 +00:00
a8591e550e Fix a couple of problems with the pre/post config processing changes:
1) symptom: on system with bad/no DNS setup, ServerName isn't
   processed so init fails

cause:

  ap_fini_vhost_config() called before ap_process_config_tree(), so
  ServerName was never stored in the config structure

2) symptom: on system with virtual hosts configured, SIGSEGV in
   open_multi_logs()

cause:

   the module configs for the virtual hosts haven't been merged in
   yet, and open_multi_logs() gets NULL for the mod_log_config
   configuration

This stuff needs to be cleaned up further, exploring the use of a
post-config hook for fixup_virtual_hosts(), ap_fini_vhost_config(),
and ap_sort_hooks(), getting a lot of logic out of main(), and
processing the config tree only once.


git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@85522 13f79535-47bb-0310-9956-ffa450edef68
2000-06-11 22:06:57 +00:00
ef9d56268b Update dependencies.
git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@85516 13f79535-47bb-0310-9956-ffa450edef68
2000-06-11 14:12:03 +00:00
1252e4656e Fix dependencies for util_uri.lo and util.lo.
git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@85510 13f79535-47bb-0310-9956-ffa450edef68
2000-06-11 11:20:58 +00:00
8a9a5b90ac Cleanup more of the Apache configuration. This removes all of the shared
memory checks, because Apache relies completely on APR for shared memory
support.  In doing this, we also need to know how APR/MM are providing
our shared memory (ie file or memory) that requires the change made to
APR's configure script that was just committed.


git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@85501 13f79535-47bb-0310-9956-ffa450edef68
2000-06-10 16:15:08 +00:00
cd6953bbf5 httpd -V now displays APR's selection of the lock mechanism instead of the
symbols previously respected by prefork.


git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@85499 13f79535-47bb-0310-9956-ffa450edef68
2000-06-10 11:46:37 +00:00
dfb99092a3 fix nagle
git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@85495 13f79535-47bb-0310-9956-ffa450edef68
2000-06-10 02:22:15 +00:00
c69795a629 Update the Dexter MPM to use APR for shared memory. This removes a lot
of duplicate code and allows me to clean up some config stuff in a few
minutes.


git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@85493 13f79535-47bb-0310-9956-ffa450edef68
2000-06-10 01:35:59 +00:00
3eb76501e4 fix dependencies. (what is a .lo anyway? i tried making the .o depend
on the .h which is how dependencies usually work, but the other rules
didn't work out right unless i used a .lo ... i suppose this only matters
to folks building with -j N)


git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@85491 13f79535-47bb-0310-9956-ffa450edef68
2000-06-10 01:10:10 +00:00
7e50066461 We don't ever actually use HAVE_CRYPT, so stop defining it.
git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@85489 13f79535-47bb-0310-9956-ffa450edef68
2000-06-09 22:37:50 +00:00
4e7616169e Remove waitpid from the config checks and all calls to waitpid from the
server.


git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@85488 13f79535-47bb-0310-9956-ffa450edef68
2000-06-09 22:05:36 +00:00
6b6800fd85 Remove a bunch of string functions from Apache. These are basically
standard string functions like strstr, strcasecmp, etc that Apache used
to define for platforms that don't have them.  These functions and the
feature tests have moved down to APR where they really belong.  In doing
this, I am also able to remove a bunch of tests from the Apache configure
process.


git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@85487 13f79535-47bb-0310-9956-ffa450edef68
2000-06-09 21:19:52 +00:00
9803fc27fd Remove all occurances of strerror from Apache. ap_strerror works just
fine with standard errno values, and it is more portable.  This also allows
me to remove the check for strerror from Apache's configure script.


git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@85486 13f79535-47bb-0310-9956-ffa450edef68
2000-06-09 18:57:16 +00:00
f6e8fe6781 The prefork MPM now uses an APR lock for the accept() mutex.
It has not been getting a lock at all recently.

Note: The TPF and SGI folks need to each APR how to get the most
efficient lock on those platforms.  (For SGI it depends on whether
or not we're building for SMP.)


git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@85479 13f79535-47bb-0310-9956-ffa450edef68
2000-06-09 14:48:58 +00:00
cc8eeb2d84 Remove all occurances of gettimeofday. Replace it with ap_now which
provides the same function but works cross-paltform.


git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@85463 13f79535-47bb-0310-9956-ffa450edef68
2000-06-08 00:28:35 +00:00
825b977744 Remove the check for difftime, we aren't actually using it anywhere.
git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@85460 13f79535-47bb-0310-9956-ffa450edef68
2000-06-07 22:14:58 +00:00
28856f00f7 Change the mmap() feature test to check only for existence.
The autoconf-provided check used previously fails when the
platform doesn't support MAP_FIXED.  Apache doesn't use that
mmap() feature, so we don't want to require it.
Submitted by:	Greg Ames


git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@85457 13f79535-47bb-0310-9956-ffa450edef68
2000-06-07 12:36:51 +00:00
3c8e0cb24f Add the resource limiting code back to Apache 2.0. This only works on
Unix because I can't find any other platforms with rlimit.  If there are
other platforms that need this code, then some of the code needs to move.
This has just barely been tested, so it could probably use some good
testing.


git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@85449 13f79535-47bb-0310-9956-ffa450edef68
2000-06-06 21:45:16 +00:00
130e171d62 Increase the size of the buffer passed to ap_strerror(); I saw
truncation of a particularly long message on OS/390, and useful
info was past char 100.


git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@85443 13f79535-47bb-0310-9956-ffa450edef68
2000-06-06 14:51:06 +00:00
b7d113d2b8 PR:
Obtained from:
Submitted by:
Reviewed by:

  Migrate the 'real' pre_config hook update from winnt.c to mpm_winnt.c
  and correct newly required symbols for http_main.c


git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@85436 13f79535-47bb-0310-9956-ffa450edef68
2000-06-06 01:20:04 +00:00
bcbcf75254 Remove some #ifdef'ed code that doesn't make much sense
(what does the 2 signify?)

Reviewed by:	Ryan Bloom


git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@85433 13f79535-47bb-0310-9956-ffa450edef68
2000-06-05 23:58:34 +00:00
20f66c9f65 PR:
Obtained from:
Submitted by:
Reviewed by:

  Unbind the old main_win32.c code and rebind to the new mpm logic
  in the modules/mpm/winnt directory.  Includes some simple cleanups.

  The old sources in os/win32 will disappear at the end of this week.


git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@85430 13f79535-47bb-0310-9956-ffa450edef68
2000-06-05 22:39:03 +00:00
3983c8b6cd 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.  (Believe it or not, ANSI
says getenv() can do this.)

Some similar getenv() usage was left alone as it was specific to a
certain platform, and I assume that getenv() doesn't have the "issue"
on those platforms.


git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@85427 13f79535-47bb-0310-9956-ffa450edef68
2000-06-05 20:45:08 +00:00
eda6e3d23c Add server tokens back to 2.0. Also bring forward the change to allow
the PRODUCT_ONLY value for ServerTokens.  This is relatively clean,
all of the code lives in http_core, and when a module wants to add a token,
they just call ap_add_version_component from the post_config hook.  Actually
ap_add_version_component can be done anytime after the config has been
parsed, it just makes the most sense to do it in post_config IMHO.


git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@85426 13f79535-47bb-0310-9956-ffa450edef68
2000-06-05 19:44:02 +00:00
a6bc058266 Bring mpmt_beos up to date and allow it play nice with mpm_common.
git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@85394 13f79535-47bb-0310-9956-ffa450edef68
2000-06-03 16:58:08 +00:00
71d8e39db6 Modify the config order so that we read the config, process all EXEC_ON_READ
directives at the same time, run pre_config hook for all modules, and
then walk the tree.  This allows all modules to have a pre_config hook and
know that it will be called at a reasonable time.  I also made "Include"
an EXEC_ON_READ directive so that it is included in the tree properly.
This was required after the other changes that were made.


git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@85393 13f79535-47bb-0310-9956-ffa450edef68
2000-06-03 16:27:03 +00:00
730cec6b01 APACHE_XLATE, when doing translation that isn't single-byte-only
We must zap the Content-length header (if any).  Otherwise, the
browser will be seriously confused :)  The header is zapped in
ap_set_keepalive() right before we look for Content-length, transfer
encoding, HTTP level, etc. to decide, among other issues, whether or
not to turn on chunked encoding.  For HTTP 1.1, if we don't send
Content-length, we need to use chunked encoding, so we have to zap
the header before that decision.

Interestingly, in Russian Apache the Content-length header is
zapped after ap_set_keepalive() is called, so with HTTP 1.1 they
break the content-length-or-chunked rule.


git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@85379 13f79535-47bb-0310-9956-ffa450edef68
2000-06-02 15:55:20 +00:00
0cc2db9987 Add pre_config hooks back in for all modules. This is important for the
server tokens code that is coming soon.


git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@85378 13f79535-47bb-0310-9956-ffa450edef68
2000-06-02 15:33:20 +00:00
e9a493b9be Fix a SIGSEGV in ap_md5digest() (bad parms to ap_seek()). This is used
when you have ContentDigest enabled and we can't/don't mmap the file.


git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@85373 13f79535-47bb-0310-9956-ffa450edef68
2000-06-01 22:52:50 +00:00
9d1a70c8d5 Add support for the BeOS mpm. Also change some things to make it easier
for future additions.


git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@85372 13f79535-47bb-0310-9956-ffa450edef68
2000-06-01 18:42:04 +00:00