Welcome! Log In Create A New Profile

Advanced

[nginx] Stream: the "setfib" parameter of the "listen" directive.

Sergey Kandaurov
March 22, 2024 07:20AM
details: https://hg.nginx.org/nginx/rev/dd516985310f
branches:
changeset: 9223:dd516985310f
user: Sergey Kandaurov <pluknet@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
Subject Author Views Posted

[nginx] Stream: the "setfib" parameter of the "listen" directive.

Sergey Kandaurov 109 March 22, 2024 07:20AM



Sorry, you do not have permission to post/reply in this forum.

Online Users

Guests: 209
Record Number of Users: 8 on April 13, 2023
Record Number of Guests: 421 on December 02, 2018
Powered by nginx      Powered by FreeBSD      PHP Powered      Powered by MariaDB      ipv6 ready