details: https://hg.nginx.org/nginx/rev/dd516985310f branches: changeset: 9223:dd516985310f user: Sergey Kandaurov <pluk...@nginx.com> date: Fri Mar 22 14:53:19 2024 +0400 description: Stream: the "setfib" parameter of the "listen" directive.
The FreeBSD SO_SETFIB support. diffstat: src/stream/ngx_stream.c | 4 ++++ src/stream/ngx_stream.h | 3 +++ src/stream/ngx_stream_core_module.c | 19 +++++++++++++++++++ 3 files changed, 26 insertions(+), 0 deletions(-) diffs (63 lines): diff -r c78790d3d061 -r dd516985310f src/stream/ngx_stream.c --- a/src/stream/ngx_stream.c Fri Mar 22 14:53:19 2024 +0400 +++ b/src/stream/ngx_stream.c Fri Mar 22 14:53:19 2024 +0400 @@ -1033,6 +1033,10 @@ ngx_stream_add_listening(ngx_conf_t *cf, ls->ipv6only = addr->opt.ipv6only; #endif +#if (NGX_HAVE_SETFIB) + ls->setfib = addr->opt.setfib; +#endif + #if (NGX_HAVE_TCP_FASTOPEN) ls->fastopen = addr->opt.fastopen; #endif diff -r c78790d3d061 -r dd516985310f src/stream/ngx_stream.h --- a/src/stream/ngx_stream.h Fri Mar 22 14:53:19 2024 +0400 +++ b/src/stream/ngx_stream.h Fri Mar 22 14:53:19 2024 +0400 @@ -62,6 +62,9 @@ typedef struct { int rcvbuf; int sndbuf; int type; +#if (NGX_HAVE_SETFIB) + int setfib; +#endif #if (NGX_HAVE_TCP_FASTOPEN) int fastopen; #endif diff -r c78790d3d061 -r dd516985310f src/stream/ngx_stream_core_module.c --- a/src/stream/ngx_stream_core_module.c Fri Mar 22 14:53:19 2024 +0400 +++ b/src/stream/ngx_stream_core_module.c Fri Mar 22 14:53:19 2024 +0400 @@ -920,6 +920,9 @@ ngx_stream_core_listen(ngx_conf_t *cf, n lsopt.type = SOCK_STREAM; lsopt.rcvbuf = -1; lsopt.sndbuf = -1; +#if (NGX_HAVE_SETFIB) + lsopt.setfib = -1; +#endif #if (NGX_HAVE_TCP_FASTOPEN) lsopt.fastopen = -1; #endif @@ -949,6 +952,22 @@ ngx_stream_core_listen(ngx_conf_t *cf, n continue; } +#if (NGX_HAVE_SETFIB) + if (ngx_strncmp(value[i].data, "setfib=", 7) == 0) { + lsopt.setfib = ngx_atoi(value[i].data + 7, value[i].len - 7); + lsopt.set = 1; + lsopt.bind = 1; + + if (lsopt.setfib == NGX_ERROR) { + ngx_conf_log_error(NGX_LOG_EMERG, cf, 0, + "invalid setfib \"%V\"", &value[i]); + return NGX_CONF_ERROR; + } + + continue; + } +#endif + #if (NGX_HAVE_TCP_FASTOPEN) if (ngx_strncmp(value[i].data, "fastopen=", 9) == 0) { lsopt.fastopen = ngx_atoi(value[i].data + 9, value[i].len - 9); _______________________________________________ nginx-devel mailing list nginx-devel@nginx.org https://mailman.nginx.org/mailman/listinfo/nginx-devel