1
0
mirror of https://github.com/apache/httpd.git synced 2026-10-25 10:59:28 +03:00
Commit Graph

898 Commits

Author SHA1 Message Date
Roy T. Fielding
b17a3d6437 Removed the pointless ap_is_aborted macro.
git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@85626 13f79535-47bb-0310-9956-ffa450edef68
2000-06-20 04:22:39 +00:00
William A. Rowe Jr
ad6759a657 This Win32 patch adds the key HKCR/filetype/shell/execcgi/command as the
preference over the HKCR/filetype/shell/open/command for registry-based
  script execution, allowing two behaviors to coexist peacefully (the pipe
  based console behavior and the Win32 shell behavior.)

  The new ScriptInterpreterSource registry-strict directive dismisses bth
  the HKCR/filetype/shell/open/command and the shebang processing for
  administrators who are interested in explicit authorization of file type
  execution allowed in the context of subscriber-created scripts.  The net
  result: only HKCR/filetype/shell/execcgi/command processing is permitted.

  Docs to follow shortly.

PR:
Obtained from:
Submitted by:
Reviewed by:


git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@85625 13f79535-47bb-0310-9956-ffa450edef68
2000-06-20 04:15:02 +00:00
William A. Rowe Jr
a8dfe79493 This patch disallows bogus args to the ScriptInterpreterSource directive
PR:
Obtained from:
Submitted by:
Reviewed by:


git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@85624 13f79535-47bb-0310-9956-ffa450edef68
2000-06-20 03:53:55 +00:00
William A. Rowe Jr
fd3e806b92 This patch solves several specific issues:
1.3.x truncated any open/command arguments following the %1 arg.
           so this patch adds the char** arguments to several functions

     1.3.x did not expand environment strings (%userprofile% etc.)
           *) This patch may still not do so, if we are running with a
              subset of the 'normal' environment for security reasons.

     1.3.x did not parse the extension itself (eg. the .pl key itself)
           for the command, failing the 'named' type (eg. perlscript),
           so this patch first tests the 'named' key, then the .ext key

PR:
Obtained from:
Submitted by:
Reviewed by:


git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@85623 13f79535-47bb-0310-9956-ffa450edef68
2000-06-20 03:48:25 +00:00
Bill Stoddard
2e40320b53 Get rid of more compiler warnings.
git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@85618 13f79535-47bb-0310-9956-ffa450edef68
2000-06-19 18:11:47 +00:00
Ben Laurie
8da89daa47 More command handlers.
git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@85604 13f79535-47bb-0310-9956-ffa450edef68
2000-06-17 21:37:05 +00:00
Ben Laurie
c0a4cb7873 More consification, correct command initialisation.
git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@85599 13f79535-47bb-0310-9956-ffa450edef68
2000-06-17 16:29:53 +00:00
Ben Laurie
24878f1675 Fix warnings.
git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@85597 13f79535-47bb-0310-9956-ffa450edef68
2000-06-17 12:33:30 +00:00
Ben Laurie
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
Greg Stein
26b5a249bf reduce some code redundancy / simplify.
use a consistent var name for va_list


git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@85590 13f79535-47bb-0310-9956-ffa450edef68
2000-06-17 02:22:03 +00:00
Greg Stein
c7d0508e8a ap_bvputs() is a misnomer; introduce ap_bputstrs()
[todo: proxy and file_cache code should be updated for new name]
add ap_vbputstrs()
use ap_vbputstrs() from http_protocol.
use EOF in a few places, rather than the magic "-1" constant


git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@85589 13f79535-47bb-0310-9956-ffa450edef68
2000-06-17 01:29:29 +00:00
Jeff Trawick
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
Jeff Trawick
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
Ryan Bloom
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
Ryan Bloom
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
Ryan Bloom
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
dgaudet
a5cccc2b0b another iteration on the saferead/bhalfduplex stuff ... there was a
commented out bhalfduplex call which ryan missed; and which was a bit
more troublesome to solve with the iol interface.


git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@85494 13f79535-47bb-0310-9956-ffa450edef68
2000-06-10 02:06:02 +00:00
Ryan Bloom
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
William A. Rowe Jr
1ad75f891b PR:
Obtained from:
Submitted by:
Reviewed by:

  Hmmm... exporting a hook, very interesting :-)

  But the win32 build believes hooks are pretty uninteresting, mostly
  static __cdecl calls, so pound this declaration into NONSTD.


