From: Ralf S. Engelschall Date: Sat, 5 May 2001 09:25:52 +0000 (+0000) Subject: Integrate mod_ssl into the Autoconf facility. X-Git-Tag: 2.0.18~108 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=680f9c0157d76d346a0535b48bfdb800befbba8f;p=apache Integrate mod_ssl into the Autoconf facility. (currently only stub files are compiled) git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@89002 13f79535-47bb-0310-9956-ffa450edef68 --- diff --git a/modules/ssl/Makefile.in b/modules/ssl/Makefile.in new file mode 100644 index 0000000000..2207d48f3c --- /dev/null +++ b/modules/ssl/Makefile.in @@ -0,0 +1,50 @@ +## ==================================================================== +## The Apache Software License, Version 1.1 +## +## Copyright (c) 2000-2001 The Apache Software Foundation. All rights +## reserved. +## +## Redistribution and use in source and binary forms, with or without +## modification, are permitted provided that the following conditions +## are met: +## +## 1. Redistributions of source code must retain the above copyright +## notice, this list of conditions and the following disclaimer. +## +## 2. Redistributions in binary form must reproduce the above copyright +## notice, this list of conditions and the following disclaimer in +## the documentation and/or other materials provided with the +## distribution. +## +## 3. The end-user documentation included with the redistribution, +## if any, must include the following acknowledgment: +## "This product includes software developed by the +## Apache Software Foundation (http://www.apache.org/)." +## Alternately, this acknowledgment may appear in the software itself, +## if and wherever such third-party acknowledgments normally appear. +## +## 4. The names "Apache" and "Apache Software Foundation" must +## not be used to endorse or promote products derived from this +## software without prior written permission. For written +## permission, please contact apache@apache.org. +## +## 5. Products derived from this software may not be called "Apache", +## nor may "Apache" appear in their name, without prior written +## permission of the Apache Software Foundation. +## +## THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED +## WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES +## OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +## DISCLAIMED. IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR +## ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +## SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +## LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF +## USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND +## ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, +## OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT +## OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +## SUCH DAMAGE. +## ==================================================================== + +include $(top_srcdir)/build/special.mk + diff --git a/modules/ssl/config.m4 b/modules/ssl/config.m4 new file mode 100644 index 0000000000..4eeefd7b79 --- /dev/null +++ b/modules/ssl/config.m4 @@ -0,0 +1,160 @@ +dnl ## ==================================================================== +dnl ## The Apache Software License, Version 1.1 +dnl ## +dnl ## Copyright (c) 2000-2001 The Apache Software Foundation. All rights +dnl ## reserved. +dnl ## +dnl ## Redistribution and use in source and binary forms, with or without +dnl ## modification, are permitted provided that the following conditions +dnl ## are met: +dnl ## +dnl ## 1. Redistributions of source code must retain the above copyright +dnl ## notice, this list of conditions and the following disclaimer. +dnl ## +dnl ## 2. Redistributions in binary form must reproduce the above copyright +dnl ## notice, this list of conditions and the following disclaimer in +dnl ## the documentation and/or other materials provided with the +dnl ## distribution. +dnl ## +dnl ## 3. The end-user documentation included with the redistribution, +dnl ## if any, must include the following acknowledgment: +dnl ## "This product includes software developed by the +dnl ## Apache Software Foundation (http://www.apache.org/)." +dnl ## Alternately, this acknowledgment may appear in the software itself, +dnl ## if and wherever such third-party acknowledgments normally appear. +dnl ## +dnl ## 4. The names "Apache" and "Apache Software Foundation" must +dnl ## not be used to endorse or promote products derived from this +dnl ## software without prior written permission. For written +dnl ## permission, please contact apache@apache.org. +dnl ## +dnl ## 5. Products derived from this software may not be called "Apache", +dnl ## nor may "Apache" appear in their name, without prior written +dnl ## permission of the Apache Software Foundation. +dnl ## +dnl ## THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED +dnl ## WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES +dnl ## OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +dnl ## DISCLAIMED. IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR +dnl ## ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +dnl ## SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +dnl ## LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF +dnl ## USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND +dnl ## ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, +dnl ## OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT +dnl ## OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +dnl ## SUCH DAMAGE. +dnl ## ==================================================================== + +dnl # start of module specific part +APACHE_MODPATH_INIT(ssl) + +dnl # list of module object files +ssl_objs="mod_ssl.lo" +ssl_objs="$ssl_objs ssl_engine_config.lo" + +dnl # hook module into the Autoconf mechanism (--enable-ssl option) +APACHE_MODULE(ssl, [SSL/TLS support (mod_ssl)], $ssl_objs, , no, [ + + dnl # hook into Autoconf mechanism (--with-ssl[=DIR] option) + AC_MSG_CHECKING(for SSL/TLS toolkit base) + ssltk_base="SYSTEM" + AC_ARG_WITH(ssl, [ --with-ssl[=DIR] SSL/TLS toolkit (OpenSSL)], [ + if test ".$withval" != .yes -a ".$withval" != .; then + ssltk_base="$withval" + if test ! -d $ssltk_base; then + AC_MSG_ERROR([invalid SSL/TLS toolkit base directory $ssltk_base]) + fi + fi + ]) + AC_MSG_RESULT($ssltk_base) + + dnl # determine SSL/TLS toolkit frontend (openssl binary) + AC_MSG_CHECKING(for SSL/TLS toolkit frontend) + ssltk_frontend="" + if test ".$ssltk_base" = .SYSTEM; then + for p in . `echo $PATH | sed -e 's/:/ /g'`; do + if test -f "$p/openssl"; then + ssltk_frontend="$p/openssl" + break + fi + done + if test ".$ssltk_frontend" = .; then + AC_MSG_ERROR(['openssl' not found in $PATH]) + fi + else + if test -f "$ssltk_base/bin/openssl"; then + ssltk_frontend="$ssltk_base/bin/openssl" + else + AC_MSG_ERROR(['openssl' not found in $ssltk_base/bin/]) + fi + fi + AC_MSG_RESULT($ssltk_frontend) + + dnl # determine SSL/TLS toolkit version + AC_MSG_CHECKING(for SSL/TLS toolkit version) + ssltk_version="`$ssltk_frontend version`" + case "$ssltk_version" in + *0.9.[[6789]]* ) ;; + * ) AC_MSG_ERROR([SSL/TLS toolkit version $ssltk_version not supported]) ;; + esac + AC_MSG_RESULT($ssltk_version) + + dnl # determine SSL/TLS toolkit include directory + AC_MSG_CHECKING(for SSL/TLS toolkit includes) + ssltk_incdir="" + if test ".$ssltk_base" = .SYSTEM; then + for p in . /usr/include /usr/include/ssl/ /usr/local/include /usr/local/include/ssl; do + if test -f "$p/openssl/ssl.h"; then + ssltk_incdir="$p" + break + fi + done + if test ".$ssltk_incdir" = .; then + AC_MSG_ERROR([OpenSSL headers not found]) + fi + else + if test -f "$ssltk_base/include/openssl/ssl.h"; then + ssltk_incdir="$ssltk_base/include" + else + AC_MSG_ERROR([OpenSSL headers not found under $ssltk_base]) + fi + fi + AC_MSG_RESULT($ssltk_incdir) + + dnl # determine SSL/TLS toolkit library directory + AC_MSG_CHECKING(for SSL/TLS toolkit libraries) + ssltk_libdir="" + if test ".$ssltk_base" = .SYSTEM; then + for p in . /lib /usr/lib /usr/local/lib; do + if test -f "$p/libssl.a" -o -f "$p/libssl.so"; then + ssltk_libdir="$p" + break + fi + done + if test ".$ssltk_libdir" = .; then + AC_MSG_ERROR([OpenSSL libraries not found]) + fi + else + if test -f "$ssltk_base/libssl.a" -o -f "$ssltk_base/libssl.so"; then + ssltk_libdir="$ssltk_base" + elif test -f "$ssltk_base/lib/libssl.a" -o -f "$ssltk_base/lib/libssl.so"; then + ssltk_libdir="$ssltk_base/lib" + else + AC_MSG_ERROR([OpenSSL libraries not found under $ssltk_base]) + fi + fi + AC_MSG_RESULT($ssltk_libdir) + + dnl # annotate the Apache build environment with determined information + if test ".$ssltk_incdir" != "./usr/include"; then + INCLUDES="$INCLUDES -I$ssltk_incdir" + fi + if test ".$ssltk_libdir" != "./usr/lib"; then + LIBS="$LIBS -L$ssltk_libdir -lssl -lcrypto" + fi +]) + +dnl # end of module specific part +APACHE_MODPATH_FINISH + diff --git a/modules/ssl/mod_ssl.c b/modules/ssl/mod_ssl.c index 61d5b81b65..f3b5901f0c 100644 --- a/modules/ssl/mod_ssl.c +++ b/modules/ssl/mod_ssl.c @@ -60,6 +60,11 @@ others think that what you are doing is honourable.'' -- Ben Laurie, Apache-SSL author */ +#include "httpd.h" +#include "http_config.h" + +#if 0 /* XXX */ + #include "mod_ssl.h" /* _________________________________________________________________ @@ -72,7 +77,7 @@ * identify the module to SCCS `what' and RCS `ident' commands */ static char const sccsid[] = "@(#) mod_ssl/" MOD_SSL_VERSION " >"; -static char const rcsid[] = "$Id: mod_ssl.c,v 1.2 2001/05/04 22:20:45 rse Exp $"; +static char const rcsid[] = "$Id: mod_ssl.c,v 1.3 2001/05/05 09:25:52 rse Exp $"; /* * the table of configuration directives we provide @@ -244,3 +249,15 @@ module MODULE_VAR_EXPORT ssl_module = { ssl_hook_CloseConnection /* socket connection close */ }; +#endif /* XXX */ + +module AP_MODULE_DECLARE_DATA ssl_module = { + STANDARD20_MODULE_STUFF, + NULL, /* create per-directory config structure */ + NULL, /* merge per-directory config structures */ + NULL, /* create per-server config structure */ + NULL, /* merge per-server config structures */ + NULL, /* command apr_table_t */ + NULL /* register hooks */ +}; + diff --git a/modules/ssl/mod_ssl.h b/modules/ssl/mod_ssl.h index 7637accd87..48391850d1 100644 --- a/modules/ssl/mod_ssl.h +++ b/modules/ssl/mod_ssl.h @@ -64,6 +64,8 @@ #ifndef MOD_SSL_H #define MOD_SSL_H 1 +#if 0 /* XXX */ + /* * Check whether Extended API (EAPI) is enabled */ @@ -849,4 +851,6 @@ void ssl_vendor_register(void); void ssl_vendor_unregister(void); #endif +#endif /* XXX */ + #endif /* MOD_SSL_H */ diff --git a/modules/ssl/ssl_engine_config.c b/modules/ssl/ssl_engine_config.c index fe51498b0b..d59cd21334 100644 --- a/modules/ssl/ssl_engine_config.c +++ b/modules/ssl/ssl_engine_config.c @@ -60,8 +60,9 @@ /* ``Damned if you do, damned if you don't.'' -- Unknown */ -#include "mod_ssl.h" +#if 0 /* XXX */ +#include "mod_ssl.h" /* _________________________________________________________________ ** @@ -1089,3 +1090,5 @@ const char *ssl_cmd_SSLProxyMachineCertificatePath( #endif /* SSL_EXPERIMENTAL_PROXY */ +#endif /* XXX */ +