go ahead

On 04/07/24 12:27 GMT, Kirill A. Korinsky wrote:
> ports@, Robert,
> 
> I'd like to ping about this trivial patch that allows me to use nginx with
> unwind for last weeks.
> 
> Additionally, I had added ngx_cache_purge as new subpackage which brings
> qutie stable module https://github.com/FRiCKLE/ngx_cache_purge which allows
> to purge some elements of cache via HTTP request. I don't include it into
> default build, and build it as dynamic module.
> 
> The original point about unwind patch:
> 
> On Sat, 15 Jun 2024 12:09:21 +0100,
> Kirill A. Korinsky <kir...@korins.ky> wrote:
> >
> > ports@
> >
> > Here a trivial patch which improves compatibility with unwind.
> >
> > I'm using the following unwind.config:
> >
> >     preference { recursor oDoT-autoconf }
> >
> >     forwarder { 172.31.2.1 }
> >
> >     force accept bogus forwarder {
> >       some.internal.domain
> >     }
> >
> > where 172.31.2.1 is Unifi GW and nginx is configured as:
> >
> >     server {
> >         listen                              127.0.0.1:80;
> >
> >         resolver                            127.0.0.1;
> >
> >         set $nas_uri                        
> > "http://nas.some.internal.domain";;
> >
> >         location / {
> >                 proxy_pass                  $nas_uri;
> >         }
> >     }
> >
> > it can't be used due errors in log:
> >
> >     2024/06/15 11:53:55 [error] 30452#0: invalid UDP DNS response 49184 
> > fl:81A0
> >     2024/06/15 11:54:00 [error] 30452#0: invalid UDP DNS response 30883 
> > fl:81A0
> >     2024/06/15 11:54:00 [error] 30452#0: invalid UDP DNS response 49184 
> > fl:81A0
> >     2024/06/15 11:54:05 [error] 30452#0: invalid UDP DNS response 30883 
> > fl:81A0
> >
> > because nginx rejects response with enabled AD bit.
> >
> 
> And, finally, the diff:
> 
> diff --git www/nginx/Makefile www/nginx/Makefile
> index 7d86279085c..203e8aa3fc5 100644
> --- www/nginx/Makefile
> +++ www/nginx/Makefile
> @@ -17,15 +17,17 @@ COMMENT-njs=              nginx javascript scripting 
> module
>  COMMENT-passenger=   nginx passenger (ruby/python/nodejs) integration module
>  COMMENT-rtmp=                nginx module for RTMP streaming
>  COMMENT-securelink=  nginx HMAC secure link module
> +COMMENT-cache_purge= nginx module which adds ability to purge cache content
>  
>  VERSION=     1.26.1
>  DISTNAME=    nginx-${VERSION}
>  CATEGORIES=  www
> -REVISION-main=       0
> +REVISION-main=       1
>  REVISION-passenger=  0
>  
>  VERSION-njs= 0.8.2
>  VERSION-rtmp=        1.2.1
> +VERSION-cache_purge= 2.3
>  
>  PKGNAME-main=                ${DISTNAME}
>  PKGNAME-image_filter=        nginx-image_filter-${VERSION}
> @@ -42,6 +44,7 @@ PKGNAME-njs=                nginx-njs-${VERSION}
>  PKGNAME-passenger=   nginx-passenger-${VERSION}
>  PKGNAME-rtmp=                nginx-rtmp-${VERSION}
>  PKGNAME-securelink=  nginx-securelink-${VERSION}
> +PKGNAME-cache_purge= ngx_cache_purge-${VERSION}
>  
>  ONLY_FOR_ARCHS-passenger= aarch64 amd64 arm i386
>  
> @@ -59,7 +62,8 @@ _GH_MODS=   \
>       nginx           njs                             ${VERSION-njs} \
>       simpl           ngx_devel_kit                   v0.3.0 \
>       leev            ngx_http_geoip2_module          3.3 \
> -     nginx-modules   ngx_http_hmac_secure_link_module 
> 48c4625fbbf51ed5a95bfec23fa444f6c3702e50
> +     nginx-modules   ngx_http_hmac_secure_link_module        
> 48c4625fbbf51ed5a95bfec23fa444f6c3702e50 \
> +     FRiCKLE         ngx_cache_purge                 ${VERSION-cache_purge}
>  
>  .for _a _p _c in ${_GH_MODS}
>  DISTFILES.a+=        ${_p}-{${_a}/${_p}/archive/}${_c}.tar.gz
> @@ -76,7 +80,7 @@ MULTI_PACKAGES =    -main -naxsi -perl ${MODULE_PACKAGES}
>  
>  MODULE_PACKAGES =    -image_filter -geoip2 -xslt -mailproxy -stream \
>                       -passenger -headers_more -ldap_auth -lua -njs \
> -                     -rtmp -securelink
> +                     -rtmp -securelink -cache_purge
>  
>  FLAVOR ?=
>  PSEUDO_FLAVORS =     no_lua no_njs no_passenger
> @@ -100,6 +104,7 @@ WANTLIB-headers_more=
>  WANTLIB-perl=                c m perl
>  WANTLIB-passenger=   m pthread ${COMPILER_LIBCXX}
>  WANTLIB-securelink=  crypto
> +WANTLIB-cache_purge=
>  
>  LIB_DEPENDS-main=    devel/pcre2
>  LIB_DEPENDS-xslt=    textproc/libxml \
> @@ -114,6 +119,7 @@ LIB_DEPENDS-securelink=
>  LIB_DEPENDS-njs=     devel/pcre2 \
>                       textproc/libxslt \
>                       textproc/libxml
> +LIB_DEPENDS-cache_purge=
>  
>  MODLUA_RUNDEP=               No
>  RUN_DEPENDS=         www/nginx,-main=${VERSION}
> @@ -202,7 +208,8 @@ CONFIGURE_ARGS+=  --prefix=${NGINX_DIR} \
>                       
> --add-dynamic-module=${WRKSRC}/headers-more-nginx-module \
>                       --add-dynamic-module=${WRKSRC}/nginx-auth-ldap \
>                       --add-dynamic-module=${WRKSRC}/ngx_http_geoip2_module \
> -                     
> --add-dynamic-module=${WRKSRC}/ngx_http_hmac_secure_link_module
> +                     
> --add-dynamic-module=${WRKSRC}/ngx_http_hmac_secure_link_module \
> +                     --add-dynamic-module=${WRKSRC}/ngx_cache_purge
>  
>  SUBSTFILES=          conf/nginx.conf */config
>  
> @@ -212,7 +219,7 @@ ALL_TARGET=
>  pre-patch:
>  .for i in headers-more-nginx-module lua-nginx-module naxsi njs \
>       nginx-auth-ldap ngx_devel_kit ngx_http_geoip2_module \
> -     ngx_http_hmac_secure_link_module
> +     ngx_http_hmac_secure_link_module ngx_cache_purge
>       cd ${WRKSRC} && mv ../$i-* $i
>  .endfor
>  
> diff --git www/nginx/distinfo www/nginx/distinfo
> index 05b5868d540..1138961174f 100644
> --- www/nginx/distinfo
> +++ www/nginx/distinfo
> @@ -5,6 +5,7 @@ SHA256 (nginx-1.20.1-chroot.patch) = 
> SS1TB0j8N4/dn5pUTGT6WvkN3aAUuKz5+R0Nt+MG0gk
>  SHA256 (nginx-1.26.1.tar.gz) = +Rh0aP8usVkmC/1Thnwl/44zRyYjes8ie56HDlPT42s=
>  SHA256 (nginx-auth-ldap-83c059b73566c2ee9cbda920d91b66657cf120b7.tar.gz) = 
> aQxOW9sq4ZsP7nXNNW0YATRo20cmFrYJeloLvjRshGQ=
>  SHA256 (nginx-rtmp-module-v1.2.1.tar.gz) = 
> h6pZdACwtaBSdO4tI9jLgiThJoYiegq+MdeDs6ZF6jc=
> +SHA256 (ngx_cache_purge-2.3.tar.gz) = 
> y31fIpGcYT8fAzQaGuuWCWUmkwLp6yNCXMqr0vXcu+w=
>  SHA256 (ngx_devel_kit-v0.3.0.tar.gz) = 
> iOBamainQZBm9a51lm+x78QJutRSLRSYbaB0VUrmFhk=
>  SHA256 (ngx_http_geoip2_module-3.3.tar.gz) = 
> QTeEOMgz4xOhiGnQxKcnBLSDXDCsr3/WgBOrZzL/eKc=
>  SHA256 
> (ngx_http_hmac_secure_link_module-48c4625fbbf51ed5a95bfec23fa444f6c3702e50.tar.gz)
>  = ZXpA2rODS1enIREzlD1OqWwpWcv3NOUXH4eUOgOAmqg=
> @@ -16,6 +17,7 @@ SIZE (nginx-1.20.1-chroot.patch) = 8783
>  SIZE (nginx-1.26.1.tar.gz) = 1244738
>  SIZE (nginx-auth-ldap-83c059b73566c2ee9cbda920d91b66657cf120b7.tar.gz) = 
> 18542
>  SIZE (nginx-rtmp-module-v1.2.1.tar.gz) = 519919
> +SIZE (ngx_cache_purge-2.3.tar.gz) = 11717
>  SIZE (ngx_devel_kit-v0.3.0.tar.gz) = 66455
>  SIZE (ngx_http_geoip2_module-3.3.tar.gz) = 8509
>  SIZE 
> (ngx_http_hmac_secure_link_module-48c4625fbbf51ed5a95bfec23fa444f6c3702e50.tar.gz)
>  = 6159
> diff --git www/nginx/patches/patch-ngx_cache_purge_config 
> www/nginx/patches/patch-ngx_cache_purge_config
> new file mode 100644
> index 00000000000..e12d5e5a802
> --- /dev/null
> +++ www/nginx/patches/patch-ngx_cache_purge_config
> @@ -0,0 +1,25 @@
> +Build ngx_cache_purge as dynamic module
> +
> +Index: ngx_cache_purge/config
> +--- ngx_cache_purge/config.orig
> ++++ ngx_cache_purge/config
> +@@ -15,7 +15,17 @@ if [ "$HTTP_UWSGI" = "YES" ]; then
> + fi
> + 
> + ngx_addon_name=ngx_http_cache_purge_module
> +-HTTP_MODULES="$HTTP_MODULES ngx_http_cache_purge_module"
> +-NGX_ADDON_SRCS="$NGX_ADDON_SRCS $ngx_addon_dir/ngx_cache_purge_module.c"
> ++CACHE_PURGE_SRCS="$ngx_addon_dir/ngx_cache_purge_module.c"
> ++
> ++if [ -n "$ngx_module_link" ]; then
> ++    ngx_module_type=HTTP
> ++    ngx_module_name="$ngx_addon_name"
> ++    ngx_module_srcs="$CACHE_PURGE_SRCS"
> ++
> ++    . auto/module
> ++else
> ++    HTTP_MODULES="$HTTP_MODULES $ngx_addon_name"
> ++    NGX_ADDON_SRCS="$NGX_ADDON_SRCS $CACHE_PURGE_SRCS"
> ++fi
> + 
> + have=NGX_CACHE_PURGE_MODULE . auto/have
> diff --git www/nginx/patches/patch-src_core_ngx_resolver_c 
> www/nginx/patches/patch-src_core_ngx_resolver_c
> new file mode 100644
> index 00000000000..b07cea4cc97
> --- /dev/null
> +++ www/nginx/patches/patch-src_core_ngx_resolver_c
> @@ -0,0 +1,12 @@
> +Index: src/core/ngx_resolver.c
> +--- src/core/ngx_resolver.c.orig
> ++++ src/core/ngx_resolver.c
> +@@ -1774,7 +1774,7 @@ ngx_resolver_process_response(ngx_resolver_t *r, u_cha
> +                    (response->nar_hi << 8) + response->nar_lo);
> + 
> +     /* response to a standard query */
> +-    if ((flags & 0xf870) != 0x8000 || (trunc && tcp)) {
> ++    if ((flags & 0xf850) != 0x8000 || (trunc && tcp)) {
> +         ngx_log_error(r->log_level, r->log, 0,
> +                       "invalid %s DNS response %ui fl:%04Xi",
> +                       tcp ? "TCP" : "UDP", ident, flags);
> diff --git www/nginx/pkg/DESCR-cache_purge www/nginx/pkg/DESCR-cache_purge
> new file mode 100644
> index 00000000000..a1021baf292
> --- /dev/null
> +++ www/nginx/pkg/DESCR-cache_purge
> @@ -0,0 +1,8 @@
> +ngx_cache_purge is nginx module which adds ability to purge content from
> +FastCGI, proxy, SCGI and uWSGI caches.
> +
> +It is build as separated dynamic module and it should be load as:
> +
> +  load_module modules/ngx_http_cache_purge_module.so;
> +
> +Documentation available at https://github.com/FRiCKLE/ngx_cache_purge
> diff --git www/nginx/pkg/PLIST-cache_purge www/nginx/pkg/PLIST-cache_purge
> new file mode 100644
> index 00000000000..ea7fe579cd9
> --- /dev/null
> +++ www/nginx/pkg/PLIST-cache_purge
> @@ -0,0 +1 @@
> +@so ngx_http_cache_purge_module.so
> 
> 
> --
> wbr, Kirill

-- 
Regards,
Robert Nagy

Reply via email to