view auto/lib/geoip/conf @ 6949:ff0c8e11edbc

Simplified and improved sendfile() code on Linux. The ngx_linux_sendfile() function is now used for both normal sendfile() and sendfile in threads. The ngx_linux_sendfile_thread() function was modified to use the same interface as ngx_linux_sendfile(), and is simply called from ngx_linux_sendfile() when threads are enabled. Special return code NGX_DONE is used to indicate that a thread task was posted and no further actions are needed. If number of bytes sent is less that what we were sending, we now always retry sending. This is needed for sendfile() in threads as the number of bytes we are sending might have been changed since the thread task was posted. And this is also needed for Linux 4.3+, as sendfile() might be interrupted at any time and provides no indication if it was interrupted or not (ticket #1174).
author Maxim Dounin <mdounin@mdounin.ru>
date Tue, 28 Mar 2017 18:15:39 +0300
parents a6d116645c51
children
line wrap: on
line source


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


    ngx_feature="GeoIP library"
    ngx_feature_name=
    ngx_feature_run=no
    ngx_feature_incs="#include <GeoIP.h>"
    ngx_feature_path=
    ngx_feature_libs="-lGeoIP"
    ngx_feature_test="GeoIP_open(NULL, 0)"
    . auto/feature


if [ $ngx_found = no ]; then

    # FreeBSD port

    ngx_feature="GeoIP 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 -lGeoIP"
    else
        ngx_feature_libs="-L/usr/local/lib -lGeoIP"
    fi

    . auto/feature
fi


if [ $ngx_found = no ]; then

    # NetBSD port

    ngx_feature="GeoIP 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 -lGeoIP"
    else
        ngx_feature_libs="-L/usr/pkg/lib -lGeoIP"
    fi

    . auto/feature
fi


if [ $ngx_found = no ]; then

    # MacPorts

    ngx_feature="GeoIP 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 -lGeoIP"
    else
        ngx_feature_libs="-L/opt/local/lib -lGeoIP"
    fi

    . auto/feature
fi


if [ $ngx_found = yes ]; then

    CORE_INCS="$CORE_INCS $ngx_feature_path"

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

    NGX_LIB_GEOIP=$ngx_feature_libs

    ngx_feature="GeoIP IPv6 support"
    ngx_feature_name="NGX_HAVE_GEOIP_V6"
    ngx_feature_run=no
    ngx_feature_incs="#include <stdio.h>
                      #include <GeoIP.h>"
    #ngx_feature_path=
    #ngx_feature_libs=
    ngx_feature_test="printf(\"%d\", GEOIP_CITY_EDITION_REV0_V6);"
    . auto/feature

else

cat << END

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

END

    exit 1
fi