git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@85439 13f79535-47bb-0310-9956-ffa450edef68
2000-06-06 04:11:08 +00:00
Jeff Trawick
c84d2199e5 Port mod_mmap_static to 2.0. Make it go faster.
core: Export core_translate() as ap_core_translate() for use by
      mod_mmap_static.
Submitted by:	Greg Ames
Reviewed by:	Jeff Trawick


git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@85437 13f79535-47bb-0310-9956-ffa450edef68
2000-06-06 01:49:30 +00:00
Ryan Bloom
150c8bcd64 Fix a warning and a bug from the server_token commit.
Submitted by:	Eric Cholet <cholet@logilune.com>


git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@85431 13f79535-47bb-0310-9956-ffa450edef68
2000-06-05 22:57:20 +00:00
Ryan Bloom
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
Jeff Trawick
f2851fe62b EBCDIC fixes:
getline(): pick up a couple of Martin's changes which were missed when
  the 1.3.x EBCDIC fixes to this funciton were merged into 2.0

  ap_setup_client_block(): fix the logic that, based on the mime type,
  can decide not to translate the request body


git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@85406 13f79535-47bb-0310-9956-ffa450edef68
2000-06-05 02:26:52 +00:00
Jeff Trawick
43c2b45f38 EBCDIC: Rearrange calls to ap_checkconv() so that most handlers
won't need to call it.
Submitted by:	Greg Ames, Jeff Trawick


git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@85397 13f79535-47bb-0310-9956-ffa450edef68
2000-06-03 22:41:01 +00:00
Ryan Bloom
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
Ryan Bloom
41ddd98b9b Argh, bhalfduplex is implemented, but it doesn't work for this case, so put
the TODO back in.


git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@85383 13f79535-47bb-0310-9956-ffa450edef68
2000-06-02 18:40:44 +00:00
Ryan Bloom
f374baf4da Remove a TODO. Actually just putting back a call to ap_bhalfduplex now
that the function exists again.


git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@85381 13f79535-47bb-0310-9956-ffa450edef68
2000-06-02 17:31:47 +00:00
Jeff Trawick
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
Jeff Trawick
5d2faa8caa fix missed change to comment
git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@85376 13f79535-47bb-0310-9956-ffa450edef68
2000-06-02 13:38:04 +00:00
Jeff Trawick
366bc3c630 APACHE_XLATE: in ap_send_error_response(), move the setting
of the translation handle to before we process ErrorDocument
strings.  The previous placement of this logic only handled
the hard-coded response documents.

When ErrorDocument specifies a redirection, we don't get here.
When the error response is headers only, we don't need to set
the handle for content.  Thus, all paths through
ap_send_error_response() should be handled now.


git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@85356 13f79535-47bb-0310-9956-ffa450edef68
2000-05-31 01:35:46 +00:00
Jeff Trawick
b7685b72c1 Ensure that the proper translation handle (if any) is used when
sending the canned response document to the client.  Otherwise, the
client may get garbage depending on the translation in effect.


git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@85350 13f79535-47bb-0310-9956-ffa450edef68
2000-05-30 14:20:46 +00:00
William A. Rowe Jr
3f29977506 PR:
Obtained from:
Submitted by:
Reviewed by:

  Reverse out additional linkage argument from DECLARE_HOOK
  and IMPLEMENT_HOOK macros.


git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@85319 13f79535-47bb-0310-9956-ffa450edef68
2000-05-27 22:53:48 +00:00
William A. Rowe Jr
da493b8be1 PR:
Obtained from:
Submitted by:
Reviewed by:

  Reverse out all _EXPORT_VAR changes back to their original _VAR_EXPORT
  names for linkage (API_, CORE_, and MODULE_).


