]> git.ipfire.org Git - thirdparty/apache/httpd.git/commitdiff
mod_version_for_2.0.x branch:
authorAndré Malo <nd@apache.org>
Tue, 19 Jul 2005 11:57:30 +0000 (11:57 +0000)
committerAndré Malo <nd@apache.org>
Tue, 19 Jul 2005 11:57:30 +0000 (11:57 +0000)
* Merge 191323 to 219658 from branches/2.0.x

git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/branches/mod_version_for_2.0.x@219659 13f79535-47bb-0310-9956-ffa450edef68

40 files changed:
CHANGES
STATUS
docs/conf/httpd-std.conf.in
docs/conf/httpd-win.conf
docs/error/HTTP_BAD_GATEWAY.html.var
docs/error/HTTP_BAD_REQUEST.html.var
docs/error/HTTP_FORBIDDEN.html.var
docs/error/HTTP_GONE.html.var
docs/error/HTTP_INTERNAL_SERVER_ERROR.html.var
docs/error/HTTP_LENGTH_REQUIRED.html.var
docs/error/HTTP_METHOD_NOT_ALLOWED.html.var
docs/error/HTTP_NOT_FOUND.html.var
docs/error/HTTP_NOT_IMPLEMENTED.html.var
docs/error/HTTP_PRECONDITION_FAILED.html.var
docs/error/HTTP_REQUEST_ENTITY_TOO_LARGE.html.var
docs/error/HTTP_REQUEST_TIME_OUT.html.var
docs/error/HTTP_REQUEST_URI_TOO_LARGE.html.var
docs/error/HTTP_SERVICE_UNAVAILABLE.html.var
docs/error/HTTP_UNAUTHORIZED.html.var
docs/error/HTTP_UNSUPPORTED_MEDIA_TYPE.html.var
docs/error/HTTP_VARIANT_ALSO_VARIES.html.var
docs/error/README
docs/error/contact.html.var
docs/manual/mod/mod_mime.html.en
docs/manual/mod/mod_mime.xml
docs/manual/mod/mod_mime.xml.ja
docs/manual/mod/mod_rewrite.html.en
docs/manual/mod/mod_rewrite.xml
include/http_log.h
modules/experimental/mod_disk_cache.c
modules/proxy/proxy_http.c
modules/ssl/ssl_engine_init.c
modules/ssl/ssl_scache_dbm.c
modules/ssl/ssl_scache_shmcb.c
modules/ssl/ssl_toolkit_compat.h
server/core.c
server/log.c
server/mpm/worker/worker.c
server/protocol.c
support/win32/ApacheMonitor.c

diff --git a/CHANGES b/CHANGES
index 3e51c2b053b3580effc57e08f4e439414f822193..4f6025588bd259dcaf5f5b28498e1fd784e4afcf 100644 (file)
--- a/CHANGES
+++ b/CHANGES
@@ -7,6 +7,19 @@ Changes with Apache 2.0.55
      accompanying ap_version_t structure (minor MMN bump).
      [André Malo]
 
+  *) SECURITY: CAN-2005-2088
+     core: If a request contains both Transfer-Encoding and Content-Length
+     headers, remove the Content-Length, mitigating some HTTP Request 
+     Splitting/Spoofing attacks.  [Paul Querna, Joe Orton]
+
+  *) proxy HTTP: If a response contains both Transfer-Encoding and a 
+     Content-Length, remove the Content-Length and don't reuse the
+     connection, mitigating some HTTP Response Splitting attacks.
+     [Jeff Trawick]
+
+  *) Prevent hangs of child processes when writing to piped loggers at
+     the time of graceful restart.  PR 26467.  [Jeff Trawick]
+
   *) SECURITY: CAN-2005-1268 (cve.mitre.org)
      mod_ssl: Fix off-by-one overflow whilst printing CRL information
      at "LogLevel debug" which could be triggered if configured 
diff --git a/STATUS b/STATUS
index 4b9472883d08cfac52a06b08c5980acf540869cf..32448e1710edcfd77584e9e594f04eb6d28cae01 100644 (file)
--- a/STATUS
+++ b/STATUS
@@ -2,7 +2,24 @@ APACHE 2.0 STATUS:                                              -*-text-*-
 Last modified at [$Date$]
 
 The current version of this file can be found at:
-http://svn.apache.org/repos/asf/httpd/httpd/branches/2.0.x/STATUS
+
+  * http://svn.apache.org/repos/asf/httpd/httpd/branches/2.0.x/STATUS
+
+Documentation status is maintained seperately and can be found at:
+
+  * docs/STATUS in this source tree, or
+  * http://svn.apache.org/repos/asf/httpd/httpd/branches/2.0.x/docs/STATUS
+
+Consult the following STATUS files for information on related projects:
+
+  * http://svn.apache.org/repos/asf/apr/apr/branches/0.9.x/STATUS
+  * http://svn.apache.org/repos/asf/apr/apr-util/branches/0.9.x/STATUS
+
+Consult the trunk/ for all new development and documentation efforts:
+
+  * http://svn.apache.org/repos/asf/httpd/httpd/trunk/STATUS
+  * http://svn.apache.org/repos/asf/httpd/httpd/trunk/docs/STATUS
+
 
 Release history:
 
@@ -58,11 +75,6 @@ Release history:
     2.0a2   : released March 31, 2000
     2.0a1   : released March 10, 2000
 
-Please consult the following STATUS files for information on related projects:
-
-    * http://svn.apache.org/repos/asf/apr/apr/branches/0.9.x/STATUS
-    * http://svn.apache.org/repos/asf/apr/apr-util/branches/0.9.x/STATUS
-    * http://svn.apache.org/repos/asf/httpd/httpd/branches/2.0.x/docs/STATUS
 
 Contributors looking for a mission:
 
@@ -78,6 +90,7 @@ Contributors looking for a mission:
 
     * Open bugs in the bug database.
 
+
 CURRENT RELEASE NOTES:
 
     * Forward binary compatibility is expected of Apache 2.0.x releases, such
@@ -88,11 +101,74 @@ CURRENT RELEASE NOTES:
       as well, if they apply.  Logical progression is commit to trunk,
       get feedback and votes in STATUS, and then merge into branches/2.0.x.
 
+
 RELEASE SHOWSTOPPERS:
 
-PATCHES TO BACKPORT FROM TRUNK:
-  [ please place SVN revisions from trunk here, so it is easy to
-    identify exactly what the proposed changes are! ]
+    * Various fixes to T-E and C-L processing from trunk
+
+      Refactor mod_proxy_http.c's Transfer-Encoding/Content-Length elections
+      since they didn't follow RFC 2616, in fact didn't seem to make much
+      sense at all.  Patch to migrate request-body-handling from trunk/ based
+      on 2.1-dev request body handling behavior (although just a bit more
+      conservative on the side of C-L spooling)...
+          http://people.apache.org/~wrowe/httpd-2.0-proxy-request-3.patch
+      Revert r219061 to properly test this patch, as r219061 masks the
+      underlying bug (although it is a -good- patch in and of itself).
+
+       +1: wrowe, jim
+       -1: jorton: this is a massive patch and extremely hard to review
+           for actual interesting content; it is mixed in with all sorts
+           of unrelated stuff.  It needs to at least be split up or
+           the unrelated stuff removed.
+
+           unrelated change: s/apr_strnatcasecmp/strcasecmp/
+           unrelated change: s/b/bb/ on variable+parameter names a few times
+           unrelated change: whitespaces changes all over the shop
+           spurious change:? send_request_body() appears to have been inlined
+           unrelated change: Via header handling
+
+         trawick noted on list: we elected C-L not for efficiency, but because
+                 it's the most widely supported [paraphrasing]
+         wrowe   notes: I agree - this new patch always chooses C-L for any
+                 C-L body received.  If the origin kicks out LENGTH_REQUIRED
+                 for a T-E body it's always up to the client to react.
+                 Note proxy-sendchunks can override this behavior.
+         roy     Notes on list: we must always prefer C-L if it's going to fit
+                 in our brigade.
+         wrowe   good point; the revised patch prereads MAX_MEM_SPOOL and will
+                 try reading that before choosing C-L or T-E.
+         wrowe   adds; After testing, I've determined one brigade isn't enough,
+                 so I've extended this to a loop up to MAX_MEM_SPOOL, we will
+                 fetch up enough body to fill MAX_MEM_SPOOL and hopefully
+                 hit the C-L code path most of the time.
+
+         trawick We are counting bytes in stream_reqbody_cl but filters can
+                 change the size? [p]
+         wrowe   Yes - which is why the patch prefers spool_reqbody_cl unless
+                 the filter stack is unchanged from proto_input_filters.  The
+                 protocol filters shouldn't be changing content size.  And when
+                 it happens, we have to barf or we have a split request.
+                 The old behavior was worse; we would stream the request body
+                 in additional cases without looking to see if the byte count
+                 matched Content-Length.  Easy opportunity for split requests.
+
+         trawick What specifically was done for conformance to RFC 2616? [p]
+         wrowe   Elect the appropriate body handling, and ensure that body
+                 request contains the required *single* T-E or C-L header,
+                 and there are far few code paths to stream_reqbody_cl which
+                 was most likely to create split requests by reporting the
+                 wrong C-L.
+
+         trawick Please split philosophy from rfc violations from security 
+                 fixes in the CHANGES log? [p]
+         wrowe   The others are all a bit to intertwined, the Watchfire report 
+                 spelled out that it's different behavior and RFC 2616 deviations 
+                 that cause the vulnerability, so I don't see how we can divide 
+                 the issues of correctly sending the body and choosing the
+                 transport flavor.
+
+
+PATCHES ACCEPTED TO BACKPORT FROM TRUNK:
   [ please append new backports at the end of this list not the top. ]
 
     *) ap_proxy_canonenc() is over-eager in handling '%' for reverse
@@ -101,16 +177,7 @@ PATCHES TO BACKPORT FROM TRUNK:
              -       if (isenc && ch == '%') {
              +       if (isenc && (isenc != PROXYREQ_REVERSE) && ch == '%') {
 
-       +1: jim, pquerna
-
-    *) Prevent hang writing to piped logger at graceful restart time.
-       PR: 26467
-         http://svn.apache.org/viewcvs?rev=170281&view=rev
-         http://svn.apache.org/viewcvs.cgi?rev=171093&view=rev
-       +1: trawick, jorton
-       -0: pquerna: This adds a new public function.  It should be either a 
-           minor MMN bump, or be put under CORE_PRIVATE.
-           trawick: I resolved this via second commit above.  Thanks!
+       +1: jim, pquerna, wrowe
 
     *) Fix fd leak in piped logging code, fix error handling, and remove
        dead errno handling.
