]> granicus.if.org Git - apache/log
apache
7 years agoevent: Avoid possible blocking in the listener thread when shutting down
Yann Ylavic [Mon, 24 Jul 2017 23:19:06 +0000 (23:19 +0000)]
event: Avoid possible blocking in the listener thread when shutting down
connections. PR 60956.

start_lingering_close_nonblocking() now puts connections in defer_linger_chain
which is emptied by any worker thread (all atomically) after its usual work,
hence any possibly blocking flush and lingering close run outside the listener.

The listener may create a dedicated worker if it fills defer_linger_chain or
while it's not empty, calling push2worker with a NULL cs.

The state machine in process_socket() is slighly modified to be able to enter
with CONN_STATE_LINGER directly w/o clogging_input_filters to interfer.

New abort_socket_nonblocking() allows to reset connections when nonblocking is
required and we can't do much about the connection anymore, nor we want the
system to linger on its own after close().

Many thanks to Stefan Priebe for his heavy testing on many event's changes!

git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1802875 13f79535-47bb-0310-9956-ffa450edef68

7 years agoMake sure updatelbstatus() is NULL
Jim Jagielski [Mon, 24 Jul 2017 17:19:55 +0000 (17:19 +0000)]
Make sure updatelbstatus() is NULL

git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1802845 13f79535-47bb-0310-9956-ffa450edef68

7 years agoRebuild.
Lucien Gentis [Sat, 22 Jul 2017 15:31:35 +0000 (15:31 +0000)]
Rebuild.

git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1802703 13f79535-47bb-0310-9956-ffa450edef68

7 years agoXML updates.
Lucien Gentis [Sat, 22 Jul 2017 15:30:37 +0000 (15:30 +0000)]
XML updates.

git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1802702 13f79535-47bb-0310-9956-ffa450edef68

7 years agocore, mpm_event: Add ap_update_sb_handle() to avoid a small memory leak of
Yann Ylavic [Fri, 21 Jul 2017 17:22:05 +0000 (17:22 +0000)]
core, mpm_event: Add ap_update_sb_handle() to avoid a small memory leak of
sizeof(ap_sb_handle_t) when re-entering event's process_socket().

git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1802618 13f79535-47bb-0310-9956-ffa450edef68

7 years agompm_event: ap_queue_info_try_get_idler() may atomically decrement and then
Yann Ylavic [Thu, 20 Jul 2017 23:34:47 +0000 (23:34 +0000)]
mpm_event: ap_queue_info_try_get_idler() may atomically decrement and then
re-increment the number idlers if it went under or to zero.  We can avoid
this by switching to a compare-and-swap scheme.

git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1802535 13f79535-47bb-0310-9956-ffa450edef68

7 years agoreserve 10036
Jim Jagielski [Wed, 19 Jul 2017 14:49:38 +0000 (14:49 +0000)]
reserve 10036

git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1802399 13f79535-47bb-0310-9956-ffa450edef68

7 years agoupdate xforms
Jim Jagielski [Tue, 18 Jul 2017 21:01:55 +0000 (21:01 +0000)]
update xforms

git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1802338 13f79535-47bb-0310-9956-ffa450edef68

7 years agoUDS does support reuse
Jim Jagielski [Tue, 18 Jul 2017 21:00:14 +0000 (21:00 +0000)]
UDS does support reuse

git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1802336 13f79535-47bb-0310-9956-ffa450edef68

7 years agoap_server_config_defines and ap_server_{pre,post}_read_config are arrays of
Yann Ylavic [Tue, 18 Jul 2017 15:06:15 +0000 (15:06 +0000)]
ap_server_config_defines and ap_server_{pre,post}_read_config are arrays of
*const* strings (must not change after being inserted), make it explicit.

git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1802309 13f79535-47bb-0310-9956-ffa450edef68

7 years agoBe explicit and safe (const) with the strings stored in ap_server_config_defines.
Yann Ylavic [Tue, 18 Jul 2017 14:41:43 +0000 (14:41 +0000)]
Be explicit and safe (const) with the strings stored in ap_server_config_defines.

Follow up to r1713043.

git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1802305 13f79535-47bb-0310-9956-ffa450edef68

7 years agoFix overriding ExtendedStatus to "off" with mod_systemd loaded, and
Joe Orton [Tue, 18 Jul 2017 08:14:42 +0000 (08:14 +0000)]
Fix overriding ExtendedStatus to "off" with mod_systemd loaded, and
give more feedback to systemd during a reload.

* modules/arch/unix/mod_systemd.c (systemd_pre_config): New
  function; tell systemd the service is reloading here.
  (systemd_pre_mpm): Don't set ap_extended_status here, do nothing
  if ExtendedStatus is off.
  (register_hooks): Register pre_config hook.

git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1802251 13f79535-47bb-0310-9956-ffa450edef68

7 years agomod-proxy documentation rebuild
Luca Toscano [Sun, 16 Jul 2017 16:05:07 +0000 (16:05 +0000)]
mod-proxy documentation rebuild

git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1802076 13f79535-47bb-0310-9956-ffa450edef68

7 years agoUpdated files referencing Spanish translation for manual/misc/index.xml.es r1802071
Daniel Ferradal [Sun, 16 Jul 2017 15:36:33 +0000 (15:36 +0000)]
Updated files referencing Spanish translation for manual/misc/index.xml.es r1802071