git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@85318 13f79535-47bb-0310-9956-ffa450edef68
2000-05-27 22:40:44 +00:00
William A. Rowe Jr
86e2a18f2a This patch corrects the issues from the AP_EXPORT and linkage
specification arguments to the ap_hooks.h declarations.  As with
  the APR_ and AP_ patches, API_VAR_EXPORT becomes API_EXPORT_VAR,
  and MODULE_VAR_EXPORT becomes MODULE_EXPORT_VAR.

  I will be happy to revert the inclusion of ap_config.h from 
  httpd.h if this bothers anyone.  More individual modules need
  to be patched if we do so.

  The API_EXPORTs all moved into central storage in the ap_config.h
  header.  Without WIN32 or API_STATIC compile time declarations, 
  these macros remain no-ops.

  This patch also moves the following data from http_main to http_config:

    const char *ap_server_argv0;
    const char *ap_server_root;
    ap_array_header_t *ap_server_pre_read_config;
    ap_array_header_t *ap_server_post_read_config;
    ap_array_header_t *ap_server_config_defines;

  And the following variables had already moved into ap_hooks.c:

    ap_pool_t *g_pHookPool;  (initialized now in http_config)
    int g_bDebugHooks;                   (out of http_config)
    const char *g_szCurrentHookName;     (out of http_config)

  The changes to http_main.c are in preparation for that module to
  move out to a seperate .exe for win32.  Other platforms will be
  unaffected, outside of these changes.


git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@85309 13f79535-47bb-0310-9956-ffa450edef68
2000-05-27 05:28:02 +00:00
Jeff Trawick
78aba7227f APACHE_XLATE, CHARSET_EBCDIC stuff:
Provide new function ap_set_content_xlate() to simplify what needs
to be done to set up translation of content.  Use it where appropriate.

With this change, EBCDIC logic was tweaked so that ap_checkconv() does
not overlay a translation handle previously stored (e.g., by a module)
unless it is turning translation off.  Unless ap_checkconv() determines
that translation is inappropriate, it should leave the translation handle
alone.


git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@85296 13f79535-47bb-0310-9956-ffa450edef68
2000-05-25 20:51:25 +00:00
Ryan Bloom
9c112e7c72 Implement saferead in Apache 2.0. This has had minimal testing, and it
seems to work, but only really hammering on it will tell for sure.


git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@85289 13f79535-47bb-0310-9956-ffa450edef68
2000-05-24 19:19:20 +00:00
Jeff Trawick
4636c1e3c1 Fix some bugs in the use of APACHE_XLATE vs. CHARSET_EBCDIC
which prevented building with APACHE_XLATE on an ASCII machine.


git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@85247 13f79535-47bb-0310-9956-ffa450edef68
2000-05-18 19:54:44 +00:00
Jeff Trawick
d83c61bf73 include translation information in the request_rec;
finish converting ap_bsetflag(B_ASCII2EBCDIC or B_EBCDIC2ASCII) to
ap_bsetopt(BO_WXLATE or BO_RXLATE)


git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@85238 13f79535-47bb-0310-9956-ffa450edef68
2000-05-17 03:19:38 +00:00
Ryan Bloom
66826a60ab Commit the EXEC_ON_READ changes. This allows modules to hook into the
config file read phase.  Full details are in the CHANGES file blurb.
Examples to see how this should be used are provided for <IfModule>
<IfDefine> LoadModule, AddModule and ClearModuleList expect docs in the
next day or two.


git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@85217 13f79535-47bb-0310-9956-ffa450edef68
2000-05-15 19:21:40 +00:00
Jeff Trawick
7387a849be util_ebcdic.h, util_ebcdic.c, http_core.c:
tweak ap_checkconv() for 2.0
buff.c:
  fix typo in comment
util_md5.h:
  change CHARSET_EBCDIC to APACHE_XLATE
util_script.c:
  APR-ize some character set conversion (EBCDIC only)