@@ -119,7 +186,7 @@ PATCHES TO BACKPORT FROM TRUNK:
          http://svn.apache.org/viewcvs?rev=170719&view=rev
        all-in-one patch incremental to the PR 26467 fix:
          http://people.apache.org/~jorton/ap_pipedlog2.diff
-       +1: jorton, trawick
+       +1: jorton, trawick, wrowe
        [yes, I will write a CHANGES entry too]
 
     *) several changes to improve logging of connection-oriented errors, including
@@ -127,24 +194,10 @@ PATCHES TO BACKPORT FROM TRUNK:
          http://cvs.apache.org/viewcvs.cgi/httpd-2.0/server/core.c?r1=1.289&r2=1.291
          http://cvs.apache.org/viewcvs.cgi/httpd-2.0/server/log.c?r1=1.150&r2=1.151
          http://cvs.apache.org/viewcvs.cgi/httpd-2.0/include/http_log.h?r1=1.46&r2=1.48
-       +1: trawick, stoddard
-       -0: wrowe; seems this (valid) improvement would encourage non-compatible mods.
-
-    *) mod_headers: Support {...}s tag for SSL variable lookup.
-       http://www.apache.org/~jorton/mod_headers-2.0-ssl.diff
-       +1: jorton, trawick
-       nd: two comments:
-         (1) is the use of APR_ASCII_* ebcdic-safe? I.e. shouldn't we use the
-             native chars here and it will be converted later? (I'm not sure)
-       jorton: I have no idea, let an EBCDIC-er complain if it breaks?
-       trawick: seems that '\r' and '\n' are the better chars to check
-                for; this is not raw data read from the network (or directly
-                from SSL) but instead it is either protocol data that has 
-                already been converted to the native charset or it is other
-                data which was created inside the server in the native charset
-         (2) I'd put out (null) only if val is NULL, not if it's empty.
-       jorton: ssl_var_lookup() returns "" in place of NULL, that was really
-          a deliberate choice... but maybe you're right.
+       +1: trawick, stoddard, wrowe 
+       [wrowe notes that his previous objection is moot, based on security fixes
+        applied between .44 and .54 - but -please- doxygen the version of Apache
+        required in the API header note, for users who adopt this alternative.]
 
     *) mod_cgi: Added API call and overload of detached field in
        cgi_exec_info_t structure to support loading in current or new address
@@ -163,6 +216,9 @@ PATCHES TO BACKPORT FROM TRUNK:
          the changes in the httpd-2.0.x to be done in order for NetWare to work
          as expected when calling apr_proc_create. Should I do both, APR and Http,
          at the same time?
+       wrowe: commit to APR.  Use an APR version test *in httpd* to determine 
+         if the old or new behavior should be used in httpd.  In future versions
+         you could remove the test altogether.
 
     *) mod_actions: Regression from 1.3: the file referred to must exist.
        Solve this by introducing the "virtual" modifier to the Action
@@ -174,17 +230,6 @@ PATCHES TO BACKPORT FROM TRUNK:
           nd: I'm going to reverse the default
           jerenkrantz, striker: I'm confused as to the status of this backport.
 
-    *) mod_log_config: Cleanup log_header_out function to allow multiple headers
-       like Set-Cookie to be logged properly. PR 27787 (2.0 + 1.3)
-         modules/loggers/mod_log_config.c: r1.116
-       jerenkrantz asks: Isn't this what apr_table_merge is for?
-       nd replies: yep. But cookies won't be merged, because browsers don't
-                   support it.
-       jerenkrantz: Couldn't we copy the table and merge the values somehow?
-                    This just seems like a lot of code to duplicate what we
-                    have already.  *shrug*  Regardless, patch looks okay...
-       +1: nd, jerenkrantz
-
     * support/check_forensic: Fix tempfile usage
       svn rev 125495, 126224
       jerenkrantz says: r126224 fixes brokenness with r125495 on Solaris.
@@ -208,6 +253,46 @@ PATCHES TO BACKPORT FROM TRUNK:
       Votes from before the integration branch:
           +1: jerenkrantz, wrowe (trivial, would even be cool in 1.3)
 
+
+PATCHES PROPOSED TO BACKPORT FROM TRUNK:
+  [ please place SVN revisions from trunk here, so it is easy to
+    identify exactly what the proposed changes are! ]
+
+    *) Correct RFC 2616 non-compliance by refusing to proxy a request body 
+       in a TRACE request, unless TraceEnable extended is configured.
+       Introduces TraceEnable [on|off|extended] to give the administrator
+       full control of TRACE request handling.  RFC 2616 does NOT require
+       TRACE (although to disable remains silly).  Current patch at;
+          http://people.apache.org/~wrowe/httpd-2.0-trace.patch
+       +1 wrowe, jimjag
+
+    *) mod_headers: Support {...}s tag for SSL variable lookup.
+       http://www.apache.org/~jorton/mod_headers-2.0-ssl.diff
+       +1: jorton, trawick
+       nd: two comments:
+         (1) is the use of APR_ASCII_* ebcdic-safe? I.e. shouldn't we use the
+             native chars here and it will be converted later? (I'm not sure)
+       jorton: I have no idea, let an EBCDIC-er complain if it breaks?
+       trawick: seems that '\r' and '\n' are the better chars to check
+                for; this is not raw data read from the network (or directly
+                from SSL) but instead it is either protocol data that has 
+                already been converted to the native charset or it is other
+                data which was created inside the server in the native charset
+         (2) I'd put out (null) only if val is NULL, not if it's empty.
+       jorton: ssl_var_lookup() returns "" in place of NULL, that was really
+          a deliberate choice... but maybe you're right.
+
+    *) mod_log_config: Cleanup log_header_out function to allow multiple headers
+       like Set-Cookie to be logged properly. PR 27787 (2.0 + 1.3)
+         modules/loggers/mod_log_config.c: r1.116
+       jerenkrantz asks: Isn't this what apr_table_merge is for?
+       nd replies: yep. But cookies won't be merged, because browsers don't
+                   support it.
+       jerenkrantz: Couldn't we copy the table and merge the values somehow?
+                    This just seems like a lot of code to duplicate what we
+                    have already.  *shrug*  Regardless, patch looks okay...
+       +1: nd, jerenkrantz
+
     *) Provide TLS/SSL upgrade functionality in mod_ssl allowing an unsecure
        connection to be upgraded to a secure connection upon request by the
        client.  The full patch file is available at http://www.apache.org/~bnicholes/
@@ -235,10 +320,6 @@ PATCHES TO BACKPORT FROM TRUNK:
         PR: 34452
         +1: jorton
 
-     *) fix z/OS annoyance with pathname on debug messages in error log
-        http://svn.apache.org/viewcvs?rev=178299&view=rev
-        +1: trawick
-
      *) EBCDIC: Handle chunked input from client or, with proxy, origin
         server.
         http://svn.apache.org/viewcvs?rev=178262&view=rev
@@ -251,12 +332,6 @@ PATCHES TO BACKPORT FROM TRUNK:
         http://svn.apache.org/viewcvs?rev=170354&view=rev
         +1: trawick, jorton
 
-     *) Downgrade the log level of a worker MPM apr_proc_mutex_foo error
-        message when it occurs during restart (as we already do for a couple
-        of other calls).
-        http://svn.apache.org/viewcvs?rev=179317&view=rev
-        +1: trawick, jorton
-
      *) proxy FTP: Fix confusion about globbing characters which could lead
         to getting a directory listing when a file was requested.  PR 34512.
         2.1 patch was http://svn.apache.org/viewcvs?rev=179704&view=rev
@@ -278,6 +353,21 @@ PATCHES TO BACKPORT FROM TRUNK:
         PR: 35279
         +1: jorton
 
+     *) mod_include: Fix possible variable corruption with nested
+        includes.
+        http://svn.apache.org/viewcvs?rev=179763&view=rev
+        2.0.x patch: http://people.apache.org/~jorton/ap_pr12655.patch
+        PR: 12655
+        +1: jorton
+
+     *) mod_auth_digest: Fix hostinfo validation for CONNECT requests.
+        http://svn.apache.org/viewcvs.cgi?rev=193127&view=rev
+        +1: jorton
+
+     *) Add httxt2dbm for creating RewriteMap DBM Files.
+        http://svn.apache.org/viewcvs.cgi?rev=209539&view=rev
+        +1: pquerna
+
 PATCHES TO BACKPORT THAT ARE ON HOLD OR NOT GOING ANYWHERE SOON:
 
     *) Remove LDAP toolkit specific code from util_ldap and mod_auth_ldap.
@@ -424,6 +514,7 @@ PATCHES TO BACKPORT THAT ARE ON HOLD OR NOT GOING ANYWHERE SOON:
             inspect headers will in fact work better because the headers will
             reflect reality.
 
+
 CURRENT VOTES:
 
     * Reverse proxy cookie patch from PR#10722 (c.f. comment 16)
