1
0
mirror of https://github.com/apache/httpd.git synced 2026-10-23 22:49:01 +03:00
Commit Graph

592 Commits

Author SHA1 Message Date
Ruediger Pluem
5ebab647ff * Prevent running through the error stack by returning OK and setting r->status
accordingly if ret is HTTP_NOT_MODIFIED as this breaks mod_cache validating a
  stale entity.


git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@541990 13f79535-47bb-0310-9956-ffa450edef68
2007-05-27 13:57:46 +00:00
Nick Kew
d09a836fb0 PR#39710 - badly broken errordocuments for CGI
We've just had another duplicate report of this on bugzilla.
We've got a simple patch, and people asking WTF is going on
with inaction.  Noone seems clear on why the patch shouldn't
be applied (http://marc.info/?l=apache-httpd-dev&m=117760311129386&w=2).


git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@541926 13f79535-47bb-0310-9956-ffa450edef68
2007-05-26 18:50:18 +00:00
Guenter Knauf
47fff8d790 removed obsolete -prefix; minor cosmetic changes.
git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@521264 13f79535-47bb-0310-9956-ffa450edef68
2007-03-22 13:45:54 +00:00
Jeff Trawick
876e10d0ad Update the hash table of active script pids even on paths where a
script process wasn't created (storing 0 for the pid in that case).
Otherwise, the remembered pid is that of the last successful script
execution for this hash key.

Prior to this patch, the wrong process could be terminated in
rare circumstances:

- A CGI process with pid 10101 is forked for connection 99.

- After the CGI exits and some time elapses, some other process gets 
  pid 10101. (Connection 99 hasn't handled another CGI request yet.)

- The next time connection 99 has a CGI process, the fork()
  or other early setup fails, so no CGI process is created.

- The remembered pid for connection 99 is still 10101.  It
  gets terminated (subject to permissions).


git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@503340 13f79535-47bb-0310-9956-ffa450edef68
2007-02-04 00:57:03 +00:00
Bradley Nicholes
ba4156cadd Implement a BASEDIR build environment variable to allow the NetWare build to relocate the install files
Submitted by: Guenter Knauf <fuankg apache org>

git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@502051 13f79535-47bb-0310-9956-ffa450edef68
2007-01-31 23:55:44 +00:00
William A. Rowe Jr
1fc3b01590 Embed the .manifest files of all httpd binaries as a post-build
operation.  This ensures the exported (Studio 97 generated) .mak
files create a usable Apache directly from the VC 8 (Studio 2005)
command line environment.



git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@495126 13f79535-47bb-0310-9956-ffa450edef68
2007-01-11 05:37:20 +00:00
Garrett Rooney
d20ce0c6a1 Follow up to r451006, use APR_STATUS_IS_TIMEUP instead of comparing against
APR_TIMEUP directly.

Reported by: jorton

* modules/generators/mod_cgi.c
  (cgi_handler): Use APR_STATUS_IS_TIMEUP.

* modules/generators/mod_cgid.c
  (cgid_handler): Ditto.


git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@451289 13f79535-47bb-0310-9956-ffa450edef68
2006-09-29 13:48:09 +00:00
Ruediger Pluem
faacd788d1 * Notice that reading of the request entity body failed due to a timeout
git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@451006 13f79535-47bb-0310-9956-ffa450edef68
2006-09-28 20:15:42 +00:00
Nick Kew
8c2b72b53c PR 31759 (mutated) - reported by Jo Rhett
Don't return apr_status_t error value from input filter chain.


git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@442758 13f79535-47bb-0310-9956-ffa450edef68
2006-09-12 23:44:12 +00:00
Jeff Trawick
743a621e8d Replace ap_get_server_version with ap_get_server_banner() and
ap_get_server_description().

High-level summary:

The full server version information is now included in the error log at
startup as well as server status reports, irrespective of the setting
of the ServerTokens directive.

Third-party modules must now use ap_get_server_banner() or 
ap_get_server_description() in place of ap_get_server_version().



git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@440337 13f79535-47bb-0310-9956-ffa450edef68
2006-09-05 13:08:15 +00:00
Chris Darroch
e69f467709 Introduce a check_config phase between pre_config and open_logs,
to allow modules to review interdependent configuration directive
values and adjust them while messages can still be logged to the
console.

The open_logs phase is already used somewhat for this purpose by
certain MPMs (winnt, prefork, worker, and event) but only by forcing
their functions ahead of the core ap_open_logs() function, and
since this phase runs after the ap_signal_server function during startup,
it can not be used to generate messages on the console when restarting.

Add the check_config phase to mod_info and mod_example.

Handle relevant MPM directives during this phase and format messages
for both the console and the error log, as appropriate.  Bounds and sanity
checks on the values of the MPM directives are handled in sequence in
this phase instead of in the various directive handling functions, since
those functions (e.g., set_max_clients()) may not be called at all if their
directives do not appear in the configuration files, and even if they
are called, there is no guarantee that this will occur in any particular
order.

Remove from the worker and event MPMs the code in the pre_config phase
that alters the configuration node tree by re-ordering ThreadsPerChild
ahead of MaxClients.  This code is effective but insufficient; for
example, if ServerLimit follows MaxClients, the test against server_limit
in set_max_clients() is invalid.  (In practice, this only results in
incorrect or absent warnings on the console, because server_limit is
set to its configured value when the main loop re-runs the configuration
process.)

Prevent ap_threads_per_child from exceeding thread_limit in the
winnt, worker, and event MPMs.  This situation could occur if
ThreadsPerChild was not specified in the configuration files and
ThreadLimit was set to a value smaller than DEFAULT_THREADS_PER_CHILD,
because set_threads_per_child() would never be called and therefore
its bounds check against thread_limit would not be performed.

Remove from the winnt, prefork, worker, and event MPMs the
changed_limit_at_restart flag.  Set the first_server_limit and
first_thread_limit values during the first execution of the check_config
function, and use them to detect changes to ServerLimit and ThreadLimit
across restarts and issue appropriately formatted warnings.  Remove the
comments about the error log being a "bit bucket"; this was true when
the code was originally committed in r92530 but that was due to a bug
fixed in r92769.

Be consistent about setting all MPM configuration directive values in the
pre_config phase.

Rephrase and reformat the console and log file messages relating to
MPM configuration directives to be consistent across all MPMs.  Use
briefer messages when logging to the error log than to the console.

Update miscellaneous stale comments and messages (e.g., reference to
daemons_min_free in worker and event MPMs, "prefork open_logs" in
winnt MPM, and StartServers in netware MPM).

The winnt, netware, beos, and mpmt_os2 MPMs should be tested by developers
with access to those platforms, especially the winnt MPM, which has
unique logic with respect to distinguishing between parent and child
processes during the configuration phases.

Update the English documentation for the worker MPM's ThreadsPerChild
directive, which no longer needs to precede other MPM directives in the
configuration files if it has a non-default value.  The German (.de) and
Japanese (.ja) translations should be updated by developers fluent in
those languages.



git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@431460 13f79535-47bb-0310-9956-ffa450edef68
2006-08-14 22:55:45 +00:00
Roy T. Fielding
de659cbed0 update license header text
git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@420983 13f79535-47bb-0310-9956-ffa450edef68
2006-07-11 20:33:53 +00:00
William A. Rowe Jr
6df9b82d20 Revert Revision 397647
While it solves the studio 2005 (we desire this), it breaks
the studio 6 packaging (we require this).  Discussion on list
of practical solutions.

git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@419644 13f79535-47bb-0310-9956-ffa450edef68
2006-07-06 18:36:23 +00:00
Joe Orton
c13f8dd6eb * server/core.c (default_handler): Use apr_brigade_insert_file() to
append the file to the brigade.

* server/protocol.c (ap_send_fd),
modules/proxy/mod_proxy_http.c (spool_reqbody_cl), 
modules/cache/mod_mem_cache.c (recall_body),
modules/cache/mod_disk_cache.c (recall_body),
modules/mappers/mod_negotiation.c (handle_map_file),
modules/generators/mod_asis.c (asis_handler),
modules/dav/fs/repos.c [DEBUG_GET_HANDLER] (dav_fs_deliver),
modules/arch/win32/mod_isapi.c (ServerSupportFunction): Likewise.


git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@414238 13f79535-47bb-0310-9956-ffa450edef68
2006-06-14 13:16:29 +00:00
Joe Orton
0552ebe483 * modules/generators/mod_autoindex.c (output_directories): Escape
filename in non-FancyIndexing case.

PR: 38910
Submitted by: Robby Griffin <rmg terc.edu>


git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@407265 13f79535-47bb-0310-9956-ffa450edef68
2006-05-17 14:23:41 +00:00
William A. Rowe Jr
b2820e8da8 This resource /D syntax was pretty horridly imported into VS 2005,
change the quotation to ensure a peaceful transition to sln/vcproj files.

git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@397647 13f79535-47bb-0310-9956-ffa450edef68
2006-04-27 21:41:29 +00:00
William A. Rowe Jr
f65c47bd75 Remove all /machine:I386 references, these are getting in the way
of switching linkers from the x86 (default linker) to x64 or other
  possible target platforms.  (Also, this commit cleans up lingering
  /GX switches from the 'BASE' options that are supposed to be unused).

git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@397407 13f79535-47bb-0310-9956-ffa450edef68
2006-04-27 05:30:39 +00:00
William A. Rowe Jr
663687ae8e s|/GX |/EHsc | because they were always synonyms, and Visual Studio
2005 edition complains bitterly and loudly that /GX is deprecated.

git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@395419 13f79535-47bb-0310-9956-ffa450edef68
2006-04-19 22:51:02 +00:00
William A. Rowe Jr
862d0e231e Remove a host of dependencies upon awk, using the same template for
nearly every .rc compilation (giving the output .res file a different
  name for each component).  Adds AP_SERVER_BASEPROJECT to ap_revision.h
  so we can display the proper name of "Apache HTTP Server" as opposed
  to AP_SERVER_BASEPRODUCT (which is, and should remain, simply "Apache"
  for the server string tokens.)



git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@395418 13f79535-47bb-0310-9956-ffa450edef68
2006-04-19 22:47:49 +00:00
Colm MacCarthaigh
dd95d7c37c Update the copyright year in all .c, .h and .xml files
git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@395228 13f79535-47bb-0310-9956-ffa450edef68
2006-04-19 12:11:27 +00:00
Jim Jagielski
08c97ba290 No functional change: remove "internal" tab spacing/formatting.
git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@345053 13f79535-47bb-0310-9956-ffa450edef68
2005-11-16 16:31:25 +00:00
Jim Jagielski
5061d9fa92 No functional Change: Removing trailing whitespace. This also
means that "blank" lines consisting of just spaces or
tabs are now really blank lines


git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@332306 13f79535-47bb-0310-9956-ffa450edef68
2005-11-10 15:11:44 +00:00
Jim Jagielski
5d2fae4818 No functional change: simple detabbing of indented code.
git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@332305 13f79535-47bb-0310-9956-ffa450edef68
2005-11-10 15:05:51 +00:00
Roy T. Fielding
16ef40e5ff Remove CGI block on OPTIONS method so that scripts can
respond to OPTIONS directly rather than via server default.

PR: 15242
Reviewed-by: Paul Querna, Andre Malo, William A. Rowe, Jr.



git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@326255 13f79535-47bb-0310-9956-ffa450edef68
2005-10-18 21:29:43 +00:00
Justin Erenkrantz
c2e9d62353 * modules/generators/config5.m4: Improve Solaris 10 check in mod_cgid to
know about the now-released patches that fix the AF_UNIX bugs.


git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@326018 13f79535-47bb-0310-9956-ffa450edef68
2005-10-18 03:25:49 +00:00
Colm MacCarthaigh
7bd608a78e Whitespace fixes.
git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@293316 13f79535-47bb-0310-9956-ffa450edef68
2005-10-03 11:38:32 +00:00
Jim Jagielski
d81de0d9b3 Add ap_append_pid(); This is performed enough to warrant
a function I think, especially with the fact that
the mapping of getpid() to APR_PID_T_FMT isn't
consistant in some areas. 


git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@265506 13f79535-47bb-0310-9956-ffa450edef68
2005-08-31 15:22:08 +00:00
Justin Erenkrantz
7c8c772196 mod_cgid: Refuse to work on Solaris 10 due to OS bugs.
PR: 34264


git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@264866 13f79535-47bb-0310-9956-ffa450edef68
2005-08-30 21:21:18 +00:00
Colm MacCarthaigh
19a0d050b0 If uid_t and gid_t are unsigned on a platform (hurd, for example), using -1
may cause a compiler warning. 



git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@264788 13f79535-47bb-0310-9956-ffa450edef68
2005-08-30 14:28:48 +00:00
Colm MacCarthaigh
c8e6fa78af Fix PR36410; Change how the get_suexec_identity hook is handled by CGID.
Instead of using mod_userdir and mod_suexec specific hacks, we now run the hook
on the httpd side of the handler. 

If this is NULL, we pass on a magic empty_ugid constant, otherwise pass on the
real ugid.

On the cgid side of the equation, we add our own hook, with REALLY_FIRST, and
then order the hooks. This ensures that cgid's doer runs before any other
registered get_suexec_identity doers.

We use cgid's request config to store the ugid. If ugid == empty_ugid, we DON'T
call ap_os_create_privileged_process, because our doer would return the magic
empty_ugid constant. Having the doer return NULL is no good, because then
userdir and mod_suexec's doers would be called. Instead, we call plain old
apr_proc_create(). 



git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@264759 13f79535-47bb-0310-9956-ffa450edef68
2005-08-30 11:26:45 +00:00
William A. Rowe Jr
f87b4c1af1 Correct mod_cgid's argv[0] so that the full path can be delved by the
invoked cgi application, to conform to the behavior of mod_cgi.

PR: 34542
Reviewed by: Andre, OtherBill
Submitted by: Pradeep Kumar S <pradeep.smani gmail.com>



git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@264623 13f79535-47bb-0310-9956-ffa450edef68
2005-08-29 20:12:43 +00:00
Ian Holsman
8c1e315d3f Doxygen fixup / cleanup
submited by: Neale Ranns neale ranns.org
reviewed by: Ian Holsman



git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@263931 13f79535-47bb-0310-9956-ffa450edef68
2005-08-28 23:03:59 +00:00
Colm MacCarthaigh
de0b459ab0 CGId keeps a copy of the listening sockets open, which interferes with a
graceful shutdown/start. Close the listening sockets on cgid start.



git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@241815 13f79535-47bb-0310-9956-ffa450edef68
2005-08-27 23:05:42 +00:00
Colm MacCarthaigh
b379e699a4 Append the .PID to the ScriptSock filename. This change ensures that multiple
running instances of httpd will not clobber each others script sockets. 

Because a different socket will be created for each instance, this change also
unlinks the script-socket on exit, to prevent pollution. 

unlink() happens from within the parent process, since the change in userid's
means the cgid process likely won't have the correct permissions.



git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@240044 13f79535-47bb-0310-9956-ffa450edef68
2005-08-25 11:51:24 +00:00
Colm MacCarthaigh
e3d4e1fe50 nit: Consistently CamelCase "ScriptSock".
git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@240043 13f79535-47bb-0310-9956-ffa450edef68
2005-08-25 10:56:12 +00:00
Andreas Steinmetz
aec1dab812 fix 64bit build warnings
git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@239423 13f79535-47bb-0310-9956-ffa450edef68
2005-08-23 16:06:24 +00:00
Justin Erenkrantz
7b005585df Fix bug where non-200 CGI responses will not send anything down filter chain.
This is most notable when mod_cache is used.  This has been used in production
on wiki.apache.org for a while now.

* modules/generators/mod_cgi.c
  (cgi_handler): When a non-zero value is returned by scan_script, set the
  status field and ensure that we have an EOS to send down the filer stack.


git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@231167 13f79535-47bb-0310-9956-ffa450edef68
2005-08-10 04:32:13 +00:00
Jeff Trawick
badfb79c67 mod_cgid: Fix buffer overflow processing ScriptSock directive.
Submitted by:        Steve Kemp <steve steve.org.uk>
Reviewed/tweaked by: trawick



git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@192995 13f79535-47bb-0310-9956-ffa450edef68
2005-06-22 20:54:28 +00:00
Joe Orton
329615343c * modules/generators/mod_cgi.c (cgi_bucket_read): Log a specific error
if a timeout occurs from a blocking read; more helpful than a generic
"apr_bucket_read failed" error from some higher-up filter.


git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@189560 13f79535-47bb-0310-9956-ffa450edef68
2005-06-08 08:50:19 +00:00
William A. Rowe Jr
20d06d7a06 Reintroduce stack frame construction with /Oy- (removal was implied by /O2).
This makes binaries far easier to debug, during operation and for post-crash
  .dmp analysis.  Do not alter /Gs optimizations per brane.

Reviewed by: stoddard, brane

git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@170253 13f79535-47bb-0310-9956-ffa450edef68
2005-05-15 19:11:57 +00:00
Paul Querna
19c2fda63f Show the Quick Handlers in mod_info. Commit it to trunk, instead of the
Listen-Protocol Branch that my -dev workspace was using. 


git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@169789 13f79535-47bb-0310-9956-ffa450edef68
2005-05-12 07:45:39 +00:00
Paul Querna
da9a8de753 Add AP_INIT_TAKE_ARGV. There can be some inconsistent results because of the behavoir of ap_getword_conf. Do not rely upon any last argument that is "". If the argument is in the middle of the line, it should work correctly.
This is updated from the version sent to dev@httpd to fix the behavoir with 0 arguments.

* include/http_config.h: minor MMN bump for the new interface.
* modules/generators/mod_autoindex.c: Migrate IndexOptions to the new ARGV command type.


git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@168202 13f79535-47bb-0310-9956-ffa450edef68
2005-05-04 22:23:00 +00:00
André Malo
5071a0b5ae svn:eol-style = native
git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@160924 13f79535-47bb-0310-9956-ffa450edef68
2005-04-11 16:49:14 +00:00
Bradley Nicholes
564aeef123 Rethink the built-in vs shared modules for NetWare. Reposition mod_asis, mod_actions, mod_cgi, mod_imagemap, mod_userdir and mod_autoindex as shared rather than built-in.
git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@160625 13f79535-47bb-0310-9956-ffa450edef68
2005-04-08 22:03:36 +00:00
Paul Querna
49ff90cbe3 Add ap_mpm_is_experimental and ap_mpm_is_threaded. Use these instead of checking for specific MPMs.
git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@156574 13f79535-47bb-0310-9956-ffa450edef68
2005-03-08 22:40:33 +00:00
Paul Querna
73f6528c2b Since prefork is currently the only non-threaded MPM, check for it, instead of testing for each threaded MPM type. This enables mod_cgid on the Event MPM by default, which is a "Good Thing"(tm).
git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@156572 13f79535-47bb-0310-9956-ffa450edef68
2005-03-08 22:06:59 +00:00
Jeff Trawick
3e14f16867 worker MPM/mod_status: Support per-worker tracking of pid and
generation in the scoreboard so that mod_status can accurately
represent workers in processes which are gracefully terminating.

New child processes with worker MPM can take over slots of
individual threads within gracefully terminating processes.
Sometimes this is a problem (too many of these gracefully
terminating processes), so it is helpful to have mod_status
provide the information required to recognize these processes.


git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@156274 13f79535-47bb-0310-9956-ffa450edef68
2005-03-05 20:06:55 +00:00
Justin Erenkrantz
905cdf9f0b Update copyright year to 2005 and standardize on current copyright owner line.
git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@151408 13f79535-47bb-0310-9956-ffa450edef68
2005-02-04 20:28:49 +00:00
William A. Rowe Jr
d962fcfc8b FINALLY Correct ap_http_method()! It is NOT a method, it's a SCHEME!
Bumped mmn, and ap module cookie, for this function rename.

  It's not a deprecation, as ap_http_method would be a lovely function
  name sometime in the future: to determine what the function name implies.


git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@123882 13f79535-47bb-0310-9956-ffa450edef68
2005-01-02 05:33:44 +00:00
Bradley Nicholes
804ff9ab22 Allow APR to exist and build outside of the httpd/srclib file structure
git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@106975 13f79535-47bb-0310-9956-ffa450edef68
2004-11-30 00:12:39 +00:00