1. 01 Jan, 1999 1 commit
    • Ralf S. Engelschall's avatar
      · d0985383
      Ralf S. Engelschall authored
      Fix a few minor inconsistencies related to directive scoping
      ============================================================
      
      1. httpd -h
      
      Under "httpd -h" one gets a nice English description in which scope a
      directive can occur. But we talk here only about <Directory> and <Location>,
      although <Files> is treated the same (also with `cmd->override ==
      ACCESS_CONF|OR_ALL'). So I think it's correct to also list <Files>, too.
      
      2. Used scope variants
      
      Currently we have 203 directives and they use the following scopes (the
      numbers in parenthesis gives the number of directives using a particular
      scope):
      
         RSRC_CONF (106)
         RSRC_CONF|ACCESS_CONF (5)
         RSRC_CONF|ACCESS_CONF|OR_ALL (1)            <--
         RSRC_CONF|ACCESS_CONF|OR_AUTHCFG (2)        <--
         ACCESS_CONF (5)
         OR_AUTHCFG (20)
         OR_LIMIT (3)
         OR_OPTIONS (4)
         OR_FILEINFO (21)
         OR_INDEXES (23)
         OR_ALL (13)
      
      This is well spreaded and sounds reasonable. Except for
      the two classes:
      
         RSRC_CONF|ACCESS_CONF|OR_ALL (1)
         RSRC_CONF|ACCESS_CONF|OR_AUTHCFG (2)
      
      The first one is just a syntax overkill. It means only OR_ALL, because OR_ALL
      includes (implicitly) already RSRC_CONF and ACCESS_CONF. So, when we fix
      this to OR_ALL we get:
      
         RSRC_CONF (106)
         RSRC_CONF|ACCESS_CONF (5)
         RSRC_CONF|ACCESS_CONF|OR_AUTHCFG (2)        <--
         ACCESS_CONF (5)
         OR_AUTHCFG (20)
         OR_LIMIT (3)
         OR_OPTIONS (4)
         OR_FILEINFO (21)
         OR_INDEXES (23)
         OR_ALL (14)
      
      The remaining RSRC_CONF|ACCESS_CONF|OR_AUTHCFG is used by two directives:
      UseCanonicalName and ContentDigest. Two not too old directives which were
      added mostly at the same time. They're are implemented the same way.
      But the scope looks incorrect. Why?
      
      First, it's again syntax overkill, ok. We can reduce it to
      RSRC_CONF|OR_AUTHCFG. But when we compare it to all other used scopes, it
      looks very inconsistent. No other of the 203 directives want to be applicable
      in such a non-orthoginal scope: on the first hand inside the AuthConfig scope
      (which means .htaccess under "AllowOverride AuthConfig" plus _INSIDE_ of
      <Directory>/<Location>/<Files> sections in httpd.conf only) and on the other
      hand also in RSRC_CONF (which means _OUTSIDE_ of
      <Directory>/<Location>/<Files> sections in httpd.conf only). Sure, finally
      it's everywhere in httpd.conf plus .htaccess under AuthConfig scope.  But it's
      not intuitive: Directives which want to be applicable in such a total scope
      use OR_OPTIONS, OR_FILEINFO or OR_INDEXES. And when we think about
      UseCanonicalName and ContentDigest we find out that they belongs more to
      Options, XBitHack and CheckSpelling than to any AuthXXXX directives.
      
      So, I propose to change the scope of those two directives to OR_OPTIONS.  It
      makes no big difference, of course. It still is useable everwhere inside
      httpd.conf, but inside .htaccess now under Options instead of AuthConfig.  And
      it both belongs to the more correct group of directives and makes our list of
      used scopes more consistent.
      
      With the above patch be get this consistent scope-list:
      
         RSRC_CONF (106)
         RSRC_CONF|ACCESS_CONF (5)
         ACCESS_CONF (5)
         OR_AUTHCFG (20)
         OR_LIMIT (3)
         OR_OPTIONS (6)
         OR_FILEINFO (21)
         OR_INDEXES (23)
         OR_ALL (14)
      
      When we take into account that _theoretically_ there are a lot more variants
      of these or'ed values are possible, this list is _VERY_ clean. Actually it's
      the most clean variant I can think of (except for the fact that the whole
      mechanism is a horrible mess ;-)...
      
      
      git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/branches/1.3.x@82559 13f79535-47bb-0310-9956-ffa450edef68
      d0985383
  2. 31 Dec, 1998 4 commits
  3. 30 Dec, 1998 6 commits
  4. 29 Dec, 1998 3 commits
    • dgaudet's avatar
    • Ken Coar's avatar
      · bf4f9159
      Ken Coar authored
      	Add a note about the default autoindex order patch available for
      	review.
      
      
      git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/branches/1.3.x@82545 13f79535-47bb-0310-9956-ffa450edef68
      bf4f9159
    • Roy T. Fielding's avatar
      Major overhaul of mod_negotiation.c. · 1f3bb44d
      Roy T. Fielding authored
        - cleanups to mod_negotiation comments and code structure
        - made compliant with HTTP/1.1 proposed standard (rfc2068) and added
          support for everything in the upcoming HTTP/1.1
          revision (draft-ietf-http-v11-spec-rev-06.txt).
            - language tag matching also handles tags with more than 2
              levels like x-y-z
            - empty Accept, Accept-Language, Accept-Charset headers are
              processed correctly; previously an empty header would make all
              values acceptable instead of unacceptable.
            - allowed for q values in Accept-Encoding
        - added support for transparent content negotiation (rfc2295 and
          rfc2296) (though we do not implement all features in these drafts,
          e.g. no feature negotiation).  Removed old experimental version.
        - implemented 'structured entity tags' for better cache correctness
          (structured entity tags ensure that caches which can deal with Vary
          will (eventually) be updated if the set of variants on the server
          is changed)
            - this involved adding a vlist_validator element to request_rec
            - this involved adding the ap_make_etag() function to the global API
        - modified guessing of charsets used by Apache negotiation algorithm
          to guess 'no charset' if the variant is not a text/* type
        - added code to sort multiviews variants into a canonical order so that
          negotiation results are consistent across backup/restores and mirrors
        - removed possibility of a type map file resolving to another type map
          file as its best variant
      
      What is being committed is a substantially modified version of what Koen
      submitted, with changes necessary to deal with the coding style, account
      for the bug fixes previously committed to 1.3.4-dev, answer some of the
      questions that Koen had left as comments, and reject some changes that would
      degrade HTTP performance.  The result should be considered unstable
      and is in dire need of testing, but the changes are too extensive for
      another round of patch-and-pray.  Please test me.
      
      PR:		3451, 1987
      Submitted by:	Koen Holtman, Roy Fielding, Lars Eilebrecht
      
      
      git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/branches/1.3.x@82544 13f79535-47bb-0310-9956-ffa450edef68
      1f3bb44d
  5. 28 Dec, 1998 7 commits
  6. 27 Dec, 1998 2 commits
  7. 26 Dec, 1998 2 commits
  8. 25 Dec, 1998 3 commits
  9. 24 Dec, 1998 2 commits
  10. 23 Dec, 1998 9 commits
  11. 22 Dec, 1998 1 commit