view auto/lib/google-perftools/conf @ 9191:618132842e7c

QUIC: ignore duplicate PATH_CHALLENGE frames. According to RFC 9000, an endpoint SHOULD NOT send multiple PATH_CHALLENGE frames in a single packet. The change adds a check to enforce this claim to optimize server behavior. Previously each PATH_CHALLENGE always resulted in a single response datagram being sent to client. The effect of this was however limited by QUIC flood protection. Also, PATH_CHALLENGE is explicitly disabled in Initial and Handshake levels, see RFC 9000, Table 3. However, technically it may be sent by client in 0-RTT over a new path without actual migration, even though the migration itself is prohibited during handshake. This allows client to coalesce multiple 0-RTT packets each carrying a PATH_CHALLENGE and end up with multiple PATH_CHALLENGEs per datagram. This again leads to suboptimal behavior, see above. Since the purpose of sending PATH_CHALLENGE frames in 0-RTT is unclear, these frames are now only allowed in 1-RTT. For 0-RTT they are silently ignored.
author Roman Arutyunyan <arut@nginx.com>
date Wed, 22 Nov 2023 14:48:12 +0400
parents f7e79596baf2
children
line wrap: on
line source


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


    ngx_feature="Google perftools"
    ngx_feature_name=
    ngx_feature_run=no
    ngx_feature_incs=
    ngx_feature_path=
    ngx_feature_libs="-lprofiler"
    ngx_feature_test="void ProfilerStop(void);
                      ProfilerStop()"
    . auto/feature


if [ $ngx_found = no ]; then

    # FreeBSD port

    ngx_feature="Google perftools in /usr/local/"

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

    . auto/feature
fi


if [ $ngx_found = no ]; then

    # MacPorts

    ngx_feature="Google perftools in /opt/local/"

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

    . auto/feature
fi


if [ $ngx_found = yes ]; then
    CORE_LIBS="$CORE_LIBS $ngx_feature_libs"

else

cat << END

$0: error: the Google perftools module requires the Google perftools
library. You can either do not enable the module or install the library.

END

    exit 1
fi