Mercurial > hg > nginx
view auto/lib/md5/conf @ 3755:76e3a93821b1
fix race condition if during reconfiguration two cache managers try
to delete old inactive entries: one of them removes a entry just locked by
other manager from the queue and the rbtree as long inactive entry,
causes the latter manager to segfault leaving cache mutex locked,
the bug has been introduced in r3727
author | Igor Sysoev <igor@sysoev.ru> |
---|---|
date | Thu, 02 Sep 2010 14:31:47 +0000 |
parents | 4d47a0658e7d |
children | b659514a3948 |
line wrap: on
line source
# Copyright (C) Igor Sysoev if [ $MD5 != NONE ]; then if grep MD5_Init $MD5/md5.h 2>&1 >/dev/null; then # OpenSSL md5 OPENSSL_MD5=YES have=NGX_HAVE_OPENSSL_MD5 . auto/have have=NGX_OPENSSL_MD5 . auto/have else # rsaref md5 OPENSSL_MD5=NO fi CORE_INCS="$CORE_INCS $MD5" case "$NGX_CC_NAME" in msvc* | owc* | bcc) LINK_DEPS="$LINK_DEPS $MD5/md5.lib" CORE_LIBS="$CORE_LIBS $MD5/md5.lib" ;; icc*) LINK_DEPS="$LINK_DEPS $MD5/libmd5.a" # to allow -ipo optimization we link with the *.o but not library CORE_LIBS="$CORE_LIBS $MD5/md5_dgst.o" if [ $MD5_ASM = YES ]; then CORE_LIBS="$CORE_LIBS $MD5/asm/mx86-elf.o" fi ;; *) LINK_DEPS="$LINK_DEPS $MD5/libmd5.a" CORE_LIBS="$CORE_LIBS $MD5/libmd5.a" #CORE_LIBS="$CORE_LIBS -L $MD5 -lmd5" ;; esac else if [ "$NGX_PLATFORM" != win32 ]; then MD5=NO # FreeBSD, Solaris 10 ngx_feature="system md library" ngx_feature_name= ngx_feature_run=no ngx_feature_incs="#include <md5.h>" ngx_feature_path= ngx_feature_libs="-lmd" ngx_feature_test="MD5_CTX md5; MD5Init(&md5)" . auto/feature ngx_md5_lib="system md" if [ $ngx_found = no ]; then # Solaris 8/9 ngx_feature="system md5 library" ngx_feature_libs="-lmd5" . auto/feature ngx_md5_lib="system md5" fi if [ $ngx_found = no ]; then # OpenSSL crypto library ngx_feature="OpenSSL md5 crypto library" ngx_feature_name="NGX_OPENSSL_MD5" ngx_feature_incs="#include <openssl/md5.h>" ngx_feature_libs="-lcrypto" ngx_feature_test="MD5_CTX md5; MD5_Init(&md5)" . auto/feature ngx_md5_lib="system crypto" if [ $ngx_found = yes ]; then have=NGX_HAVE_OPENSSL_MD5_H . auto/have fi fi if [ $ngx_found = yes ]; then CORE_LIBS="$CORE_LIBS $ngx_feature_libs" MD5=YES MD5_LIB=$ngx_md5_lib fi fi if [ $MD5 != YES ]; then cat << END $0: error: the HTTP cache module requires md5 functions from OpenSSL library. You can either disable the module by using --without-http-cache option, or install the OpenSSL library into the system, or build the OpenSSL library statically from the source with nginx by using --with-http_ssl_module --with-openssl=<path> options. END exit 1 fi fi