@@ -491,6 +582,7 @@ CURRENT VOTES:
       -0:   Lars, wrowe (let's make this defacto for the 2.2 release.),
             nd (for 2.0)
 
+
 RELEASE NON-SHOWSTOPPERS BUT WOULD BE REAL NICE TO WRAP THESE UP:
 
     * There is a bug in how we sort some hooks, at least the pre-config
@@ -743,49 +835,12 @@ RELEASE NON-SHOWSTOPPERS BUT WOULD BE REAL NICE TO WRAP THESE UP:
       Message-ID: <Pine.LNX.4.44.0203011354090.16457-200000@deepthought
                   .cs.virginia.edu>
 
-TODO ISSUES REMAINING IN MOD_SSL:
-
-    * In order to use a DSO version of mod_ssl we have to link with
-      -lssl and -lcrypto. A workaround is in place right now where the
-      entire EXTRA_LIBS macro is being appended to the objects list, but
-      this is a hack. We should either revamp the APACHE_CHECK_SSL_TOOLKIT
-      autoconf function or come up with some other autoconf checks to
-      search for libssl and libcrypto and properly add them to mod_ssl's
-      link flags.
-
-    * SSL renegotiations in combination with POST request
-
-    * Port or dispose all code inside #if 0...#endif blocks that remain
-      from the porting effort.
-
-    * Do we need SSL_set_read_ahead()?
-
-    * the ssl_expr api is NOT THREAD SAFE.  race conditions exist:
-       -in ssl_expr_comp() if SSLRequire is used in .htaccess
-        (ssl_expr_info is global)
-       -is ssl_expr_eval() if there is an error
-        (ssl_expr_error is global)
-
-    * SSLRequire directive (parsing of) leaks memory
-
-    * Diffie-Hellman-Parameters for temporary keys are hardcoded in
-      ssl_engine_dh.c, while the comment in ssl_engine_kernel.c says:
-      "it is suggested that keys be changed daily or every 500
-      transactions, and more often if possible."
-
-    * ssl_var_lookup could be rewritten to be MUCH faster
-
-    * CRL callback should be pluggable
-
-    * session cache store should be pluggable
-
-    * init functions should return status code rather than ssl_die()
-
-    * ssl_engine_pphrase.c needs to be reworked so it is generic enough
-      to also decrypt proxy keys
+    * ap_discard_request should be converted to use the bucket API
+      directly rather than waste cycles copying buffers with the old API.
 
-    * the shmcb code should just align its memory segment rather than
-      jumping through all the "safe" memcpy and memset hoops
+    * SIGSEGV on Linux (glibc 2.1.2) isn't caught properly by a
+      sigwaiting thread. We need to work around this, perhaps unless
+      there is hope soon for a fixed glibc.
 
 
 EXPERIMENTAL MODULES:
@@ -795,383 +850,3 @@ EXPERIMENTAL MODULES:
     
     * Fix the shared memory cache
 
-PRs that have been suspended forever waiting for someone to
-put them into 'the next release':
-
-    * documentation and Q&A
-
-      PR#2221: Make online documentation search link back to my installation
-        Status: 
-
-      PR#2906: Propose that Apache recommend $UNIQUE_ID for all "session id"
-      algorithms
-        Status: 
-
-      PR#2793: When will Apache support P3P? Any Plans?
-        Status: 
-
-    * build
-
-      PR#2113: HTTP Server Rebuild Line Needs Changing for the better
-        Status: 
-
-      PR#2421: problem specifying ndbm library for build ?with autoconfigure
-        Status: 
-
-    * config
-
-      PR#76: missing call to "setlocale();"
-        Status: 
-
-      PR#628: Request of "Options SymLinksIfGroupMatch"
-        Status: 
-
-      PR#793: RLimitCPU and RLimitMEM don't apply to all children like they should
-        Status: 
-
-      PR#922:  it is useful to allow specifiction that root-owned symlinks
-      should always be followed
-        Status: 
-
-      PR#1028: DoS attacks involving memory consumption
-        Status: 
-
-      PR#1191: setlogin() is not called, causing problems with e.g. identd
-        Status: 
-
-      PR#1204: regerror() exists, use it
-        Status: 
-
-      PR#2284: Can not POST to ErrorDocument - Apache/1.3b6
-        Status: 
-
-      PR#2396: Proposal for TimeZone directive
-        Status: 
-
-      PR#2446: AllowOverride FileInfo is too coarse
-        Status: 
-
-      PR#2760: [PATCH] User/Group for <Directory> and <Location> i.e. not only
-      in global and <Virtual>.
-        Status: 
-
-      PR#2907: suggestion: power up your Include directive :)
-        Status: 
-
-      PR#3018: cannot limit some HTTP methods
-        Status: 
-
-      PR#3677: New ErrorDocumentMatch directive
-        Status: 
-
-      PR#4244: "Files" and "FilesMatch" regexp does not recognize bang as
-      negation operator
-        Status: 
-
-      PR#5993: AllowOverride should have a 'CheckNone' and 'AllowNone' argument
-      instead of only 'None'
-        Status: 
-
-    * mod_access
-
-      PR#537: mod_access syntax allows hosts that should be restricted
-        Status: 
-
-      PR#1287: add allow,deny/deny,allow warning to mod_access
-        Status: 
-
-      PR#2512: <IfDenied> directive wanted
-        Status: 
-
-    * mod_auth-any
-
-      PR#557: ~UserHome directories are not honored in absolute pathname
-      requests (.htaccess)
-        Status: 
-
-      PR#1117: Using NIS passwd.byname dbm files with AuthDBMUserFile
-        Status: 
-
-      PR#1809: Suggestion for improving authentication modules and core source
-      code, problem with 401 and ErrorDocument
-        Status: 
-
-    * mod_autoindex
-
-      PR#1263: Add frame-safe anchor attribute to mod_autoindex links
-        Status: 
-
-    * mod_cgi (and suexec)
-
-      PR#921: suexec Uses cwd before filling it in, doesn't use syslog
-        Status: 
-
-      PR#1176: Apache cannot handle continuation line in headers
-        Status: 
-
-      PR#1120: suexec does not parse arguments to #exec cmd
-        Status: 
-
-      PR#1268: CGI scripts running as Apache user: security (suexec etc.)
-        Status: 
-
-      PR#1285: Error messages could be easier to spot in cgi.log file for suexec.c
-        Status: 
-
-      PR#1905: suexec - Allow modules to set user:group for execution.
-        Status: 
-
-      PR#2360: suexec for general access of user content?
-        Status: 
-
-      PR#2460: TimeOut applies to output of CGI scripts
-        Status: 
-
-      PR#2573: CGI's for general use still have to be run as another user
-      with suExec
-        Status: 
-
-      PR#4241: Need to be able to override shebang line to make CGI scripts
-      more portable.
-        Status: 
-
-      PR#4490: mod_cgi prevents handling of OPTIONS requests
-        Status: 
-
-    * mod_env
-
-      PR#370: Modified PATH environemnt variable is not passed, instead
-      system's is used
-        Status: 
-
-    * mod_headers
-
-      PR#1383: I make mod_headers to modify request headers as well as
-      response ones.
-        Status: 
-
-      PR#1677: mod_headers should allow mod_log_config-style formats in
-      header values
-        Status: 
-
-    * mod_imap
-
-      PR#759: imap should read <MAP><AREA>*</MAP> too!
-        Status: 
-
-    * mod_include
-
-      PR#78: Additional status for XBitHack directive
-        Status: 
-
-      PR#623: A smarter "Last Modified" value for SSI documents (see PR number 600)
-        Status: 
-
-      PR#1145: mod_include
-      Allow for Last-Modified: without resorting to XBitHack
-        Status: 
-
-      PR#1803: patches to mod_include to allow for file tests
-        Status: 
-
-      PR#4459: Suggestion for better handling of Last-modified headers
-        Status: 
-
-    * mod_info
-
-      PR#2415: /server-info doesn't check for the virtual host to list the info
-        Status: 
-
-    * mod_log-any
-
-      PR#1050: Logging of virtual server to error_log as well
-        Status: 
-
-      PR#1358: Selective url-encode of log fields (or maybe a pseudo
-      log_rewrite module?)
-        Status: 
-
-      PR#2073: pipelined connections are not logged correctly
-        Status: 
-
-      PR#4448: Please allow CGI env variables (QUERY_STRING, ...) to be logged
-      with %{}e
-        Status: 
-
-    * mod_negotiation
-
-      PR#3191: no way to set global quality-of-source (qs) coneg values
-      with multiviews
-        Status: 
-
-    * mod_proxy
-
-      PR#362: Mod_proxy doesn't allow change of error pages
-        Status: 
-
-      PR#440: Proxy doesn't deliver documents if not connected
-        Status: 
-
-      PR#534: proxy converts ~name to %7Ename when name starts with a dot (.)
-        Status: 
-
-      PR#612: Proxy FTP Authentication Fails
-        Status: 
-
-      PR#700: Proxy doesn't do links right for OpenVMS files through ftp:
-        Status: 
-
-      PR#980: Controlling Access to Remote Proxies would be nice...
-        Status: 
-
-      PR#994: Adding authentication "on the fly" through the proxy module
-        Status: 
-
-      PR#1085: ProxyRemote make a dead cycle.
-        Status: 
-
-      PR#1166: ``nph-'' not honored (no buffering) for ProxyRemote mapping
-        Status: 
-
-      PR#1290: Need to know "hit-rate" on proxy cache
-        Status: 
-
-      PR#1532: Proxy transfer logging
-        Status: 
-
-      PR#1547: No HTTP_X_FORWARDED_FOR set...
-        Status: 
-
-      PR#1567: ProxyRemote proxy requests fail authentication by firewall
-        Status: 
-
-      PR#1702: mod_proxy to support persistent conns?
-        Status: 
-
-      PR#1878: listing of proxy cache content
-        Status: 
-
-      PR#2314: patterns in ProxyRemote
-        Status: 
-
-      PR#2648: Cache file names in Proxy module
-        Status: 
-
-      PR#3568: Accessing URL through proxy server corrupts data.
-        Status: 
-
-      PR#3605: Some anonymous FTP URLs ask for authentication
-        Status: 
-
-    * mod_rewrite
-
-      PR#1582: mod_rewrite forms REQUEST_URI different than mod_cgi does
-        Status: 
-
-      PR#2074: mod_rewrite doesn't pass Proxy Throughput on internal subrequests
-        Status: 
-
-    * mod_status
-
-      PR#2138: mod_status always displays 256 possible connection slots
-        Status: 
-
-      PR#2343: Status module averages are for entire uptime
-        Status: 
-
-    * apache-api
-
-      PR#1004: request_config field in request_rec is moderately bogus
-        Status: 
-
-      PR#1158: improvements to child spawning API
-        Status: 
-
-      PR#1233: there is no way to keep per-connection per-module state
-        Status: 
-
-      PR#2024: adding auth_why to conn_rec
-        Status: 
-
-      PR#2873: Feedback/Comment on APACI
-        Status: 
-
-      PR#3143: No module specific data hook for per-connection data
-        Status: 
-
-    * generally odds and ends
-
-      PR#2431: A small addition to rotatelogs.c to improve program functionality.
-        Status: 
-
-      PR#2763: mailto tags and bundling bug report script
-        Status: 
-
-      PR#2785: os-aix Support for System Resource Controller
-        Status: 
-
-      PR#2889: Inclusion of RPM spec file in CVS/distributions
-        Status: 
-
-      PR#5713: os-windows [PATCH] install as win32 service with domain account
-        Status: Cannot accept password-as-arg, we should prompt the
-                user when -k install/-k config with a user argument.
-
-
-
-Other bugs that need fixing:
-
-    * ap_discard_request should be converted to use the bucket API
-      directly rather than waste cycles copying buffers with the old API.
-
-    * MaxRequestsPerChild measures connections, not requests.
-        Until someone has a better way, we'll probably just rename it
-        "MaxConnectionsPerChild".
-    
-    * Regex containers don't work in an intutive way
-        Status: No one has come up with an efficient way to fix this
-        behavior. Dean has suggested getting rid of regex containers
-        completely.
-        OtherBill suggests: We at least seem to agree on eliminating
-                            the <Container ~ foo> forms, and using only
-                            <ContainerMatch foo> semantics.
-
-    * SIGSEGV on Linux (glibc 2.1.2) isn't caught properly by a
-      sigwaiting thread. We need to work around this, perhaps unless
-      there is hope soon for a fixed glibc.
-
-    * orig_ct in the byterange/multipart handling may not be
-      needed. Apache 1.3 just never stashed "multipart" into
-      r->content_type. We should probably follow suit since the
-      byterange stuff doesn't want the rest of the code to see the
-      multipart content-type; the other code should still think it is
-      dealing with the <orig_ct> stuff.
-        Status: Greg volunteers to investigate (esp. since he was most 
-                likely the one to break it :-)
-
-Binaries (2.0.52):
-
- Platform                      Avail.  Volunteer
- ------------------------------------------------------------------
- AIX 4.3.3                     no      Bill Stoddard
- Mandrake 8.1                  no      open
- FreeBSD 4.1                   no      open
- hppa2.0w-hp-hpux11.00         no      Cliff Woolley
- i386-pc-solaris2.9            no      Aaron Bannert
- i386-unknown-freebsd4.5       no
- i386-unknown-freebsd4.6       no      Cliff Woolley
- i386-unknown-freebsd4.10      no      Aaron Bannert
- i686-pc-linux-gnu-slackware81 no      Cliff Woolley
- i686-pc-linux-gnu-rh70        no      Aaron Bannert
- i686-pc-linux-gnu-rh73        no      Cliff Woolley
- i686-pc-linux-gnu             no      Graham Leggett
- ia64-hp-hpux11.20             no
- powerpc-apple-darwin7.4.0     no      Aaron Bannert
- powerpc-unknown-linux-gnu     no      Graham Leggett
- s390-ibm-linux                no      Greg Ames
- sparc-sun-solaris2.8          no      Jim Jagielski
- NetWare                       no      Brad Nicholes
- OS/2                          no      Brian Havard
- OS/390                        no      Greg Ames
- Win32-x86                     yes     William Rowe
- x86_64-unknown-linux-gnu      no      Aaron Bannert
index 3d2cb2e7b358c82a65414878dbf2a03f86320d13..35a13c9ce8b903e67eb5ca42a61a07259658f088 100644 (file)
@@ -966,6 +966,8 @@ BrowserMatch "MS FrontPage" redirect-carefully
 BrowserMatch "^WebDrive" redirect-carefully
 BrowserMatch "^WebDAVFS/1.[0123]" redirect-carefully
 BrowserMatch "^gnome-vfs" redirect-carefully
