CRYPTO_THREADID_set_callback() is write-once, so if mod_ssl is unloaded
and reloaded into a different address, we'll crash if OpenSSL wasn't
also unloaded and reloaded at the same time. This can happen if another
module or library is using OpenSSL as well.
- OpenSSL 1.1.0 isn't affected.
- Certain platforms (Windows, BeOS, and POSIX-compliant systems) can
make use of the default THREADID callback in OpenSSL 1.0.x.
- If the deprecated CRYPTO_set_id_callback() is available, we can use it
instead of CRYPTO_THREADID_set_callback().
Otherwise, we have to fall back to CRYPTO_THREADID_set_callback(), but
hopefully that applies to a small percentage of users at this point.
git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/branches/trunk-openssl-threadid@1791732 13f79535-47bb-0310-9956-ffa450edef68
This is step one for fixing, or at least mitigating, PR60947. Determine
which platforms can use the default OpenSSL (1.0.x) threadid-callback,
by recording the address of errno for several threads and testing that
they're all different.
The result of this test is put into the new macro,
AP_OPENSSL_USE_ERRNO_THREADID.
git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/branches/trunk-openssl-threadid@1791054 13f79535-47bb-0310-9956-ffa450edef68
APACHE_MODULE macro, as a comma separated list, e.g.
APACHE_MODULE(proxy_http2, [...], [proxy,http2])
will evaluate the availability of mod_proxy, followed by mod_http2
git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1749658 13f79535-47bb-0310-9956-ffa450edef68
modules and MPMs during build.
Normal modules and MPMs follow different
rules in the config, e.g. we are only
allowed to have one active LoadModule
for an MPM in the config.
As a side effect, LoadModule for MPMs
will now come before LoadModule for
the normal modules.
git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1730079 13f79535-47bb-0310-9956-ffa450edef68
- don't check for SSLeay_version() in configure
The function no longer exists in 1.1.0.
It was replaced by OpenSSL_version().
- Switch between SSLeay_version(U) and
OpenSSL_version() depending on version
in modules/ssl/ssl_util_ssl.h.
- Use MODSSL_LIBRARY_DYNTEXT everywhere.
git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1728981 13f79535-47bb-0310-9956-ffa450edef68
with mod_http2 doing it first. Because the result of APACHE_CHECK_OPENSSL
is cached this causes MOD_LDFLAGS and MOD_CFLAGS to remain unset for mod_ssl
which in turn causes it not to be linked against Openssl which means that
mod_ssl cannot be loaded if the Openssl libs haven't been loaded by other means
already.
Fix this by caching the values for MOD_LDFLAGS and MOD_CFLAGS created during
the first run and set them in the cached case.
git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1725325 13f79535-47bb-0310-9956-ffa450edef68
Fixes the build with LibreSSL which does not provide this function.
Submitted by: Bernard Spil <pil.oss gmail com>, stsp
Committed by: stsp
git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1674542 13f79535-47bb-0310-9956-ffa450edef68
also use pkg-config for determining the -l flags (and fall back
to a hardcoded default of "-lssl -lcrypto")
add --static to pkg-config invocations, so that libraries for
static linking are also taken into account (PR 54252 - note that
the additional flags will only appear in modules/ssl/modules.mk
and ab_LDFLAGS, so potential side effects are limited)
separate --libs-only-L and --libs-only-other into two invocations
(can't be used concurrently, only the first takes effect)
use --silence-errors where applicable
git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1428184 13f79535-47bb-0310-9956-ffa450edef68
mod_systemd: Specify "all" instead of "yes" (on Unix) so that APACHE_MODULE doesn't
act as if the user requested it.
General: Fix APACHE_MODULE so that failed prereqs will disable a module unless the
user requested it explicitly.
Result: By default systemd will be enabled where it actually works and disabled otherwise,
but if the user requests it and the prereqs fail then configure will halt.
git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1396440 13f79535-47bb-0310-9956-ffa450edef68
r1385216 broke building of mpm event with serf support. To fix,
* introduce APACHE_MPMPATH_INIT/FINISH similar to
APACHE_MODPATH_INIT/FINISH to create modules.mk and add
MOD_* vars to it.
* change APACHE_MPM_MODULE to only append to modules.mk, not
overwrite
* add APACHE_MPMPATH_INIT/FINISH to all MPMs
git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1395252 13f79535-47bb-0310-9956-ffa450edef68
[second try, supersedes r1385214]
Add MOD_CFLAGS, MOD_LDFLAGS variables etc. to the build commands,
which are available to modules for customization on a per-subdir
basis (by adding definitions to modules.mk). Reduces the risk
of side-effects when a module needs to add CFLAGS, LDFLAGS etc.
and these would be added to the global settings (ALL_CFLAGS etc.).
Adapt build settings for mod_ssl, mod_socache_dc, mod_deflate,
mod_xml2enc, mod_proxy_html, and mod_lua to use the new MOD_xxx
build variables.
Change PICFLAGS, SHLTCFLAGS and LTCFLAGS into config vars, instead
of AC_SUBSTing them in build/rules.mk.in. For support/ab, introduce
ab_CFLAGS and ab_LDFLAGS, and define explicit make targets where
they appear at the proper position in the build commands.
Consistently use "--with-xxx=PATH" in configure help strings which
are used to specify a path to the installation directory of an
auxiliary package.
git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1385216 13f79535-47bb-0310-9956-ffa450edef68
selection) by default. Don't handle modules enabled with --enable-foo
specially.
This fixes problems with module dependencies until someone implements a
mechanism for resolving module dependencies.
git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1200491 13f79535-47bb-0310-9956-ffa450edef68
or explicitly selected by a configure --enable-foo argument. The
LoadModule statements for modules enabled by --enable-mods-shared=most
and friends will be commented out.
git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1199027 13f79535-47bb-0310-9956-ffa450edef68
-Wformat
-Wformat-security
-Werror=format-security
-Werror=declaration-after-statement
Add new macro APACHE_ADD_GCC_CFLAGS to do the compatibility check.
git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1180331 13f79535-47bb-0310-9956-ffa450edef68
mod_proxy_fdpass being built shared even with --enable-mods-static=reallyall.
Document bug/limitiation in APACHE_MODULE macro.
git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1154126 13f79535-47bb-0310-9956-ffa450edef68