git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1802072 13f79535-47bb-0310-9956-ffa450edef68

7 years agoAdded Spanish Translation for manual/misc/index.xml.es
Daniel Ferradal [Sun, 16 Jul 2017 15:35:05 +0000 (15:35 +0000)]
Added Spanish Translation for manual/misc/index.xml.es

git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1802071 13f79535-47bb-0310-9956-ffa450edef68

7 years agoUpdated files referencing Spanish translation for manual/misc/perf-scaling.xml.es...
Daniel Ferradal [Sun, 16 Jul 2017 15:15:16 +0000 (15:15 +0000)]
Updated files referencing Spanish translation for manual/misc/perf-scaling.xml.es r1802068

git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1802069 13f79535-47bb-0310-9956-ffa450edef68

7 years agoAdded Spanish Translation for manual/misc/perf-scaling.xml.es
Daniel Ferradal [Sun, 16 Jul 2017 15:13:13 +0000 (15:13 +0000)]
Added Spanish Translation for manual/misc/perf-scaling.xml.es

git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1802068 13f79535-47bb-0310-9956-ffa450edef68

7 years agoAdded Updates to Extra files referencing Spanish translation for manual/misc/password...
Daniel Ferradal [Sun, 16 Jul 2017 14:51:11 +0000 (14:51 +0000)]
Added Updates to Extra files referencing Spanish translation for manual/misc/password_encryptions.xml.es r1802066

git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1802067 13f79535-47bb-0310-9956-ffa450edef68

7 years agoAdded Spanish translation for manual/misc/password_encryptions.xml.es
Daniel Ferradal [Sun, 16 Jul 2017 14:49:08 +0000 (14:49 +0000)]
Added Spanish translation for manual/misc/password_encryptions.xml.es

git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1802066 13f79535-47bb-0310-9956-ffa450edef68

7 years agoUpdated Spanish translation for manual/howto/reverse_proxy.xml.es
Daniel Ferradal [Sun, 16 Jul 2017 14:39:21 +0000 (14:39 +0000)]
Updated Spanish translation for manual/howto/reverse_proxy.xml.es

git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1802064 13f79535-47bb-0310-9956-ffa450edef68

7 years agoAdded Extra Files referencing Spanish translation for manual/howto/ssi.xml.es r1802060
Daniel Ferradal [Sun, 16 Jul 2017 14:18:21 +0000 (14:18 +0000)]
Added Extra Files referencing Spanish translation for manual/howto/ssi.xml.es r1802060

git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1802061 13f79535-47bb-0310-9956-ffa450edef68

7 years agoAdded Spanish translation for manual/howto/ssi.xml.es
Daniel Ferradal [Sun, 16 Jul 2017 14:15:22 +0000 (14:15 +0000)]
Added Spanish translation for manual/howto/ssi.xml.es

git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1802060 13f79535-47bb-0310-9956-ffa450edef68

7 years agoAdded Extra Files referencing Spanish translation for manual/mod/mod_auth_basic.xml...
Daniel Ferradal [Sun, 16 Jul 2017 11:11:51 +0000 (11:11 +0000)]
Added Extra Files referencing Spanish translation for manual/mod/mod_auth_basic.xml.es r1802042

git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1802043 13f79535-47bb-0310-9956-ffa450edef68

7 years agoAdded Spanish translation for manual/mod/mod_auth_basic.xml.es
Daniel Ferradal [Sun, 16 Jul 2017 11:08:27 +0000 (11:08 +0000)]
Added Spanish translation for manual/mod/mod_auth_basic.xml.es

git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1802042 13f79535-47bb-0310-9956-ffa450edef68

7 years agomod_proxy_fcgi: Add the support for mod_proxy's
Luca Toscano [Sun, 16 Jul 2017 08:40:46 +0000 (08:40 +0000)]
mod_proxy_fcgi: Add the support for mod_proxy's
                flushpackets and flushwait params

This change was requested on the development mailing
list in order to fill another gap between mod_fcgi
and mod_proxy_fcgi, namely the -flush funtionality.

The more evolved core trunk code would not need this
feature becuse of the non-blocking writes, but it
is be needed in 2.4.x.

git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1802040 13f79535-47bb-0310-9956-ffa450edef68

7 years agohttpdunit: merge CVE-2017-9788 regression tests from feature branch
Jacob Champion [Fri, 14 Jul 2017 22:33:45 +0000 (22:33 +0000)]
httpdunit: merge CVE-2017-9788 regression tests from feature branch

git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1801998 13f79535-47bb-0310-9956-ffa450edef68

7 years agoCVE-2017-9788: add unit tests for get_digest_rec() httpdunit httpdunit
Jacob Champion [Fri, 14 Jul 2017 22:30:17 +0000 (22:30 +0000)]
CVE-2017-9788: add unit tests for get_digest_rec()

Including the module source is a dirty hack, but maybe the direct way is
best for now. More functional tests are still TODO.

git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/branches/httpdunit@1801996 13f79535-47bb-0310-9956-ffa450edef68

7 years agoFollow up to r1801994: CHANGES' PR reference.
Yann Ylavic [Fri, 14 Jul 2017 22:28:38 +0000 (22:28 +0000)]
Follow up to r1801994: CHANGES' PR reference.

git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1801995 13f79535-47bb-0310-9956-ffa450edef68