+BrowserMatch "^XML Spy" redirect-carefully
+BrowserMatch "^Dreamweaver-WebDAV-SCM1" redirect-carefully
 
 #
 # Allow server status reports generated by mod_status,
index a4405d6549cd1477f7ceba8fda3cb069081f9cf6..9ea8a7a2d7f746e2932ba9cda993b1a3647fbdbb 100644 (file)
@@ -885,6 +885,8 @@ BrowserMatch "MS FrontPage" redirect-carefully
 BrowserMatch "^WebDrive" redirect-carefully
 BrowserMatch "^WebDAVFS/1.[0123]" redirect-carefully
 BrowserMatch "^gnome-vfs" redirect-carefully
+BrowserMatch "^XML Spy" redirect-carefully
+BrowserMatch "^Dreamweaver-WebDAV-SCM1" redirect-carefully
 
 #
 # Allow server status reports generated by mod_status,
index 6840e96297a5a698a399d7911bfdec328c6704db..ae15f34f334d21399d2d16450a224c3b36ad5a4a 100644 (file)
@@ -215,6 +215,25 @@ Body:----------ro--
 <!--#include virtual="include/bottom.html" -->
 ----------ro--
 
+Content-language: sr
+Content-type: text/html; charset=ISO-8859-5
+Body:----------sr--
+<!--#set var="CONTENT_LANGUAGE" value="sr"
+--><!--#set var="CHARACTER_ENCODING" value="ISO-8859-5"
+--><!--#set var="TITLE" value="»Þè ßàÞÛÐ×!"
+--><!--#include virtual="include/top.html" -->
+
+    ¿ÞáàÕÔÝØçÚØ áÕàÒÕà øÕ ßàØÜØÞ ÝÕØáßàÐÒÐÝ
+    ÞÔÓÞÒÞà ÞÔ áÛÕÔÕûÕÓ áÕàÒÕàРã ÝØ×ã.
+
+  <!--#if expr="$REDIRECT_ERROR_NOTES" -->
+    <!--#include virtual="include/spacer.html" -->
+    <!--#echo encoding="none" var="REDIRECT_ERROR_NOTES" -->
+  <!--#endif -->
+
+<!--#include virtual="include/bottom.html" -->
+----------sr--
+
 Content-language: sv
 Content-type: text/html; charset=ISO-8859-1
 Body:----------sv--
index 195cdd31dc3c1883b6efba7818a0cc240e789d7b..ca7768ece4a22d4ed8a0fc21312b61f1a7570632 100644 (file)
@@ -157,6 +157,20 @@ Body:----------ro--
 <!--#include virtual="include/bottom.html" -->
 ----------ro--
 
+Content-language: sr
+Content-type: text/html; charset=ISO-8859-5
+Body:----------sr--
+<!--#set var="CONTENT_LANGUAGE" value="sr"
+--><!--#set var="CHARACTER_ENCODING" value="ISO-8859-5"
+--><!--#set var="TITLE" value="»Þè ×ÐåâÕÒ!"
+--><!--#include virtual="include/top.html" -->
+
+    ²Ðè çØâÐç (ØÛØ ßÞáàÕÔÝØçÚØ áÕàÒÕà) ßÞáÛÐÞ øÕ ×ÐåâÕÒ ÚÞøØ
+    ÞÒÐø áÕàÒÕà ÝØøÕ ÜÞÓÐÞ ÔРàÐ×ãÜÕ.
+
+<!--#include virtual="include/bottom.html" -->
+----------sr--
+
 Content-language: sv
 Content-type: text/html; charset=ISO-8859-1
 Body:----------sv--
index 9ac4d72e0bbdcccf4cee75e98c64d2471151a32f..744f8c69f1a9db671a458873754645d1c820a30e 100644 (file)
@@ -277,6 +277,29 @@ Body:----------ro--
 <!--#include virtual="include/bottom.html" -->
 ----------ro--
 
+Content-language: sr
+Content-type: text/html; charset=ISO-8859-5
+Body:----------sr--
+<!--#set var="CONTENT_LANGUAGE" value="sr"
+--><!--#set var="CHARACTER_ENCODING" value="ISO-8859-5"
+--><!--#set var="TITLE" value="·ÐÑàÐúÕÝ ßàØáâãß!"
+--><!--#include virtual="include/top.html" -->
+
+  <!--#if expr="$REDIRECT_URL = /\/$/" -->
+
+    ½ÕÜÐâÕ ÔÞ×ÒÞÛã ÔРßàØáâãߨâÕ ×ÐåâÕÒÐÝÞÜ ÔØàÕÚâÞàØøãÜã.
+    ¼ÞÓãûÕ øÕ ÔРÝÕÜРØÝÔÕÚáÝÞÓ ÔÞÚãÜÕÝâÐ, ØÛØ ÔРøÕ ÔØàÕÚâÞàØøãÜ ×ÐèâØûÕÝ ÞÔ çØâÐúÐ.
+
+  <!--#else -->
+
+    ½ÕÜÐâÕ ÔÞ×ÒÞÛã ÔРßàØáâãߨâÕ ×ÐåâÕÒÐÝÞÜ ÞÑøÕÚâã.
+    ¼ÞÓãûÕ øÕ ÔРøÕ ×ÐèâØûÕÝ ÞÔ çØâÐúÐ, ØÛØ ÔРÓРáÕàÒÕà ÝÕ ÜÞÖÕ ßàÞçØâÐâØ.
+
+  <!--#endif -->
+
+<!--#include virtual="include/bottom.html" -->
+----------sr--
+
 Content-language: sv
 Content-type: text/html; charset=ISO-8859-1
 Body:----------sv--
index 6b66e3c4bf7d69be94649bb327525f4cbd07a49f..295263e852fa33fc5dc74b81ebbb51ad6ef9564a 100644 (file)
@@ -315,6 +315,33 @@ Body:----------ro--
 <!--#include virtual="include/bottom.html" -->
 ----------ro--
 
+Content-language: sr
+Content-type: text/html; charset=ISO-8859-5
+Body:----------sr--
+<!--#set var="CONTENT_LANGUAGE" value="sr"
+--><!--#set var="CHARACTER_ENCODING" value="ISO-8859-5"
+--><!--#set var="TITLE" value="ÀÕáãàá ÝØøÕ ÒØèÕ ÔÞáâãßÐÝ!"
+--><!--#include virtual="include/top.html" -->
+
+    ·ÐåâÕÒÐÝØ ÃÀ» ÝØøÕ ÒØèÕ ÔÞáâãßÐÝ ÝРÞÒÞÜ áÕàÒÕàã Ø ÝÕÜÐ
+    ÐÔàÕáÕ ÝРÚÞøã ÑØáâÕ ÜÞÓÛØ ÑØâØ ßàÞáÛÕòÕÝØ.
+
+  <!--#if expr="$HTTP_REFERER" -->
+
+    ¼ÞÛØÜÞ ÞÑÐÒÕáâØâÕ ÐãâÞàÐ
+    <a href="<!--#echo encoding="url" var="HTTP_REFERER" -->">ØáåÞÔØèÝÕ
+    áâàÐÝØæÕ</a> ÔРøÕ ÒÕ×Р×ÐáâÐàÕÛÐ.
+
+  <!--#else -->
+
+    °ÚÞ áâÕ ßàÐâØÛØ ÒÕ×ã áРáßÞùÝÕ áâàÐÝØæÕ, ÜÞÛØÜÞ ÞÑÐÒÕáâØâÕ
+    ÐãâÞàРâÕ áâàÐÝØæÕ.
+
+  <!--#endif -->
+
+<!--#include virtual="include/bottom.html" -->
+----------sr--
+
 Content-language: sv
 Content-type: text/html; charset=ISO-8859-1
 Body:----------sv--
index 195c74d7489eaea3a2e42ba58259f5cee7f5e54f..ba7e8686e029227d725e121ab5c762be562fa0e2 100644 (file)
@@ -339,6 +339,35 @@ Body:----------ro--
 <!--#include virtual="include/bottom.html" -->
 ----------ro--
 
