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
"</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
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
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
- 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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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