7 years agoFollow up to r1754164: CHANGES entry.
Yann Ylavic [Fri, 14 Jul 2017 22:21:05 +0000 (22:21 +0000)]
Follow up to r1754164: CHANGES entry.

git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1801994 13f79535-47bb-0310-9956-ffa450edef68

7 years agoAdded other modified files referencing Spanish translation for mod_asis.xml.es r1801894
Daniel Ferradal [Thu, 13 Jul 2017 22:15:39 +0000 (22:15 +0000)]
Added other modified files referencing Spanish translation for mod_asis.xml.es r1801894

git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1801895 13f79535-47bb-0310-9956-ffa450edef68

7 years agoAdded new Spanish translation for mod_asis.xml.es
Daniel Ferradal [Thu, 13 Jul 2017 22:11:09 +0000 (22:11 +0000)]
Added new Spanish translation for mod_asis.xml.es

git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1801894 13f79535-47bb-0310-9956-ffa450edef68

7 years agompm_winnt: Do not redefine the standard CONTAINING_RECORD() macro
Evgeny Kotkov [Wed, 12 Jul 2017 16:49:14 +0000 (16:49 +0000)]
mpm_winnt: Do not redefine the standard CONTAINING_RECORD() macro
in child.c.

This definition has been added in https://svn.apache.org/r88498 — perhaps,
because not every versions of SDK contained it at that time.