+Content-language: sr
+Content-type: text/html; charset=ISO-8859-5
+Body:----------sr--
+<!--#set var="CONTENT_LANGUAGE" value="sr"
+--><!--#set var="CHARACTER_ENCODING" value="ISO-8859-5"
+--><!--#set var="TITLE" value="³àÕèÚРáÕàÒÕàÐ!"
+--><!--#include virtual="include/top.html" -->
+
+  <!--#if expr="$REDIRECT_ERROR_NOTES" -->
+
+    ÁÕàÒÕà øÕ ØÜÐÞ ãÝãâàÐèúã ÓàÕèÚã Ø ÝØøÕ ÑØÞ
+    ã ÜÞÓãûÝÞáâØ ÔРØáßãÝØ ÒÐè ×ÐåâÕÒ.
+
+    <!--#include virtual="include/spacer.html" -->
+
+    ¿ÞàãÚРޠÓàÕèæØ:
+    <br /><!--#echo encoding="none" var="REDIRECT_ERROR_NOTES" -->
+
+  <!--#else -->
+
+    ÁÕàÒÕà øÕ ØÜÐÞ ãÝãâàÐèúã ÓàÕèÚã Ø ÝØøÕ ÑØÞ
+    ã ÜÞÓãûÝÞáâØ ÔРØáßãÝØ ÒÐè ×ÐåâÕÒ. ¼ÞÓãûÕ øÕ ÔРøÕ áÕàÒÕà
+    ßàÕÞßâÕàÕûÕÝ, ØÛØ ÔРáÕ ÔÕáØÛРÓàÕèÚРã CGI áÚàØßâØ.
+
+  <!--#endif -->
+
+<!--#include virtual="include/bottom.html" -->
+----------sr--
+
 Content-language: sv
 Content-type: text/html; charset=ISO-8859-1
 Body:----------sv--
index 9d6b15667d69412fad43ff5fc746526bbe1225d2..642e413674eca5a3d114112b1ff1a1e21bf55d92 100644 (file)
@@ -164,6 +164,21 @@ Body:----------ro--
 <!--#include virtual="include/bottom.html" -->
 ----------ro--
 
+Content-language: sr
+Content-type: text/html; charset=ISO-8859-5
+Body:----------sr--
+<!--#set var="CONTENT_LANGUAGE" value="sr"
+--><!--#set var="CHARACTER_ENCODING" value="ISO-8859-5"
+--><!--#set var="TITLE" value="»ÞèÕ Content-Length ×ÐÓÛÐÒùÕ!"
+--><!--#include virtual="include/top.html" -->
+
+    ·ÐåâÕÒ áР<!--#echo var="REDIRECT_REQUEST_METHOD" -->
+    ÜÕâÞÔÞÜ ÜÞàРØÜÐâØ ØáßàÐÒÝÞ <code>Content-Length</code>
+    (ÔãÖØÝРáÐÔàÖÐøÐ) ×ÐÓÛÐÒùÕ.
+
+<!--#include virtual="include/bottom.html" -->
+----------sr--
+
 Content-language: sv
 Content-type: text/html; charset=ISO-8859-1
 Body:----------sv--
index 4316dc1c9d4b706b37587704b12297de5b76b8ff..63d6d21e73b811310e06bc7d5953705b9f20c218 100644 (file)
@@ -158,6 +158,20 @@ Body:----------ro--
 <!--#include virtual="include/bottom.html" -->
 ----------ro--
 
+Content-language: sr
+Content-type: text/html; charset=ISO-8859-5
+Body:----------sr--
+<!--#set var="CONTENT_LANGUAGE" value="sr"
+--><!--#set var="CHARACTER_ENCODING" value="ISO-8859-5"
+--><!--#set var="TITLE" value="¼ÕâÞÔ ÝØøÕ ÔÞ×ÒÞùÕÝ!"
+--><!--#include virtual="include/top.html" -->
+
+    <!--#echo var="REDIRECT_REQUEST_METHOD" -->
+    ÜÕâÞÔ ÝØøÕ ÔÞ×ÒÞùÕÝ ×Р×ÐåâÕÒÐÝØ ÃÀ».
+
+<!--#include virtual="include/bottom.html" -->
+----------sr--
+
 Content-language: sv
 Content-type: text/html; charset=ISO-8859-1
 Body:----------sv--
index 3b77bee7c88a7ab12ecd5d76b7c1fb9eba869d63..5102c9377ec64d36300a3fc272adc41dddd95ece 100644 (file)
@@ -325,6 +325,34 @@ Body:----------ro--
 <!--#include virtual="include/bottom.html" -->
 ----------ro--
 
+Content-language: sr
+Content-type: text/html; charset=ISO-8859-5
+Body:----------sr--
+<!--#set var="CONTENT_LANGUAGE" value="sr"
+--><!--#set var="CHARACTER_ENCODING" value="ISO-8859-5"
+--><!--#set var="TITLE" value="¾ÑøÕÚÐâ ÝØøÕ ßàÞÝÐòÕÝ!"
+--><!--#include virtual="include/top.html" -->
+
+    ·ÐåâÕÒÐÝØ ÃÀ» ÝØøÕ ßàÞÝÐòÕÝ ÝРÞÒÞÜ áÕàÒÕàã.
+
+  <!--#if expr="$HTTP_REFERER" -->
+
+    ¸×ÓÛÕÔРÔРøÕ ÒÕ×РÝÐ
+    <a href="<!--#echo encoding="url" var="HTTP_REFERER" -->">ØáåÞÔØèÝÞø
+    áâàÐÝØæØ</a> ßÞÓàÕèÝРØÛØ ×ÐáâÐàÕÛÐ. ¼ÞÛØÜÞ ÞÑÐÒÕáâØâÕ ÐãâÞàÐ
+    <a href="<!--#echo encoding="url" var="HTTP_REFERER" -->">âÕ áâàÐÝØæÕ</a>
+    Þ ÓàÕèæØ.
+
+  <!--#else -->
+
+    ÃÚÞÛØÚÞ áâÕ ÃÀ» ãÝÕÛØ àãçÝÞ, ÜÞÛØÜÞ ßàÞÒÕàØâÕ ÜÞÓãûÕ
+    ÓàÕèÚÕ Ø ßàÞÑÐøâÕ ßÞÝÞÒÞ.
+
+  <!--#endif -->
+
+<!--#include virtual="include/bottom.html" -->
+----------sr--
+
 Content-language: sv
 Content-type: text/html; charset=ISO-8859-1
 Body:----------sv--
index 9e980eecba2d966dc9255c7d49f83ef2f8dbef61..fa92d01ef3e59b04962814855f527cd39d386f7b 100644 (file)
@@ -149,6 +149,19 @@ Body:----------ro--
 <!--#include virtual="include/bottom.html" -->
 ----------ro--
 
+Content-language: sr
+Content-type: text/html; charset=ISO-8859-5
+Body:----------sr--
+<!--#set var="CONTENT_LANGUAGE" value="sr"
+--><!--#set var="CHARACTER_ENCODING" value="ISO-8859-5"
+--><!--#set var="TITLE" value="½Õ ÜÞÓã ÔРÞÑàÐÔØÜ ×ÐåâÕÒ!"
+--><!--#include virtual="include/top.html" -->
+
+    ÁÕàÒÕà ÝÕ ßÞÔàÖÐÒРÐ򾯿ã ÚÞøã øÕ çØâÐç ×ÐåâÕÒÐÞ.
+
+<!--#include virtual="include/bottom.html" -->
+----------sr--
+
 Content-language: sv
 Content-type: text/html; charset=ISO-8859-1
 Body:----------sv--
index 31faf1731720c4ed8985584e457c24e59fc7739d..5d1d6e8e072b9f7f8ee4e2b1af52b6b024670acb 100644 (file)
@@ -151,6 +151,19 @@ Body:----------ro--
 <!--#include virtual="include/bottom.html" -->
 ----------ro--
 
+Content-language: sr
+Content-type: text/html; charset=ISO-8859-5
+Body:----------sr--
+<!--#set var="CONTENT_LANGUAGE" value="sr"
+--><!--#set var="CHARACTER_ENCODING" value="ISO-8859-5"
+--><!--#set var="TITLE" value="¿àÕÔãáÛÞÒ ÝØøÕ ØáßãúÕÝ!"
+--><!--#include virtual="include/top.html" -->
+
+    ¿àÕÔãáÛÞÒ ×Р×ÐåâÕÒ ÃÀ»-Ð ÝØøÕ ØáßãúÕÝ.
+
+<!--#include virtual="include/bottom.html" -->
+----------sr--
+
 Content-language: sv
 Content-type: text/html; charset=ISO-8859-1
 Body:----------sv--
index 7215e0c48b9a210c71778c308df72a0ac456243d..b21a1ccf9467ad39c854af9971e31817c5d02e83 100644 (file)
@@ -169,6 +169,21 @@ Body:----------ro--
 <!--#include virtual="include/bottom.html" -->
 ----------ro--
 
+Content-language: sr
+Content-type: text/html; charset=ISO-8859-5
+Body:----------sr--
+<!--#set var="CONTENT_LANGUAGE" value="sr"
+--><!--#set var="CHARACTER_ENCODING" value="ISO-8859-5"
+--><!--#set var="TITLE" value="Request entity too large!"
+--><!--#include virtual="include/top.html" -->
+
+    <!--#echo var="REDIRECT_REQUEST_METHOD" -->
+    ÜÕâÞÔ ÝÕ ÔÞ×ÒÞùÐÒРßàÕÝÞá ÞÒØå ßÞÔÐâÐÚÐ, ØÛØ ÚÞÛØçØÝРßÞÔÐâÐÚÐ
+    ßàÕÜÐèãøÕ ÞÓàÐÝØçÕúРÜÞÓãûÝÞáâØ.
+
+<!--#include virtual="include/bottom.html" -->
+----------sr--
+
 Content-language: sv
 Content-type: text/html; charset=ISO-8859-1
 Body:----------sv--
index 8acdfca4d264684612f9e28a618c73499ad7145c..61311e2c8006b78c7c1deb67ae651beb8d925f33 100644 (file)
@@ -161,6 +161,20 @@ Body:----------ro--
 <!--#include virtual="include/bottom.html" -->
 ----------ro--
 
+Content-language: sr
+Content-type: text/html; charset=ISO-8859-5
+Body:----------sr--
+<!--#set var="CONTENT_LANGUAGE" value="sr"
+--><!--#set var="CHARACTER_ENCODING" value="ISO-8859-5"
+--><!--#set var="TITLE" value="·ÐåâÕÒã øÕ ØáâÕÚÛÞ ÒàÕÜÕ!"
+--><!--#include virtual="include/top.html" -->
+
+    ÁÕàÒÕà øÕ ßàÕÚØÝãÞ ÒÕ×ã áРÜàÕÖÞÜ øÕà çØâÐç
+    ÝØøÕ ×ÐÒàèØÞ ×ÐåâÕÒ ×РÔÞ×ÒÞùÕÝÞ ÒàÕÜÕ.
+
+<!--#include virtual="include/bottom.html" -->
+----------sr--
+
 Content-language: sv
 Content-type: text/html; charset=ISO-8859-1
 Body:----------sv--
index 8cac2a9db76ad717423003de12eca7d08fc3f0bc..ad451707598fbc65d99286b94e5eb54f71290a05 100644 (file)
@@ -161,6 +161,20 @@ Body:----------ro--
 <!--#include virtual="include/bottom.html" -->
 ----------ro--
 