git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@85214 13f79535-47bb-0310-9956-ffa450edef68
2000-05-15 17:51:23 +00:00
Jeff Trawick
5e0e87ef86 EBCDIC: Update util_md5.c routines to use APR-ized ap_MD5*()
routines.  As in 1.3, ap_md5digest() has a different function
signature when CHARSET_EBCDIC is defined :(


git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@85182 13f79535-47bb-0310-9956-ffa450edef68
2000-05-11 02:32:05 +00:00
Jeff Trawick
34ecfec8d0 Pick up various EBCDIC fixes from 1.3 (from Martin Kraemer and Oliver
Reh originally according to the change log).


git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@85176 13f79535-47bb-0310-9956-ffa450edef68
2000-05-10 19:07:43 +00:00
Doug MacEachern
6644b34387 add AP_ prefix to *HOOK* macros
git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@85045 13f79535-47bb-0310-9956-ffa450edef68
2000-04-26 07:14:39 +00:00
Jeff Trawick
429098f3b4 Port a 1.3 EBCDIC fix to 2.0:
This is a port of my 1.3 patch which allows error response strings to be
translated from ebcdic to ascii.  This bug is triggered by trying to
access a non-existant .gif for example.  The content type starts out
being image/gif but is switched by error processing to text/html.
Without this patch, ap_checkconv() is called too early (before the error
processing), so the ebcdic conversion flag gets turned off and the
eventual "404 Not Found" error response is sent to the browser still in
ebcdic.  Not very pretty.

Submitted by:	Greg Ames
Reviewed by:	Jeff Trawick


git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@85040 13f79535-47bb-0310-9956-ffa450edef68
2000-04-25 23:19:15 +00:00
Greg Stein
b97ec4c63a drop the "container" param from ap_walk_config(). callers should simply
pass the first child, rather than expecting the walker to do it.
remove the nasty "static" variable inside ap_walk_config(). it now walks the
    tree provided with no worries about bumping up/down levels.
minor refactor between ap_walk_config() and ap_walk_config_sub() to clean up
    some logic and clarify the code.


git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@85025 13f79535-47bb-0310-9956-ffa450edef68
2000-04-24 12:27:02 +00:00
Greg Stein
c2c13c67c3 clean up cmd_parms: config_file is no longer valid; end_token is bogus;
add directive.
move configfile_t and functions from httpd.h to http_config.h
new signature for ap_build_config() (since config_file removed from cmd_parms)
add "data" to ap_directive_t for future use by modules. add filename.
syntax checking for section-close directives: a section-open must exist,
    the section-close must be </FOO>, and the open/close must match.
    the file as a whole must be properly balanced (issue errors for each
    unmatched section-open).
</FOO> command_rec structures are obsolete. Remove from http_core.c.
do not store </FOO> directives in the config tree.
clean out section-close logic from http_core.c (and old, related comments)
<Limit> and <LimitExcept> must walk their children.
new mechanism in ap_check_cmd_context() for testing enclosure in a
    Directory/Location/File: find_parent()
<IfModule> and <IfDefine> must pass cmd->context when walking the children
several places: we had a walk followed by ap_get_module_config(). that
    assumed the walk would create a config that we could fetch, which is not
    true -- it is possible that the children are all from other modules
    (e.g. the <Files> section in httpd.conf-dist has no "core" directives).
    using ap_set_config_vectors() ensures we get a structure, and it returns
    it to us.
    [ note: when we had </Directory> (and friends) in the tree, the config
      would get created; removing the directive removed the config; this
      was a bitch to track down :-) ]


git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@85024 13f79535-47bb-0310-9956-ffa450edef68
2000-04-24 12:00:43 +00:00
Greg Stein
059ab7a790 handle error messages during building and processing of the configuration.
add missing return statements, wrap some lines, remove unused vars.
move syntax error reporting and exit(1) back to the right place (to be
    fixed in a future pass; the exit() is inappropriate for parsing
    .htaccess files).


git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@85023 13f79535-47bb-0310-9956-ffa450edef68
2000-04-24 08:35:56 +00:00
Jeff Trawick
3548f16478 Fix some problems on systems where EAGAIN != EWOULDBLOCK (e.g., OS/390).
ap_canonical_errror() for Unix now maps EWOULDBLOCK to EAGAIN/APR_EAGAIN
when appropriate so that the changes here (as well as bjh's changes from a
few days ago) to call ap_canonical_error() before comparing with EWOULDBLOCK
will work on Unix as well.


git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@85019 13f79535-47bb-0310-9956-ffa450edef68
2000-04-23 13:22:08 +00:00
Roy T. Fielding
7cbb1cb050 Finished move of ap_md5 routines to apr_md5. Removed ap_md5.h.
Replaced more magic numbers with MD5_DIGESTSIZE.  Yuck.

Submitted by:	William Rowe, Roy Fielding


git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@85017 13f79535-47bb-0310-9956-ffa450edef68
2000-04-23 02:32:58 +00:00
Ryan Bloom
ab31187b8d Parse the config tree, instead of the config file. This is a first step there
are some big improvements to be made to this code, but this works now, and
it is a first step.


git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@85015 13f79535-47bb-0310-9956-ffa450edef68
2000-04-22 22:54:30 +00:00