But since then, the macro has been available starting from Windows 2000
(https://msdn.microsoft.com/en-us/library/windows/hardware/ff542043),
and any available version of Windows SDK now should also contain it.

git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1801753 13f79535-47bb-0310-9956-ffa450edef68

7 years agompm_winnt: Remove an obsolete comment in child.c explaining why the
Evgeny Kotkov [Wed, 12 Jul 2017 16:16:17 +0000 (16:16 +0000)]
mpm_winnt: Remove an obsolete comment in child.c explaining why the
declarations of the structures and functions to access the completion
contexts reside in a header file.

This no longer holds, as all the necessary functions and structures are
located in the single .c file (child.c).

git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1801749 13f79535-47bb-0310-9956-ffa450edef68

7 years agompm_winnt: Tweak the names of the variables in child.c which are used to
Evgeny Kotkov [Wed, 12 Jul 2017 16:12:21 +0000 (16:12 +0000)]
mpm_winnt: Tweak the names of the variables in child.c which are used to
represent a queue of the completion contexts.

Starting from r1801655, the "queue" isn't really a queue, as all the
access happens with a LIFO order. So, instead of that, call it a "pool
of completion contexts", adjust names of all relevant variables and
tweak the comments.

This patch changes
  - qlock to ctxpool_lock,
  - qhead to ctxpool_head, and
  - qwait_event to ctxpool_wait_event.

git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1801748 13f79535-47bb-0310-9956-ffa450edef68

7 years agompm_winnt: Tweak the listener shutdown code to use a separate event
Evgeny Kotkov [Wed, 12 Jul 2017 16:02:39 +0000 (16:02 +0000)]
mpm_winnt: Tweak the listener shutdown code to use a separate event
instead of the global variable (shutdown_in_progress).

This change has two purposes.  First of all, it makes the listener threads
which are blocked waiting for a completion context exit immediately during
shutdown.  Previously, such threads would only check for exit every second.
The second reason for this change is to put the child_main() function in
charge of controlling the listeners life cycle.  Previously, such relation
was circumvented by the fact that the listeners were also waiting for the
global child exit_event.  With the new separate listener_shutdown_event,
only the child_main() function is responsible for shutting down the
listeners, and I think that this makes the code a bit clearer.

All the original behavior, including the special APLOG_DEBUG diagnostic
message when we fail to acquire a free completion context in 1 second,
is kept unchanged.

git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1801747 13f79535-47bb-0310-9956-ffa450edef68

7 years agompm_winnt: Following up on r1801655, add a comment that explains the
Evgeny Kotkov [Wed, 12 Jul 2017 09:47:36 +0000 (09:47 +0000)]
mpm_winnt: Following up on r1801655, add a comment that explains the
reason to choose the LIFO processing order for completion contexts.

It would be better to keep this important information in the code, instead
of just having it in the log message.

git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1801710 13f79535-47bb-0310-9956-ffa450edef68

7 years agoMakefile.in: merge typo fix from test-integration branch
Jacob Champion [Wed, 12 Jul 2017 00:13:55 +0000 (00:13 +0000)]
Makefile.in: merge typo fix from test-integration branch

git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1801667 13f79535-47bb-0310-9956-ffa450edef68

7 years agoMakefile.in: fix MPM_MODULES typo (in check-conf) trunk-test-integration trunk-test-integration
Jacob Champion [Wed, 12 Jul 2017 00:10:11 +0000 (00:10 +0000)]
Makefile.in: fix MPM_MODULES typo (in check-conf)

git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/branches/trunk-test-integration@1801666 13f79535-47bb-0310-9956-ffa450edef68

7 years agoMakefile.in: fix MPM_MODULES typo
Jacob Champion [Wed, 12 Jul 2017 00:07:08 +0000 (00:07 +0000)]
Makefile.in: fix MPM_MODULES typo

git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1801665 13f79535-47bb-0310-9956-ffa450edef68

7 years agompm_winnt: Advertise support for preshutdown notifications in the service,
Evgeny Kotkov [Tue, 11 Jul 2017 21:39:35 +0000 (21:39 +0000)]
mpm_winnt: Advertise support for preshutdown notifications in the service,
and perform shutdown in respond to SERVICE_CONTROL_PRESHUTDOWN.

The pure shutdown notification leaves a small amount of time for the service
to finish (and the allowed amount of time has been shrinking with every new
version of Windows), and handling only it increases the chance of the process
being killed by SCM, instead of gracefully shutting down.  Handling the
preshutdown control code extends this period, and increases the chances of
finishing everything properly when the machine is rebooted or shut down.

(See https://msdn.microsoft.com/en-us/library/windows/desktop/ms683241)

Please note that although the preshutdown notifications are available only
starting from Windows Vista, the code is compatible with the previous versions
of Windows, since the SCM ignores unknown SERVICE_ACCEPT codes, and will
still send an ordinary SERVICE_CONTROL_SHUTDOWN under old Windows
versions.

git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1801659 13f79535-47bb-0310-9956-ffa450edef68

7 years agompm_winnt: Remove unused values of the io_state_e enum.
Evgeny Kotkov [Tue, 11 Jul 2017 21:13:26 +0000 (21:13 +0000)]
mpm_winnt: Remove unused values of the io_state_e enum.

Submitted By: Ivan Zhakov <ivan {at} visualsvn.com>

git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1801657 13f79535-47bb-0310-9956-ffa450edef68

7 years agompm_winnt: Remove a duplicated comment in the child_main() function.
Evgeny Kotkov [Tue, 11 Jul 2017 21:09:29 +0000 (21:09 +0000)]
mpm_winnt: Remove a duplicated comment in the child_main() function.

git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1801656 13f79535-47bb-0310-9956-ffa450edef68

7 years agompm_winnt: Use a LIFO stack instead of a FIFO queue to hold unused
Evgeny Kotkov [Tue, 11 Jul 2017 21:07:45 +0000 (21:07 +0000)]
mpm_winnt: Use a LIFO stack instead of a FIFO queue to hold unused
completion contexts, as that may significantly reduce the memory usage.

This simple change can have a noticeable impact on the amount of memory
consumed by the child process in various cases.  Every completion context
in the queue has an associated allocator, and every allocator has it's
ap_max_mem_free memory limit which is not given back to the operating
system.  Once the queue grows, it cannot shrink back, and every allocator
in each of the queued completion contexts keeps up to its max_free amount
of memory.  The queue can only grow when a server has to serve multiple
concurrent connections at once.

With that in mind, consider a case with a server that doesn't encounter many
concurrent connections most of the time, but has occasional spikes when
it has to serve multiple concurrent connections.  During such spikes, the
size of the completion context queue grows.

The actual difference between using LIFO and FIFO orders shows up after
such spikes, when the server is back to light load and doesn't see a lot
of concurrency.  With FIFO order, every completion context in the queue
will be used in a round-robin manner, thus using *every* available allocator
one by one and ultimately claiming up to (N * ap_max_mem_free memory) from
the OS.  With LIFO order, only the completion contexts that are close to
the top of the stack will be used and reused for subsequent connections.
Hence, only a small part of the allocators will be used, and this can
prevent all other allocators from unnecessarily acquiring memory from
the OS (and keeping it), and this reduces the overall memory footprint.

Please note that this change doesn't affect the worst case behavior, as
it's still (N * ap_max_mem_free memory), but tends to behave better in
practice, for the reasons described above.

Another thing worth considering is the new behavior when the OS decides
to swap out pages of the child process, for example, in a close-to-OOM
condition.  Handling every new connection after the swap requires the OS
to load the memory pages for the allocator from the completion context that
is used for this connection.  With FIFO order, the completion contexts are
used one by one, and this would cause page loads for every new connection.
With LIFO order, there will be almost no swapping, since the same completion
context is going to be reused for subsequent new connections.

git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1801655 13f79535-47bb-0310-9956-ffa450edef68

7 years agompm_winnt: Drop the APLOG_DEBUG diagnostic saying how many thread
Evgeny Kotkov [Tue, 11 Jul 2017 17:45:55 +0000 (17:45 +0000)]
mpm_winnt: Drop the APLOG_DEBUG diagnostic saying how many thread
are blocked on the I/O completion port during the shutdown.

Prior to r1801635, the shutdown code required to know the amount of blocked
threads, as it has been dispatching the same amount of completion packets.
But this no longer holds, and the only reason why we maintain the
corresponding g_blocked_threads variable is because of this debug
diagnostic message.

Drop it in order to reduce complexity of the quite critical code in the
winnt_get_connection() function and to reduce the amount of global
variables.

git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1801640 13f79535-47bb-0310-9956-ffa450edef68

7 years agompm_winnt: Remove an unnecessary Sleep() in the winnt_accept() function.
Evgeny Kotkov [Tue, 11 Jul 2017 17:16:49 +0000 (17:16 +0000)]
mpm_winnt: Remove an unnecessary Sleep() in the winnt_accept() function.

This sleep occured in a situation when:

 - We don't have a free completion context in the queue
 - We can't add one, as doing so would exceed the max_num_completion_contexts
   limit (all worker threads are busy)
 - We have exceeded a 1 second timeout while waiting for it

In this case, the Sleep() call is unnecessary, as there is no intermittent
failure that can be waited out, but rather than that, it's an ordinary
situation with all workers being busy.  Presumably, calling Sleep() here
can be even considered harmful, as it affects the fairness between the
listeners that are blocked waiting for the completion context.

So, instead of calling Sleep() just check for the possible shutdown and
immediately retry acquiring a completion context.  If all worker threads
are still busy, the retry will block in the same WaitForSingleObject() call,
which is fine.

git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1801639 13f79535-47bb-0310-9956-ffa450edef68

7 years agompm_winnt: Simplify the shutdown code that was waiting for multiple worker
Evgeny Kotkov [Tue, 11 Jul 2017 16:51:09 +0000 (16:51 +0000)]
mpm_winnt: Simplify the shutdown code that was waiting for multiple worker
thread handles in batches.

Starting from r1801636, there is no difference between ending the wait with
one or multiple remaining threads.  This is because we terminate the process
if at least one thread is still active when we hit a timeout.

Therefore, instead of making an effort to evenly distribute and batch the
handles with WaitForMultipleObjects(), we could just start from one end,
and wait for one thread handle at a time.

git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1801637 13f79535-47bb-0310-9956-ffa450edef68

7 years agompm_winnt: Avoid using TerminateThread() in case the shutdown routine
Evgeny Kotkov [Tue, 11 Jul 2017 16:46:47 +0000 (16:46 +0000)]
mpm_winnt: Avoid using TerminateThread() in case the shutdown routine
hits a timeout while waiting for the worker threads to exit.

Using TerminateThread() can have dangerous consequences such as deadlocks —
say, if the the thread is terminated while holding a lock or a heap lock
in the middle of HeapAlloc(), as these locks would not be released.
Or it can corrupt the application state and cause a crash.

(See https://msdn.microsoft.com/en-us/library/windows/desktop/ms686717)

Rework the code to call TerminateProcess() in the described circumstances
and leave the cleanup to the operating system.

git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1801636 13f79535-47bb-0310-9956-ffa450edef68

7 years agompm_winnt: Make the shutdown faster by avoiding unnecessary Sleep()'s
Evgeny Kotkov [Tue, 11 Jul 2017 16:41:51 +0000 (16:41 +0000)]
mpm_winnt: Make the shutdown faster by avoiding unnecessary Sleep()'s
when shutting down the worker threads.

Previously, the shutdown code was posting an amount of I/O completion
packets equal to the amount of the threads blocked on the I/O completion
port.  Then it would Sleep() until all these threads "acknowledge" the
completion packets by decrementing the global amount of blocked threads.

A better way would be to send the number of IOCP_SHUTDOWN completion
packets equal to the total amount of threads and immediately proceed to
the next step.  There is no need to block until the threads actually receive
the completion, as the shutdown process includes a separate step that waits
until the threads exit, and the new approach avoids an unnecessary delay.

git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1801635 13f79535-47bb-0310-9956-ffa450edef68

7 years agoAdd logic to read the Upgrade header and use it in the response.
Jean-Frederic Clere [Tue, 11 Jul 2017 11:41:44 +0000 (11:41 +0000)]
Add logic to read the Upgrade header and use it in the response.
Use we you are proxying to a server that has multiple upgrade on the same IP/Port.
PR 61142

git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1801594 13f79535-47bb-0310-9956-ffa450edef68

7 years agompm_winnt: Following up on r1801144, use the new accept_filter_e enum
Evgeny Kotkov [Mon, 10 Jul 2017 12:22:31 +0000 (12:22 +0000)]
mpm_winnt: Following up on r1801144, use the new accept_filter_e enum
values in a couple of missed places in winnt_accept().

git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1801456 13f79535-47bb-0310-9956-ffa450edef68

7 years agompm_winnt: Fix typo in the logged message in winnt_get_connection().
Evgeny Kotkov [Fri, 7 Jul 2017 11:15:31 +0000 (11:15 +0000)]
mpm_winnt: Fix typo in the logged message in winnt_get_connection().

git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1801148 13f79535-47bb-0310-9956-ffa450edef68

7 years agompm_winnt: Refactor the mpm_get_completion_context() function so that it
Evgeny Kotkov [Fri, 7 Jul 2017 11:14:25 +0000 (11:14 +0000)]
mpm_winnt: Refactor the mpm_get_completion_context() function so that it
would return a proper apr_status_t instead of yielding the result via the
*timeout out variable.

This makes the calling side easier to follow by avoiding an additional
layer of if's.

git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1801147 13f79535-47bb-0310-9956-ffa450edef68

7 years agompm_winnt: Remove an unnecessary retry after receiving a non-timeout failure
Evgeny Kotkov [Fri, 7 Jul 2017 11:08:26 +0000 (11:08 +0000)]
mpm_winnt: Remove an unnecessary retry after receiving a non-timeout failure
from the mpm_get_completion_context() function.

Currently, the only possible reasons why mpm_get_completion_context() could
fail are real errors such as being unable to WaitForSingleObject(), allocate
memory or create an event.  Retrying under such circumstances doesn't make
sense, and could be as well considered harmful.

git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1801146 13f79535-47bb-0310-9956-ffa450edef68

7 years agompm_winnt: Factor out a helper function to parse the type of an accept
Evgeny Kotkov [Fri, 7 Jul 2017 11:00:07 +0000 (11:00 +0000)]
mpm_winnt: Factor out a helper function to parse the type of an accept
filter and use an appropriate enum for it.

This makes the code in winnt_accept() a bit easier to follow.  As a minor
side effect, it also fixes a small bug where the "unrecognized AcceptFilter
'%s'" log entry would always contain "none" instead of the actually
unrecognized kind of the accept filter.

git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1801144 13f79535-47bb-0310-9956-ffa450edef68

7 years agompm_winnt: Don't forget to close the I/O completion port as part of the
Evgeny Kotkov [Fri, 7 Jul 2017 10:51:23 +0000 (10:51 +0000)]
mpm_winnt: Don't forget to close the I/O completion port as part of the
cleanup in the child process.

git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1801143 13f79535-47bb-0310-9956-ffa450edef68

7 years agoOn the trunk:
Stefan Eissing [Thu, 6 Jul 2017 08:15:27 +0000 (08:15 +0000)]
On the trunk:

mod_http2: Simplify ready queue, less memory and better performance. Update
     mod_http2 version to 1.10.7.

git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1800978 13f79535-47bb-0310-9956-ffa450edef68

7 years agoCorrect string scope to prevent duplicated values for subsequent tokens.
William A. Rowe Jr [Wed, 5 Jul 2017 19:44:30 +0000 (19:44 +0000)]
Correct string scope to prevent duplicated values for subsequent tokens.

git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1800919 13f79535-47bb-0310-9956-ffa450edef68

7 years agoFix negotiation type parsing to be strict about "*", "*/*" and "type/*"
William A. Rowe Jr [Wed, 5 Jul 2017 19:42:30 +0000 (19:42 +0000)]
Fix negotiation type parsing to be strict about "*", "*/*" and "type/*"
comparisons.

Submitted by: wrowe, Robert Święcki <robert swiecki.net>

git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1800917 13f79535-47bb-0310-9956-ffa450edef68

7 years agoBackported.
Rainer Jung [Tue, 4 Jul 2017 22:41:31 +0000 (22:41 +0000)]
Backported.

git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1800837 13f79535-47bb-0310-9956-ffa450edef68

7 years agoFix another mod_lua compile error.
Rainer Jung [Tue, 4 Jul 2017 22:14:13 +0000 (22:14 +0000)]
Fix another mod_lua compile error.
Compilation now tested against Lus 5.1, 5.2
and 5.3. The libs were compiled with COMPAT
flags set, but mod_lua no longer sets them
so it should compile and run with non-COMPAT
libs as well.

git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1800833 13f79535-47bb-0310-9956-ffa450edef68

7 years agoFix new compilation breakage in mod_lua.
Rainer Jung [Tue, 4 Jul 2017 21:48:41 +0000 (21:48 +0000)]
Fix new compilation breakage in mod_lua.

git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1800830 13f79535-47bb-0310-9956-ffa450edef68

7 years agoMostly revert the configure compat check for
Rainer Jung [Tue, 4 Jul 2017 20:49:53 +0000 (20:49 +0000)]
Mostly revert the configure compat check for
lua from r1785753. This should now no longer
be needed.

git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1800819 13f79535-47bb-0310-9956-ffa450edef68

7 years agoFix last compat issue with Lua 5.2 and 5.3.
Rainer Jung [Tue, 4 Jul 2017 20:48:43 +0000 (20:48 +0000)]
Fix last compat issue with Lua 5.2 and 5.3.
Patch taken from PR58188 which picked it from
openSUSE.

Still needs testing.

git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1800817 13f79535-47bb-0310-9956-ffa450edef68

7 years agoMore mod_lua compat for Lua 5.1, 5.2, 5.3.
Rainer Jung [Tue, 4 Jul 2017 20:35:06 +0000 (20:35 +0000)]
More mod_lua compat for Lua 5.1, 5.2, 5.3.

One last use of luaL_register() with a non-NULL
"name" argument remaining.

Not tested yet.

git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1800815 13f79535-47bb-0310-9956-ffa450edef68

7 years agomod_lua: Improve compatibility with Lua 5.1, 5.2 and 5.3.
Rainer Jung [Tue, 4 Jul 2017 19:22:23 +0000 (19:22 +0000)]
mod_lua: Improve compatibility with Lua 5.1, 5.2 and 5.3.
PR58188, PR60831, PR61245.

Still to solve: replace uses of luaL_register().

git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1800809 13f79535-47bb-0310-9956-ffa450edef68

7 years agoAdd mod_proxy_hcheck to generated httpd.spec file. PR 60506.
Yann Ylavic [Tue, 4 Jul 2017 14:00:29 +0000 (14:00 +0000)]
Add mod_proxy_hcheck to generated httpd.spec file.  PR 60506.

git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1800788 13f79535-47bb-0310-9956-ffa450edef68

7 years agoOn the trunk:
Stefan Eissing [Mon, 3 Jul 2017 15:44:54 +0000 (15:44 +0000)]
On the trunk:

mod_http2: disable and give warning when mpm_prefork is encountered.
     The server will continue to work, but HTTP/2 will no longer be negotiated.

git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1800689 13f79535-47bb-0310-9956-ffa450edef68

7 years agobackported
Jim Jagielski [Mon, 3 Jul 2017 10:56:29 +0000 (10:56 +0000)]
backported

git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1800627 13f79535-47bb-0310-9956-ffa450edef68

7 years ago* Do not apply the strict permissions of the temporary file to a possibly
Ruediger Pluem [Mon, 3 Jul 2017 06:37:45 +0000 (06:37 +0000)]
* Do not apply the strict permissions of the temporary file to a possibly
  existing passwd file.
  This long standing bug was triggered by fixing a bug in APR in r1791029.

PR: 61240

git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1800594 13f79535-47bb-0310-9956-ffa450edef68

7 years agoRebuild.
Lucien Gentis [Sun, 2 Jul 2017 12:42:19 +0000 (12:42 +0000)]
Rebuild.

git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1800560 13f79535-47bb-0310-9956-ffa450edef68

7 years agoXML update.
Lucien Gentis [Sun, 2 Jul 2017 12:41:20 +0000 (12:41 +0000)]
XML update.

git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1800559 13f79535-47bb-0310-9956-ffa450edef68

7 years agoPartial reversal of r1800306... note virtual scripts in notes
Jim Jagielski [Fri, 30 Jun 2017 12:34:19 +0000 (12:34 +0000)]
Partial reversal of r1800306... note virtual scripts in notes

git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1800393 13f79535-47bb-0310-9956-ffa450edef68

7 years agoproxy_fcgi: remove FPM-specific logic
Jacob Champion [Thu, 29 Jun 2017 17:43:48 +0000 (17:43 +0000)]
proxy_fcgi: remove FPM-specific logic

Reverts r1780328, r1780329, and their associated followups, which
incorrectly manipulated SCRIPT_NAME by default. All proxy_fcgi.t
regression tests now pass.

PR: 61202

git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1800306 13f79535-47bb-0310-9956-ffa450edef68

7 years agoUpdates to files referencing new Spanish translation of mod_allowmethods r1800183
Daniel Ferradal [Wed, 28 Jun 2017 16:13:13 +0000 (16:13 +0000)]
Updates to files referencing new Spanish translation of mod_allowmethods r1800183

git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1800184 13f79535-47bb-0310-9956-ffa450edef68

7 years agoAdded Spanish translation for manual/mod/mod_allowmethods.xml.es
Daniel Ferradal [Wed, 28 Jun 2017 16:06:50 +0000 (16:06 +0000)]
Added Spanish translation for manual/mod/mod_allowmethods.xml.es

git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1800183 13f79535-47bb-0310-9956-ffa450edef68

7 years agoRestore single-char field names inadvertantly disallowed in 2.4.25.
William A. Rowe Jr [Wed, 28 Jun 2017 14:15:28 +0000 (14:15 +0000)]
Restore single-char field names inadvertantly disallowed in 2.4.25.
PR: 61220
Submitted by: ylavic

git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1800173 13f79535-47bb-0310-9956-ffa450edef68

7 years agoRevert 1800111 for a cleaner logic flow proposed by Yann
William A. Rowe Jr [Wed, 28 Jun 2017 14:06:24 +0000 (14:06 +0000)]
Revert 1800111 for a cleaner logic flow proposed by Yann

git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1800171 13f79535-47bb-0310-9956-ffa450edef68

7 years ago* Silence compiler warning
Ruediger Pluem [Wed, 28 Jun 2017 06:50:00 +0000 (06:50 +0000)]
* Silence compiler warning

git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1800126 13f79535-47bb-0310-9956-ffa450edef68

7 years agoAppears to resolve the issue to permit single-char fieldnames; PR61220
William A. Rowe Jr [Wed, 28 Jun 2017 02:33:29 +0000 (02:33 +0000)]
Appears to resolve the issue to permit single-char fieldnames; PR61220

git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1800111 13f79535-47bb-0310-9956-ffa450edef68

7 years agoAdded updates to files referencing new Spanish translation of mod_allowhandlers r1799971
Daniel Ferradal [Mon, 26 Jun 2017 19:09:22 +0000 (19:09 +0000)]
Added updates to files referencing new Spanish translation of mod_allowhandlers r1799971

git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1799972 13f79535-47bb-0310-9956-ffa450edef68

7 years agoAdded Spanish translation for manual/mod/mod_allowhandlers.xml.es
Daniel Ferradal [Mon, 26 Jun 2017 19:03:38 +0000 (19:03 +0000)]
Added Spanish translation for manual/mod/mod_allowhandlers.xml.es

git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1799971 13f79535-47bb-0310-9956-ffa450edef68

7 years agoSynch with 2.4.x
Christophe Jaillet [Mon, 26 Jun 2017 18:36:28 +0000 (18:36 +0000)]
Synch with 2.4.x

git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1799968 13f79535-47bb-0310-9956-ffa450edef68

7 years agoRevert misguided commit r1799731.
William A. Rowe Jr [Mon, 26 Jun 2017 17:45:23 +0000 (17:45 +0000)]
Revert misguided commit r1799731.

Discussion on-list, but any occurance of a platform-specific behavior in this
code path will alter the behavior of the core code and introduce the very
fingerprintable behavior this patch pretended to obscuficate.

Returning 404 for /CON for example may lead to a module such as mod_speling
revealing the existance of a real file named similar to /.conf, which makes
this an unwise behavior.

Further discussion of returning 404 for all CHR files encountered in the
filepath (not URI path), which currently return 403 on all platforms,
belongs on the dev list.

git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1799965 13f79535-47bb-0310-9956-ffa450edef68

7 years agoRebuild.
Lucien Gentis [Sun, 25 Jun 2017 14:46:47 +0000 (14:46 +0000)]
Rebuild.

git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1799810 13f79535-47bb-0310-9956-ffa450edef68

7 years agoXML updates.
Lucien Gentis [Sun, 25 Jun 2017 14:45:54 +0000 (14:45 +0000)]
XML updates.

git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1799809 13f79535-47bb-0310-9956-ffa450edef68

7 years agoAdd CHANGE entry
Christophe Jaillet [Sun, 25 Jun 2017 07:10:19 +0000 (07:10 +0000)]
Add  CHANGE entry

git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1799786 13f79535-47bb-0310-9956-ffa450edef68

7 years agoRemove a backported entry.
Christophe Jaillet [Sun, 25 Jun 2017 07:05:17 +0000 (07:05 +0000)]
Remove a backported entry.

git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1799785 13f79535-47bb-0310-9956-ffa450edef68

7 years agoSince r1753257, "HEAD" method is registered into the registry hash with the M_GET ID.
Christophe Jaillet [Sun, 25 Jun 2017 06:09:43 +0000 (06:09 +0000)]
Since r1753257, "HEAD" method is registered into the registry hash with the M_GET ID.
(r1757672 in 2.4.x)

We iterate over all the values of the registery, so there is no need anymore to have a special case for "HEAD" in  'make_allow()'. It has its own entry now.

With the current code, we have "HEAD" 3 times in the Allow Header field.
This is because we find M_GET 2 times in the registry hash. The first one gives "GET" and "HEAD" (as the special handling), and the second "HEAD" and "HEAD" (as the special handling).

BTW, use APR_ARRAY_PUSH instead of hand coding it, in oder to have the code more readable.

PR 61207

git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1799784 13f79535-47bb-0310-9956-ffa450edef68

7 years agostyle: where did the tabs come from?
Gregg Lewis Smith [Sat, 24 Jun 2017 05:55:22 +0000 (05:55 +0000)]
style: where did the tabs come from?
no code changes

git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1799732 13f79535-47bb-0310-9956-ffa450edef68

7 years agoSend a 404 response like other OSs do instead of 403 on Windows when
Gregg Lewis Smith [Sat, 24 Jun 2017 05:49:45 +0000 (05:49 +0000)]
Send a 404 response like other OSs do instead of 403 on Windows when
a path segment or file requested uses a reserved word so Windows
cannot be fingerprinted. PR55887

git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1799731 13f79535-47bb-0310-9956-ffa450edef68

7 years agoxforms updates
Jim Jagielski [Fri, 23 Jun 2017 15:45:14 +0000 (15:45 +0000)]
xforms updates

git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1799684 13f79535-47bb-0310-9956-ffa450edef68

7 years agocore documentation rebuild
Luca Toscano [Fri, 23 Jun 2017 15:25:06 +0000 (15:25 +0000)]
core documentation rebuild

git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1799681 13f79535-47bb-0310-9956-ffa450edef68

7 years agocore.xml: Wrap a Define directive sentence in a <note>
Luca Toscano [Fri, 23 Jun 2017 15:24:42 +0000 (15:24 +0000)]
core.xml: Wrap a Define directive sentence in a <note>

git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1799680 13f79535-47bb-0310-9956-ffa450edef68

7 years agoupdate transformation
André Malo [Fri, 23 Jun 2017 06:52:36 +0000 (06:52 +0000)]
update transformation

git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1799649 13f79535-47bb-0310-9956-ffa450edef68

7 years agoFixed wrong revision number references in translations with original mod_alias.xml
Daniel Ferradal [Thu, 22 Jun 2017 20:06:48 +0000 (20:06 +0000)]
Fixed wrong revision number references in translations with original mod_alias.xml

git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1799611 13f79535-47bb-0310-9956-ffa450edef68

7 years agoAdded updates to files referencing new Spanish translation of mod_alias r1799605
Daniel Ferradal [Thu, 22 Jun 2017 19:20:36 +0000 (19:20 +0000)]
Added updates to files referencing new Spanish translation of mod_alias r1799605

git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1799606 13f79535-47bb-0310-9956-ffa450edef68

7 years agoAdded Spanish translation for manual/mod/mod_alias.xml
Daniel Ferradal [Thu, 22 Jun 2017 19:11:16 +0000 (19:11 +0000)]
Added Spanish translation for manual/mod/mod_alias.xml

git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1799605 13f79535-47bb-0310-9956-ffa450edef68

7 years agoOK... we display ms, since we want to be able to provide
Jim Jagielski [Wed, 21 Jun 2017 16:29:54 +0000 (16:29 +0000)]
OK... we display ms, since we want to be able to provide
values for <1sec, so entries should assume ms input when
using bal-mgr

git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1799485 13f79535-47bb-0310-9956-ffa450edef68

7 years agoallow balancer-manager to also accept subsecond intervals
Jim Jagielski [Wed, 21 Jun 2017 16:24:00 +0000 (16:24 +0000)]
allow balancer-manager to also accept subsecond intervals

git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1799482 13f79535-47bb-0310-9956-ffa450edef68

7 years agoFixed a small typo (double if) in r1799475
Daniel Ferradal [Wed, 21 Jun 2017 16:13:34 +0000 (16:13 +0000)]
Fixed a small typo (double if) in r1799475

git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1799478 13f79535-47bb-0310-9956-ffa450edef68