+Content-language: sr
+Content-type: text/html; charset=ISO-8859-5
+Body:----------sr--
+<!--#set var="CONTENT_LANGUAGE" value="sr"
+--><!--#set var="CHARACTER_ENCODING" value="ISO-8859-5"
+--><!--#set var="TITLE" value="¿ÞáÛÐâØ ÃÀ¸ øÕ ßàÕÒÕÛØÚ!"
+--><!--#include virtual="include/top.html" -->
+
+    ´ãÖØÝР×ÐåâÕÒÐÝÞÓ ÃÀ»-РßàÕÜÐèãøÕ ÞÓàÐÝØçÕúРÜÞÓãûÝÞáâØ
+    ÞÒÞÓ áÕàÒÕàÐ. ·ÐåâÕÒ ÝÕ ÜÞÖÕ ÑØâØ ÞÑàÐòÕÝ.
+
+<!--#include virtual="include/bottom.html" -->
+----------sr--
+
 Content-language: sv
 Content-type: text/html; charset=ISO-8859-1
 Body:----------sv--
index cffa681caa26c6e9bce76f2eeda1f823ae9174c3..f2e4d7ef6bfa1f281027102606b2e8e7b7ad68e5 100644 (file)
@@ -174,6 +174,21 @@ Body:----------ro--
 <!--#include virtual="include/bottom.html" -->
 ----------ro--
 
+Content-language: sr
+Content-type: text/html; charset=ISO-8859-5
+Body:----------sr--
+<!--#set var="CONTENT_LANGUAGE" value="sr"
+--><!--#set var="CHARACTER_ENCODING" value="ISO-8859-5"
+--><!--#set var="TITLE" value="ÃáÛãÓРøÕ ÝÕÔÞáâãßÝÐ!"
+--><!--#include virtual="include/top.html" -->
+
+    ÁÕàÒÕà âàÕÝãâÝÞ ÝØøÕ ã ÜÞÓãûÝÞáâØ ÔРãáÛãÖØ ÒÐè
+    ×ÐåâÕÒ ßÞèâÞ øÕ ×ÐâÒÞàÕÝ ×ÑÞÓ ÞÔàÖÐÒÐúРØÛØ ØÜРÝÕÔÞÒÞùÐÝ
+    ÚÐßÐæØâÕâ. ¼ÞÛØÜÞ ßÞÚãèÐøâÕ ßÞÝÞÒÞ ÚÐáÝØøÕ.
+
+<!--#include virtual="include/bottom.html" -->
+----------sr--
+
 Content-language: sv
 Content-type: text/html; charset=ISO-8859-1
 Body:----------sv--
index b5fb0e4dc92aeff752c4567d052b65ff51ac1f7d..57fd572eae5889f2a807d03e4715ceb03ed0c2e0 100644 (file)
@@ -251,6 +251,27 @@ Body:----------ro--
 <!--#include virtual="include/bottom.html" -->
 ----------ro--
 
+Content-language: sr
+Content-type: text/html; charset=ISO-8859-5
+Body:----------sr--
+<!--#set var="CONTENT_LANGUAGE" value="sr"
+--><!--#set var="CHARACTER_ENCODING" value="ISO-8859-5"
+--><!--#set var="TITLE" value="¾ÑÐÒÕ×ÝРÐãâÕÝâØäØÚÐæØøÐ!"
+--><!--#include virtual="include/top.html" -->
+
+    ¾ÒÐø áÕàÒÕà ÝØøÕ ÜÞÓÐÞ ÔРßÞâÒàÔØ ÔРáâÕ ÞÒÛÐèûÕÝØ ÔРßàØáâãߨâÕ
+    ÃÀ»-ã "<!--#echo encoding="url" var="REDIRECT_URL" -->".
+    ¼ÞÓãûÕ øÕ ØÛØ ÔРáâÕ ÝÐÒÕÛØ ßÞÓàÕèÝÕ ÛØçÝÕ ßÞÔÐâÚÕ (Ýßà. ÝÕâÐçÝã ÛÞרÝÚã), ØÛØ ÔÐ
+    ÒÐè çØâÐç ÝÕ àÐ×ãÜÕ ÚÐÚÞ ÔРßÞèÐùÕ ×ÐåâÕÒÐÝÕ ÛØçÝÕ ßÞÔÐâÚÕ.
+
+  <!--#include virtual="include/spacer.html" -->
+
+    ÃÚÞÛØÚÞ ÒÐÜ øÕ ÔÞ×ÒÞùÕÝÞ ÔРßàÕãרÜÐâÕ ÔÞÚãÜÕÝâ, ÜÞÛØÜÞ ÔÐ
+    ßàÞÒÕàØâÕ áÒÞøÕ ÚÞàØáÝØçÚÞ ØÜÕ Ø ÛÞרÝÚã Ø ßàÞÑÐâÕ ßÞÝÞÒÞ.
+
+<!--#include virtual="include/bottom.html" -->
+----------sr--
+
 Content-language: sv
 Content-type: text/html; charset=ISO-8859-1
 Body:----------sv--
index d6e5ac02010f539c3faaa7e4f8aa5960a8b793fa..57715769c0f8773dbae40344932bb5ef1b42e229 100644 (file)
@@ -150,6 +150,19 @@ Body:----------ro--
 <!--#include virtual="include/bottom.html" -->
 ----------ro--
 
+Content-language: sr
+Content-type: text/html; charset=ISO-8859-5
+Body:----------sr--
+<!--#set var="CONTENT_LANGUAGE" value="sr"
+--><!--#set var="CHARACTER_ENCODING" value="ISO-8859-5"
+--><!--#set var="TITLE" value="½ÕßÞÔàÖÐÝРÒàáâРÜÕÔØøÐ!"
+--><!--#include virtual="include/top.html" -->
+
+    ÁÕàÒÕà ÝÕ ßÞÔàÖÐÒРÒàáâã ÜÕÔØøÐ ßàÕÝÕáÕÝã ã ×ÐåâÕÒã.
+
+<!--#include virtual="include/bottom.html" -->
+----------sr--
+
 Content-language: sv
 Content-type: text/html; charset=ISO-8859-1
 Body:----------sv--
index df53f3b180715411db964f18c8aad704e14cd892..efb7d3e6d39f7b8c2994672c0bee7720364f63e9 100644 (file)
@@ -165,6 +165,21 @@ Body:----------ro--
 <!--#include virtual="include/bottom.html" -->
 ----------ro--
 
+Content-language: sr
+Content-type: text/html; charset=ISO-8859-5
+Body:----------sr--
+<!--#set var="CONTENT_LANGUAGE" value="sr"
+--><!--#set var="CHARACTER_ENCODING" value="ISO-8859-5"
+--><!--#set var="TITLE" value="²ÐàØøÐÝâРâÐÚÞòÕ ÒÐàØàÐ!"
+--><!--#include virtual="include/top.html" -->
+
+    ²ÐàØøÐÝâР×ÐåâÕÒÐÝÞÓ ÕÝâØâÕâÐ
+    øÕ Ø áÐÜРàÕáãàá ÚÞøØ ßÞáâÞøØ ã ÒØèÕ ÒÐàØøÐÝâØ.
+    ¿àØáâãß ÝØøÕ ÜÞÓãû.
+
+<!--#include virtual="include/bottom.html" -->
+----------sr--
+
 Content-language: sv
 Content-type: text/html; charset=ISO-8859-1
 Body:----------sv--
index c2c1754926f04a1b21b19ad90f7662376aa7eb2c..c4f3f791d5155117a91e3bef4f1efee1d4c78c38 100644 (file)
@@ -25,6 +25,7 @@
   | Korean (ko)           | Jaeho Shin                               |
   | Polish (pl)           | Tomasz Kepczynski                        |
   | Romanian (ro)         | Andrei Besleaga                          |
+  | Serbian (sr)          | Nikola Smolenski                         |
   | Spanish (es)          | Karla Quintero                           |
   | Swedish (sv)          | Thomas Sjögren                           |
   | Turkish (tr)          | Emre Sokullu                             |
@@ -33,4 +34,4 @@
    like to contribute the pages in an additional language.)
 
 
- Copyright (c) 2001-2004 The Apache Software Foundation. All rights reserved.
+ Copyright (c) 2001-2005 The Apache Software Foundation. All rights reserved.
index ee2157e718d3af49d03fd148401dd34e97f5b200..4d29ceedcfebb32e96b5b93c122a8d69aa037c7b 100644 (file)
@@ -88,6 +88,13 @@ Va rugam sa il contactati pe
 in cazul in care credeti ca aceasta este o eroare a serverului.
 ----------ro--
 
+Content-language: sr
+Content-type: text/html; charset=ISO-8859-5
+Body:----------sr--
+°ÚÞ ÜØáÛØâÕ ÔРøÕ ÞÒÞ ÓàÕèÚРáÕàÒÕàÐ, ÜÞÛØÜÞ ÞÑÐÒÕáâØâÕ
+<a href="mailto:<!--#echo encoding="url" var="SERVER_ADMIN" -->">ÒÕÑÜÐáâÕàÐ</a>.
+----------sr--
+
 Content-language: sv
 Content-type: text/html; charset=ISO-8859-1
 Body:----------sv--
index b4d3ff80040c1442a0e227c68ecedaf34ff1b814..75e4d67cba40ccc9e9c74c1adf3b4cb491da5b86 100644 (file)
@@ -894,7 +894,7 @@ extensions</td></tr>
     the default list of mappings from filename extensions to content
     types. Most administrators use the provided <code>mime.types</code>
     file, which associates common filename extensions with IANA registered
-    content types. The current list is maintained at <a href="http://www.isi.edu/in-notes/iana/assignments/media-types/media-types">http://www.isi.edu/in-notes/iana/assignments/media-types/media-types</a>.
+    content types. The current list is maintained at <a href="http://www.iana.org/assignments/media-types/index.html">http://www.iana.org/assignments/media-types/index.html</a>.
     This simplifies the <code>httpd.conf</code> file by providing the
     majority of media-type definitions, and may be overridden by
     <code class="directive"><a href="#addtype">AddType</a></code> directives as
index fb517d63ef9025aa6924dd9bef289e13d2b05265..195d3f0af44e22ba4e1834845017811d77fe6d24 100644 (file)
@@ -865,8 +865,8 @@ extensions</description>
     types. Most administrators use the provided <code>mime.types</code>
     file, which associates common filename extensions with IANA registered
     content types. The current list is maintained at <a href=
