Mercurial > hg > nginx-quic
view auto/lib/sha1/conf @ 5541:fdb67cfc957d
Fixed TCP_DEFER_ACCEPT handling (ticket #353).
Backed out 05a56ebb084a, as it turns out that kernel can return connections
without any delay if syncookies are used. This basically means we can't
assume anything about connections returned with deferred accept set.
To solve original problem the 05a56ebb084a tried to solve, i.e. to don't
wait longer than needed if a connection was accepted after deferred accept
timeout, this patch changes a timeout set with setsockopt(TCP_DEFER_ACCEPT)
to 1 second, unconditionally. This is believed to be enough for speed
improvements, and doesn't imply major changes to timeouts used.
Note that before 2.6.32 connections were dropped after a timeout. Though
it is believed that 1s is still appropriate for kernels before 2.6.32,
as previously tcp_synack_retries controlled the actual timeout and 1s results
in more than 1 minute actual timeout by default.
author | Maxim Dounin <mdounin@mdounin.ru> |
---|---|
date | Tue, 28 Jan 2014 15:40:46 +0400 |
parents | b0a616778038 |
children | 78f8ac479735 |
line wrap: on
line source
# Copyright (C) Igor Sysoev # Copyright (C) Nginx, Inc. if [ $SHA1 != NONE ]; then have=NGX_HAVE_SHA1 . auto/have CORE_INCS="$CORE_INCS $SHA1" case "$NGX_CC_NAME" in msvc* | owc* | bcc) LINK_DEPS="$LINK_DEPS $SHA1/sha1.lib" CORE_LIBS="$CORE_LIBS $SHA1/sha1.lib" ;; icc*) LINK_DEPS="$LINK_DEPS $SHA1/libsha.a" # to allow -ipo optimization we link with the *.o but not library CORE_LIBS="$CORE_LIBS $SHA1/sha1_dgst.o" if [ $SHA1_ASM = YES ]; then CORE_LIBS="$CORE_LIBS $SHA1/asm/sx86-elf.o" fi ;; *) LINK_DEPS="$LINK_DEPS $SHA1/libsha.a" CORE_LIBS="$CORE_LIBS $SHA1/libsha.a" #CORE_LIBS="$CORE_LIBS -L $SHA1 -lsha" ;; esac else if [ "$NGX_PLATFORM" != win32 ]; then SHA1=NO # FreeBSD ngx_feature="sha1 in system md library" ngx_feature_name=NGX_HAVE_SHA1 ngx_feature_run=no ngx_feature_incs="#include <sha.h>" ngx_feature_path= ngx_feature_libs="-lmd" ngx_feature_test="SHA_CTX sha1; SHA1_Init(&sha1)" . auto/feature ngx_sha1_lib="system md" if [ $ngx_found = no ]; then # OpenSSL crypto library ngx_feature="sha1 in system OpenSSL crypto library" ngx_feature_incs="#include <openssl/sha.h>" ngx_feature_libs="-lcrypto" . auto/feature ngx_sha1_lib="system crypto" if [ $ngx_found = yes ]; then have=NGX_HAVE_OPENSSL_SHA1_H . auto/have fi fi if [ $ngx_found = yes ]; then CORE_LIBS="$CORE_LIBS $ngx_feature_libs" SHA1=YES SHA1_LIB=$ngx_sha1_lib fi fi fi