view auto/lib/libgd/conf @ 7570:d6cf51af8a3d

HTTP/2: fixed possible alert about left open socket on shutdown. This could happen when graceful shutdown configured by worker_shutdown_timeout times out and is then followed by another timeout such as proxy_read_timeout. In this case, the HEADERS frame is added to the output queue, but attempt to send it fails (due to c->error forcibly set during graceful shutdown timeout). This triggers request finalization which attempts to close the stream. But the stream cannot be closed because there is a frame in the output queue, and the connection cannot be finalized. This leaves the connection open without any timer events leading to alert. The fix is to post write event when sending output queue fails on c->error. That will finalize the connection.
author Ruslan Ermilov <ru@nginx.com>
date Mon, 23 Sep 2019 15:45:32 +0300
parents f7e79596baf2
children
line wrap: on
line source


# Copyright (C) Igor Sysoev
# Copyright (C) Nginx, Inc.


    ngx_feature="GD library"
    ngx_feature_name=
    ngx_feature_run=no
    ngx_feature_incs="#include <gd.h>"
    ngx_feature_path=
    ngx_feature_libs="-lgd"
    ngx_feature_test="gdImagePtr img = gdImageCreateFromGifPtr(1, NULL);
                      (void) img"
    . auto/feature


if [ $ngx_found = no ]; then

    # FreeBSD port

    ngx_feature="GD library in /usr/local/"
    ngx_feature_path="/usr/local/include"

    if [ $NGX_RPATH = YES ]; then
        ngx_feature_libs="-R/usr/local/lib -L/usr/local/lib -lgd"
    else
        ngx_feature_libs="-L/usr/local/lib -lgd"
    fi

    . auto/feature
fi


if [ $ngx_found = no ]; then

    # NetBSD port

    ngx_feature="GD library in /usr/pkg/"
    ngx_feature_path="/usr/pkg/include"

    if [ $NGX_RPATH = YES ]; then
        ngx_feature_libs="-R/usr/pkg/lib -L/usr/pkg/lib -lgd"
    else
        ngx_feature_libs="-L/usr/pkg/lib -lgd"
    fi

    . auto/feature
fi


if [ $ngx_found = no ]; then

    # MacPorts

    ngx_feature="GD library in /opt/local/"
    ngx_feature_path="/opt/local/include"

    if [ $NGX_RPATH = YES ]; then
        ngx_feature_libs="-R/opt/local/lib -L/opt/local/lib -lgd"
    else
        ngx_feature_libs="-L/opt/local/lib -lgd"
    fi

    . auto/feature
fi


if [ $ngx_found = yes ]; then

    CORE_INCS="$CORE_INCS $ngx_feature_path"

    if [ $USE_LIBGD = YES ]; then
        CORE_LIBS="$CORE_LIBS $ngx_feature_libs"
    fi

    NGX_LIB_LIBGD=$ngx_feature_libs

    ngx_feature="GD WebP support"
    ngx_feature_name="NGX_HAVE_GD_WEBP"
    ngx_feature_test="gdImagePtr img = gdImageCreateFromWebpPtr(1, NULL);
                      (void) img"
    . auto/feature

else

cat << END

$0: error: the HTTP image filter module requires the GD library.
You can either do not enable the module or install the libraries.

END

    exit 1

fi