-    "http://www.isi.edu/in-notes/iana/assignments/media-types/media-types"
-    >http://www.isi.edu/in-notes/iana/assignments/media-types/media-types</a>.
+    "http://www.iana.org/assignments/media-types/index.html"
+    >http://www.iana.org/assignments/media-types/index.html</a>.
     This simplifies the <code>httpd.conf</code> file by providing the
     majority of media-type definitions, and may be overridden by
     <directive module="mod_mime">AddType</directive> directives as
index de49b9b88ccca96a170b68345d1ecdde198d87ce..0dec94569eb6ef9513e4c4ff9877471e0ba29c49 100644 (file)
@@ -1,7 +1,7 @@
 <?xml version="1.0" encoding="iso-2022-jp"?>
 <!DOCTYPE modulesynopsis SYSTEM "../style/modulesynopsis.dtd">
 <?xml-stylesheet type="text/xsl" href="../style/manual.ja.xsl"?>
-<!-- English Revision: 104971:151405 (outdated) -->
+<!-- English Revision: 104971:193033 (outdated) -->
 
 <!--
  Copyright 2002-2004 The Apache Software Foundation
index eb27a64d6b8b7a3acf1d9c31d31f02eb8cc83528..d2dd615265daf4e9965793d71375f82f2d775ec2 100644 (file)
@@ -967,6 +967,20 @@ Apache 2.0.41 and later</td></tr>
       substituted by <em>DefaultValue</em> or by the empty string
       if no <em>DefaultValue</em> was specified.</p>
 
+      <p>For example, you might define a
+      <code class="directive">RewriteMap</code> as:</p>
+
+      <div class="example"><p><code>
+      RewriteMap examplemap txt:/path/to/file/map.txt
+      </code></p></div>
+
+      <p>You would then be able to use this map in a
+      <code class="directive">RewriteRule</code> as follows:</p>
+
+      <div class="example"><p><code>
+      RewriteRule ^/ex/(.*) ${examplemap:$1}
+      </code></p></div>
+
       <p>The following combinations for <em>MapType</em> and
       <em>MapSource</em> can be used:</p>
 
@@ -1012,12 +1026,14 @@ RewriteMap real-to-user txt:/path/to/file/map.txt
           ``<code>|</code>'' characters which have the meaning of
           ``or''. In other words they indicate a set of
           alternatives from which the actual returned value is
-          chosen randomly. Although this sounds crazy and useless,
-          it was actually designed for load balancing in a reverse
-          proxy situation where the looked up values are server
-          names. Example:</p>
-
-<div class="example"><pre>
+          chosen randomly. For example, you might use the following map
+          file and directives to provide a random load balancing between
+          several back-end server, via a reverse-proxy. Images are sent
+          to one of the servers in the 'static' pool, while everything
+          else is sent to one of the 'dynamic' pool.</p>
+          <p>Example:</p>
+
+<div class="example"><h3>Rewrite map file</h3><pre>
 ##
 ##  map.txt -- rewriting map
 ##
@@ -1026,8 +1042,12 @@ static   www1|www2|www3|www4
 dynamic  www5|www6
 </pre></div>
 
-<div class="example"><p><code>
-RewriteMap servers rnd:/path/to/file/map.txt
+<div class="example"><h3>Configuration directives</h3><p><code>
+RewriteMap servers rnd:/path/to/file/map.txt<br />
+<br />
+RewriteRule ^/(.*\.(png|gif|jpg)) http://${servers:static}/$1
+[NC,P,L]<br />
+RewriteRule ^/(.*) http://${servers:dynamic}/$1 [P,L]
 </code></p></div>
         </li>
 
index ac62aa5181a8f59fef84ee2eba73facc1b1572f6..b8bc81cfba48aca8b20ad26a1c0c7c1ac9a923d6 100644 (file)
@@ -496,6 +496,20 @@ Apache 2.0.41 and later</compatibility>
       substituted by <em>DefaultValue</em> or by the empty string
       if no <em>DefaultValue</em> was specified.</p>
 
+      <p>For example, you might define a
+      <directive>RewriteMap</directive> as:</p>
+
+      <example>
+      RewriteMap examplemap txt:/path/to/file/map.txt
+      </example>
+
+      <p>You would then be able to use this map in a
+      <directive>RewriteRule</directive> as follows:</p>
+
+      <example>
+      RewriteRule ^/ex/(.*) ${examplemap:$1}
+      </example>
+
       <p>The following combinations for <em>MapType</em> and
       <em>MapSource</em> can be used:</p>
 
@@ -543,12 +557,14 @@ RewriteMap real-to-user txt:/path/to/file/map.txt
           ``<code>|</code>'' characters which have the meaning of
           ``or''. In other words they indicate a set of
           alternatives from which the actual returned value is
-          chosen randomly. Although this sounds crazy and useless,
-          it was actually designed for load balancing in a reverse
-          proxy situation where the looked up values are server
-          names. Example:</p>
-
-<example>
+          chosen randomly. For example, you might use the following map
+          file and directives to provide a random load balancing between
+          several back-end server, via a reverse-proxy. Images are sent
+          to one of the servers in the 'static' pool, while everything
+          else is sent to one of the 'dynamic' pool.</p>
+          <p>Example:</p>
+
+<example><title>Rewrite map file</title>
 <pre>
 ##
 ##  map.txt -- rewriting map
@@ -559,8 +575,12 @@ dynamic  www5|www6
 </pre>
 </example>
 
-<example>
-RewriteMap servers rnd:/path/to/file/map.txt
+<example><title>Configuration directives</title>
+RewriteMap servers rnd:/path/to/file/map.txt<br />
+<br />
+RewriteRule ^/(.*\.(png|gif|jpg)) http://${servers:static}/$1
+[NC,P,L]<br />
+RewriteRule ^/(.*) http://${servers:dynamic}/$1 [P,L]
 </example>
         </li>
 
