Mercurial > hg > nginx-quic
view auto/lib/md5/conf @ 4232:487ab473f393
Event pipe: fixes for complex protocols.
1. In ngx_event_pipe_write_chain_to_temp_file() make sure to fully write
all shadow buffers up to last_shadow. With this change recycled buffers
cannot appear in p->out anymore. This also fixes segmentation faults
observed due to ngx_event_pipe_write_chain_to_temp() not freeing any
raw buffers while still returning NGX_OK.
2. In ngx_event_pipe_write_to_downstream() we now properly check for busy
size as a size of buffers, not a size of data in these buffers. This
fixes situations where all available buffers became busy (including
segmentation faults due to this).
3. The ngx_event_pipe_free_shadow_raw_buf() function is dropped. It's
incorrect and not needed.
author | Maxim Dounin <mdounin@mdounin.ru> |
---|---|
date | Mon, 31 Oct 2011 09:53:16 +0000 |
parents | ec8dfac68f41 |
children | d620f497c50f |
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 have=NGX_HAVE_MD5 . auto/have 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_HAVE_MD5 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 have=NGX_HAVE_MD5 . 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 fi