index 9b24f5844f12eb34cff4ed6c2ce822d670ee76bf..93895f13c1672a7bceb8e44866e5965f0377cc8f 100644 (file)
@@ -116,6 +116,20 @@ AP_DECLARE(apr_status_t) ap_replace_stderr_log(apr_pool_t *p,
 int ap_open_logs(apr_pool_t *pconf, apr_pool_t *plog, 
                  apr_pool_t *ptemp, server_rec *s_main);
 
+#ifdef CORE_PRIVATE
+
+/**
+ * Perform special processing for piped loggers in MPM child
+ * processes.
+ * @param p Not used
+ * @param s Not used
+ * @tip ap_logs_child_init is not for use by modules; it is an
+ * internal core function
+ */
+void ap_logs_child_init(apr_pool_t *p, server_rec *s);
+
+#endif /* CORE_PRIVATE */
+
 /* 
  * The three primary logging functions, ap_log_error, ap_log_rerror, and 
  * ap_log_perror use a printf style format string to build the log message.  
index 6e8d0c58ba905c7f82bfd2181e30b902cf2730bc..35466fd4a895a31cc9424c6b5434a33fe99f0641 100644 (file)
@@ -266,10 +266,8 @@ static int create_entity(cache_handle_t *h, request_rec *r,
 {
     disk_cache_conf *conf = ap_get_module_config(r->server->module_config,
                                                  &disk_cache_module);
-    apr_status_t rv;
     cache_object_t *obj;
     disk_cache_object_t *dobj;
-    apr_file_t *tmpfile;
 
     if (conf->cache_root == NULL) {
         return DECLINED;
@@ -478,7 +476,6 @@ static apr_status_t read_table(cache_handle_t *handle, request_rec *r,
 static apr_status_t recall_headers(cache_handle_t *h, request_rec *r)
 {
     disk_cache_object_t *dobj = (disk_cache_object_t *) h->cache_obj->vobj;
-    apr_table_t * tmp;
 
     /* This case should not happen... */
     if (!dobj->hfd) {
index a26e5caca2e0737a889e36921bb6112a0e443099..57e31d99a23e848d98ee696eeeb312173fae46cc 100644 (file)
@@ -1201,8 +1201,24 @@ apr_status_t ap_proxy_http_process_response(apr_pool_t * p, request_rec *r,
                 return r->status;
 
             } else {
-                /* strip connection listed hop-by-hop headers from response */
                 const char *buf;
+
+                /* can't have both Content-Length and Transfer-Encoding */
+                if (apr_table_get(r->headers_out, "Transfer-Encoding")
+                    && apr_table_get(r->headers_out, "Content-Length")) {
+                    /* 2616 section 4.4, point 3: "if both Transfer-Encoding
+                     * and Content-Length are received, the latter MUST be
+                     * ignored"; so unset it here to prevent any confusion
+                     * later. */
+                    apr_table_unset(r->headers_out, "Content-Length");
+                    ap_log_error(APLOG_MARK, APLOG_DEBUG, 0,
+                                 r->server,
+                                 "proxy: server %s returned Transfer-Encoding and Content-Length",
+                                 p_conn->name);
+                    p_conn->close += 1;
+                }
+                
+                /* strip connection listed hop-by-hop headers from response */
                 p_conn->close += ap_proxy_liststr(apr_table_get(r->headers_out,
                                                                 "Connection"),
                                                   "close");
index 7da4e96a223037ab5232923147ca498b3aba7a41..131abf635e46265fbef799539970c58a7c083932 100644 (file)
@@ -705,7 +705,7 @@ static int ssl_server_import_cert(server_rec *s,
 {
     SSLModConfigRec *mc = myModConfig(s);
     ssl_asn1_t *asn1;
-    unsigned char *ptr;
+    MODSSL_D2I_X509_CONST unsigned char *ptr;
     const char *type = ssl_asn1_keystr(idx);
     X509 *cert;
 
@@ -743,7 +743,7 @@ static int ssl_server_import_key(server_rec *s,
 {
     SSLModConfigRec *mc = myModConfig(s);
     ssl_asn1_t *asn1;
-    unsigned char *ptr;
+    MODSSL_D2I_PrivateKey_CONST unsigned char *ptr;
     const char *type = ssl_asn1_keystr(idx);
     int pkey_type = (idx == SSL_AIDX_RSA) ? EVP_PKEY_RSA : EVP_PKEY_DSA;
     EVP_PKEY *pkey;
index 81f555ac99823dd9fb2a79de80ad52ac6b7bdab9..9e5632e9ea4f08010983592dcb9363abe06a6e17 100644 (file)
@@ -193,7 +193,7 @@ SSL_SESSION *ssl_scache_dbm_retrieve(server_rec *s, UCHAR *id, int idlen)
     apr_datum_t dbmkey;
     apr_datum_t dbmval;
     SSL_SESSION *sess = NULL;
-    UCHAR *ucpData;
+    MODSSL_D2I_SSL_SESSION_CONST unsigned char *ucpData;
     int nData;
     time_t expiry;
     time_t now;
@@ -234,13 +234,15 @@ SSL_SESSION *ssl_scache_dbm_retrieve(server_rec *s, UCHAR *id, int idlen)
 
     /* parse resulting data */
     nData = dbmval.dsize-sizeof(time_t);
-    ucpData = (UCHAR *)malloc(nData);
+    ucpData = malloc(nData);
     if (ucpData == NULL) {
         apr_dbm_close(dbm);
         ssl_mutex_off(s);
         return NULL;
     }
-    memcpy(ucpData, (char *)dbmval.dptr+sizeof(time_t), nData);
+    /* Cast needed, ucpData may be const */
+    memcpy((unsigned char *)ucpData, 
+           (char *)dbmval.dptr + sizeof(time_t), nData);
     memcpy(&expiry, dbmval.dptr, sizeof(time_t));
 
     apr_dbm_close(dbm);
index 377821c7e4a1713d811f1c4f9cf6d102207492e0..946cb9df9aa256b302555c7983292983ac221ac3 100644 (file)
@@ -1203,7 +1203,7 @@ static SSL_SESSION *shmcb_lookup_session_id(
     SHMCBHeader *header;
     SSL_SESSION *pSession = NULL;
     unsigned int curr_pos, loop, count;
-    unsigned char *ptr;
+    MODSSL_D2I_SSL_SESSION_CONST unsigned char *ptr;
     time_t now;
 
     ap_log_error(APLOG_MARK, APLOG_DEBUG, 0, s,
@@ -1281,7 +1281,7 @@ static BOOL shmcb_remove_session_id(
     SHMCBIndex *idx;
     SHMCBHeader *header;
     unsigned int curr_pos, loop, count;
-    unsigned char *ptr;
+    MODSSL_D2I_SSL_SESSION_CONST unsigned char *ptr;
     BOOL to_return = FALSE;
 
     ap_log_error(APLOG_MARK, APLOG_DEBUG, 0, s,
index fc41341a4420c27fb2d754279c033a0dc243aee7..d20f331539144250fe29f68b3189f6c352a29813 100644 (file)
 #define MODSSL_CLIENT_CERT_CB_ARG_TYPE X509
 #define MODSSL_PCHAR_CAST
 
+/* ...shifting sands of openssl... */
+#if (OPENSSL_VERSION_NUMBER >= 0x0090707f)
+# define MODSSL_D2I_SSL_SESSION_CONST    const
+#else
+# define MODSSL_D2I_SSL_SESSION_CONST
+#endif
+
+#if (OPENSSL_VERSION_NUMBER >= 0x00908000)
+# define MODSSL_D2I_PrivateKey_CONST const
+# define MODSSL_D2I_X509_CONST const
+#else
+# define MODSSL_D2I_PrivateKey_CONST
+# define MODSSL_D2I_X509_CONST
+#endif
+
 #define modssl_X509_verify_cert X509_verify_cert
 
 typedef int (modssl_read_bio_cb_fn)(char*,int,int,void*);
@@ -99,6 +114,13 @@ typedef int (modssl_read_bio_cb_fn)(char*,int,int,void*);
 #define HAVE_SSL_X509V3_EXT_d2i
 #endif
 
+#ifndef PEM_F_DEF_CALLBACK
+#ifdef PEM_F_PEM_DEF_CALLBACK
+/* In OpenSSL 0.9.8 PEM_F_DEF_CALLBACK was renamed */
+#define PEM_F_DEF_CALLBACK PEM_F_PEM_DEF_CALLBACK 
+#endif
+#endif
+
 #elif defined (SSLC_VERSION_NUMBER) /* RSA */
 
 /* sslc does not support this function, OpenSSL has since 9.5.1 */
@@ -116,6 +138,9 @@ typedef int (modssl_read_bio_cb_fn)(char*,int,int,void*);
 #define MODSSL_INFO_CB_ARG_TYPE SSL*
 #define MODSSL_CLIENT_CERT_CB_ARG_TYPE void
 #define MODSSL_PCHAR_CAST (char *)
+#define MODSSL_D2I_SSL_SESSION_CONST
+#define MODSSL_D2I_PrivateKey_CONST
+#define MODSSL_D2I_X509_CONST
 
 typedef int (modssl_read_bio_cb_fn)(char*,int,int);
 
index 563e07d6c0919f354cafbbaa3aed6ac2be551491..e9a868f5b3a89b73f2a7bf1e77da00a5b8331a01 100644 (file)
@@ -4499,6 +4499,7 @@ static void register_hooks(apr_pool_t *p)
     ap_hook_translate_name(ap_core_translate,NULL,NULL,APR_HOOK_REALLY_LAST);
     ap_hook_map_to_storage(core_map_to_storage,NULL,NULL,APR_HOOK_REALLY_LAST);
     ap_hook_open_logs(ap_open_logs,NULL,NULL,APR_HOOK_REALLY_FIRST);
+    ap_hook_child_init(ap_logs_child_init,NULL,NULL,APR_HOOK_MIDDLE);
     ap_hook_handler(default_handler,NULL,NULL,APR_HOOK_REALLY_LAST);
     /* FIXME: I suspect we can eliminate the need for these do_nothings - Ben */
     ap_hook_type_checker(do_nothing,NULL,NULL,APR_HOOK_REALLY_LAST);
index 2b4a0c042963a9774602d22454ddd564442e523a..bfec7a300395b123fcda44d409a552861e463587 100644 (file)
@@ -145,6 +145,45 @@ static const TRANS priorities[] = {
 
 static apr_file_t *stderr_log = NULL;
 
+/* track pipe handles to close in child process */
+typedef struct read_handle_t {
+    struct read_handle_t *next;
+    apr_file_t *handle;
+} read_handle_t;
+
+static read_handle_t *read_handles;
+
+/* clear_handle_list() is called when plog is cleared; at that
+ * point we need to forget about our old list of pipe read
+ * handles
+ */
+static apr_status_t clear_handle_list(void *v)
+{
+    read_handles = NULL;
+    return APR_SUCCESS;
+}
+
+/* remember to close this handle in the child process */
+static void close_handle_in_child(apr_pool_t *p, apr_file_t *f)
+{
+    read_handle_t *new_handle;
+
+    new_handle = apr_pcalloc(p, sizeof(read_handle_t));
+    new_handle->next = read_handles;
+    new_handle->handle = f;
+    read_handles = new_handle;
+}
+
+void ap_logs_child_init(apr_pool_t *p, server_rec *s)
+{
+    read_handle_t *cur = read_handles;
+
+    while (cur) {
+        apr_file_close(cur->handle);
+        cur = cur->next;
+    }
+}
+
 AP_DECLARE(void) ap_open_stderr_log(apr_pool_t *p)
 {
     apr_file_open_stderr(&stderr_log, p);
@@ -220,6 +259,9 @@ static int log_child(apr_pool_t *p, const char *progname,
         if (rc == APR_SUCCESS) {
             apr_pool_note_subprocess(p, procnew, APR_KILL_AFTER_TIMEOUT);
             (*fpin) = procnew->in;
+            /* read handle to pipe not kept open, so no need to call
+             * close_handle_in_child()
+             */
         }
     }
 
@@ -296,6 +338,8 @@ int ap_open_logs(apr_pool_t *pconf, apr_pool_t *p /* plog */,
     int replace_stderr;
     apr_file_t *errfile = NULL;
 
+    apr_pool_cleanup_register(p, NULL, clear_handle_list,
+                              apr_pool_cleanup_null);
     if (open_error_log(s_main, p) != OK) {
         return DONE;
     }
@@ -439,7 +483,7 @@ static void log_error_core(const char *file, int line, int level,
 
 #ifndef TPF
     if (file && level_and_mask == APLOG_DEBUG) {
-#if defined(_OSD_POSIX) || defined(WIN32)
+#if defined(_OSD_POSIX) || defined(WIN32) || defined(__MVS__)
         char tmp[256];
         char *e = strrchr(file, '/');
 #ifdef WIN32
@@ -756,6 +800,7 @@ static int piped_log_spawn(piped_log *pl)
             ap_piped_log_write_fd(pl) = procnew->in;
             apr_proc_other_child_register(procnew, piped_log_maintenance, pl,
                                           ap_piped_log_write_fd(pl), pl->p);
+            close_handle_in_child(pl->p, ap_piped_log_read_fd(pl));
         }
         else {
             char buf[120];
index fe078ece5d840f21801fc443495511e5110254e6..8f1ba12c44d547b59063b71a240f3e02ad57a08f 100644 (file)
@@ -738,7 +738,13 @@ static void *listener_thread(apr_thread_t *thd, void * dummy)
         else {
             if ((rv = SAFE_ACCEPT(apr_proc_mutex_unlock(accept_mutex)))
                 != APR_SUCCESS) {
-                ap_log_error(APLOG_MARK, APLOG_EMERG, rv, ap_server_conf,
+                int level = APLOG_EMERG;
+
+                if (ap_scoreboard_image->parent[process_slot].generation != 
+                    ap_scoreboard_image->global->running_generation) {
+                    level = APLOG_DEBUG; /* common to get these at restart time */
+                }
+                ap_log_error(APLOG_MARK, level, rv, ap_server_conf,
                              "apr_proc_mutex_unlock failed. Attempting to "
                              "shutdown process gracefully.");
                 signal_threads(ST_GRACEFUL);
index 59aff7fc712a676f98eef6e4739f4d1c96d2a614..a10610e01e7a5b99c679bf0f6a9406751d2ffed2 100644 (file)
@@ -885,6 +885,15 @@ request_rec *ap_read_request(conn_rec *conn)
             apr_brigade_destroy(tmp_bb);
             return r;
         }
+
+        if (apr_table_get(r->headers_in, "Transfer-Encoding")
+            && apr_table_get(r->headers_in, "Content-Length")) {
+            /* 2616 section 4.4, point 3: "if both Transfer-Encoding
+             * and Content-Length are received, the latter MUST be
+             * ignored"; so unset it here to prevent any confusion
+             * later. */
+            apr_table_unset(r->headers_in, "Content-Length");
+        }
     }
     else {
         if (r->header_only) {
index 8241ce23f91a5b40ff9719a128ef9448f941d3e8..6392a1ff34f98c26a40e5a270520b641fe15a88c 100644 (file)
@@ -998,7 +998,9 @@ BOOL GetApacheServicesStatus()
                         lstrcpy(szBuf, szImagePath);
                         CharLower(szBuf);
                         /* the service name could be Apache*.exe */
-                        if ((strstr(szBuf, "\\apache") != NULL)
+                        /* the service name could be httpd*.exe or Apache*.exe */
+                        if (((strstr(szBuf, "\\apache") != NULL)
+                             || (strstr(szBuf, "\\httpd") != NULL))
                                 && strstr(szBuf, ".exe") 
                                 && (strstr(szBuf, "--ntservice") != NULL 
                                        || strstr(szBuf, "-k ") != NULL))