annotate auto/os/linux @ 8676:7df607cb2d11 quic

QUIC: ngx_quic_bpf module. The quic kernel bpf helper inspects packet payload for DCID, extracts key and routes the packet into socket matching the key. Due to reuseport feature, each worker owns a personal socket, which is identified by the same key, used to create DCID. BPF objects are locked in RAM and are subject to RLIMIT_MEMLOCK. The "ulimit -l" command may be used to setup proper limits, if maps cannot be created with EPERM or updated with ETOOLONG.
author Vladimir Homutov <vl@nginx.com>
date Fri, 25 Dec 2020 15:01:15 +0300
parents d3747ba486e7
children 7f95010f10b7
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
444
42d11f017717 nginx-0.1.0-2004-09-29-20:00:49 import; remove years from copyright
Igor Sysoev <igor@sysoev.ru>
parents: 355
diff changeset
1
42d11f017717 nginx-0.1.0-2004-09-29-20:00:49 import; remove years from copyright
Igor Sysoev <igor@sysoev.ru>
parents: 355
diff changeset
2 # Copyright (C) Igor Sysoev
4412
d620f497c50f Copyright updated.
Maxim Konovalov <maxim@nginx.com>
parents: 4002
diff changeset
3 # Copyright (C) Nginx, Inc.
444
42d11f017717 nginx-0.1.0-2004-09-29-20:00:49 import; remove years from copyright
Igor Sysoev <igor@sysoev.ru>
parents: 355
diff changeset
4
196
11fbd0fc041d nginx-0.0.1-2003-11-26-18:42:18 import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
5
509
9b8c906f6e63 nginx-0.1.29-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 503
diff changeset
6 have=NGX_LINUX . auto/have_headers
455
295d97d70c69 nginx-0.1.2-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 444
diff changeset
7
196
11fbd0fc041d nginx-0.0.1-2003-11-26-18:42:18 import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
8 CORE_INCS="$UNIX_INCS"
11fbd0fc041d nginx-0.0.1-2003-11-26-18:42:18 import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
9 CORE_DEPS="$UNIX_DEPS $LINUX_DEPS"
249
2a0540287298 nginx-0.0.2-2004-02-03-19:43:54 import
Igor Sysoev <igor@sysoev.ru>
parents: 248
diff changeset
10 CORE_SRCS="$UNIX_SRCS $LINUX_SRCS"
196
11fbd0fc041d nginx-0.0.1-2003-11-26-18:42:18 import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
11
455
295d97d70c69 nginx-0.1.2-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 444
diff changeset
12 ngx_spacer='
295d97d70c69 nginx-0.1.2-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 444
diff changeset
13 '
283
8f65fee68270 nginx-0.0.2-2004-03-10-20:55:19 import
Igor Sysoev <igor@sysoev.ru>
parents: 259
diff changeset
14
2599
57b65bcc8da6 fix Linux sendfile32() test broken in 0.3.36
Igor Sysoev <igor@sysoev.ru>
parents: 2598
diff changeset
15 cc_aux_flags="$CC_AUX_FLAGS"
57b65bcc8da6 fix Linux sendfile32() test broken in 0.3.36
Igor Sysoev <igor@sysoev.ru>
parents: 2598
diff changeset
16 CC_AUX_FLAGS="$cc_aux_flags -D_GNU_SOURCE -D_FILE_OFFSET_BITS=64"
196
11fbd0fc041d nginx-0.0.1-2003-11-26-18:42:18 import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
17
461
a88a3e4e158f nginx-0.1.5-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 455
diff changeset
18
351
af4c6b45a687 nginx-0.0.4-2004-06-10-22:36:57 import
Igor Sysoev <igor@sysoev.ru>
parents: 298
diff changeset
19 # Linux kernel version
af4c6b45a687 nginx-0.0.4-2004-06-10-22:36:57 import
Igor Sysoev <igor@sysoev.ru>
parents: 298
diff changeset
20
1927
220c2515a9c9 use uname instead of often outdated header file
Igor Sysoev <igor@sysoev.ru>
parents: 1926
diff changeset
21 version=$((`uname -r \
4002
4068898a6a7c Configure: catch up with new Linux version numbering (ticket #5).
Maxim Dounin <mdounin@mdounin.ru>
parents: 3286
diff changeset
22 | sed -n -e 's/^\([0-9][0-9]*\)\.\([0-9][0-9]*\)\.\([0-9][0-9]*\).*/ \
4068898a6a7c Configure: catch up with new Linux version numbering (ticket #5).
Maxim Dounin <mdounin@mdounin.ru>
parents: 3286
diff changeset
23 \1*256*256+\2*256+\3/p' \
4068898a6a7c Configure: catch up with new Linux version numbering (ticket #5).
Maxim Dounin <mdounin@mdounin.ru>
parents: 3286
diff changeset
24 -e 's/^\([0-9][0-9]*\)\.\([0-9][0-9]*\).*/\1*256*256+\2*256/p'`))
351
af4c6b45a687 nginx-0.0.4-2004-06-10-22:36:57 import
Igor Sysoev <igor@sysoev.ru>
parents: 298
diff changeset
25
477
ad1e9ebf93bb nginx-0.1.13-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 473
diff changeset
26 version=${version:-0}
ad1e9ebf93bb nginx-0.1.13-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 473
diff changeset
27
351
af4c6b45a687 nginx-0.0.4-2004-06-10-22:36:57 import
Igor Sysoev <igor@sysoev.ru>
parents: 298
diff changeset
28
3286
7c80f584c3a9 posix_fadvise64() had been implemented in Linux 2.5.60
Igor Sysoev <igor@sysoev.ru>
parents: 3039
diff changeset
29 # posix_fadvise64() had been implemented in 2.5.60
7c80f584c3a9 posix_fadvise64() had been implemented in Linux 2.5.60
Igor Sysoev <igor@sysoev.ru>
parents: 3039
diff changeset
30
7c80f584c3a9 posix_fadvise64() had been implemented in Linux 2.5.60
Igor Sysoev <igor@sysoev.ru>
parents: 3039
diff changeset
31 if [ $version -lt 132412 ]; then
7c80f584c3a9 posix_fadvise64() had been implemented in Linux 2.5.60
Igor Sysoev <igor@sysoev.ru>
parents: 3039
diff changeset
32 have=NGX_HAVE_POSIX_FADVISE . auto/nohave
7c80f584c3a9 posix_fadvise64() had been implemented in Linux 2.5.60
Igor Sysoev <igor@sysoev.ru>
parents: 3039
diff changeset
33 fi
7c80f584c3a9 posix_fadvise64() had been implemented in Linux 2.5.60
Igor Sysoev <igor@sysoev.ru>
parents: 3039
diff changeset
34
248
e885208c518b nginx-0.0.2-2004-02-03-00:19:52 import
Igor Sysoev <igor@sysoev.ru>
parents: 245
diff changeset
35 # epoll, EPOLLET version
245
e6c005b66b3a nginx-0.0.1-2004-01-30-00:45:01 import
Igor Sysoev <igor@sysoev.ru>
parents: 198
diff changeset
36
455
295d97d70c69 nginx-0.1.2-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 444
diff changeset
37 ngx_feature="epoll"
469
2ff194b74f1e nginx-0.1.9-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 467
diff changeset
38 ngx_feature_name="NGX_HAVE_EPOLL"
591
8c0cdd81580e nginx-0.3.17-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 583
diff changeset
39 ngx_feature_run=yes
455
295d97d70c69 nginx-0.1.2-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 444
diff changeset
40 ngx_feature_incs="#include <sys/epoll.h>"
875
7af8276b1c2f test PCRE in FreeBSD, Linux, and NetBSD
Igor Sysoev <igor@sysoev.ru>
parents: 629
diff changeset
41 ngx_feature_path=
455
295d97d70c69 nginx-0.1.2-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 444
diff changeset
42 ngx_feature_libs=
4543
51744fa997c7 Fixed compilation warnings in configuration C tests.
Ruslan Ermilov <ru@nginx.com>
parents: 4412
diff changeset
43 ngx_feature_test="int efd = 0;
455
295d97d70c69 nginx-0.1.2-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 444
diff changeset
44 struct epoll_event ee;
295d97d70c69 nginx-0.1.2-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 444
diff changeset
45 ee.events = EPOLLIN|EPOLLOUT|EPOLLET;
295d97d70c69 nginx-0.1.2-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 444
diff changeset
46 ee.data.ptr = NULL;
6622
e393c0bf53d3 Configure: fix build with -Werror=unused-but-set-variable.
Piotr Sikora <piotrsikora@google.com>
parents: 6126
diff changeset
47 (void) ee;
455
295d97d70c69 nginx-0.1.2-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 444
diff changeset
48 efd = epoll_create(100);
295d97d70c69 nginx-0.1.2-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 444
diff changeset
49 if (efd == -1) return 1;"
295d97d70c69 nginx-0.1.2-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 444
diff changeset
50 . auto/feature
248
e885208c518b nginx-0.0.2-2004-02-03-00:19:52 import
Igor Sysoev <igor@sysoev.ru>
parents: 245
diff changeset
51
e885208c518b nginx-0.0.2-2004-02-03-00:19:52 import
Igor Sysoev <igor@sysoev.ru>
parents: 245
diff changeset
52 if [ $ngx_found = yes ]; then
469
2ff194b74f1e nginx-0.1.9-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 467
diff changeset
53 have=NGX_HAVE_CLEAR_EVENT . auto/have
248
e885208c518b nginx-0.0.2-2004-02-03-00:19:52 import
Igor Sysoev <igor@sysoev.ru>
parents: 245
diff changeset
54 CORE_SRCS="$CORE_SRCS $EPOLL_SRCS"
245
e6c005b66b3a nginx-0.0.1-2004-01-30-00:45:01 import
Igor Sysoev <igor@sysoev.ru>
parents: 198
diff changeset
55 EVENT_MODULES="$EVENT_MODULES $EPOLL_MODULE"
248
e885208c518b nginx-0.0.2-2004-02-03-00:19:52 import
Igor Sysoev <igor@sysoev.ru>
parents: 245
diff changeset
56 EVENT_FOUND=YES
5372
36b58ddb566d Events: support for EPOLLRDHUP (ticket #320).
Valentin Bartenev <vbart@nginx.com>
parents: 5356
diff changeset
57
36b58ddb566d Events: support for EPOLLRDHUP (ticket #320).
Valentin Bartenev <vbart@nginx.com>
parents: 5356
diff changeset
58
36b58ddb566d Events: support for EPOLLRDHUP (ticket #320).
Valentin Bartenev <vbart@nginx.com>
parents: 5356
diff changeset
59 # EPOLLRDHUP appeared in Linux 2.6.17, glibc 2.8
36b58ddb566d Events: support for EPOLLRDHUP (ticket #320).
Valentin Bartenev <vbart@nginx.com>
parents: 5356
diff changeset
60
36b58ddb566d Events: support for EPOLLRDHUP (ticket #320).
Valentin Bartenev <vbart@nginx.com>
parents: 5356
diff changeset
61 ngx_feature="EPOLLRDHUP"
36b58ddb566d Events: support for EPOLLRDHUP (ticket #320).
Valentin Bartenev <vbart@nginx.com>
parents: 5356
diff changeset
62 ngx_feature_name="NGX_HAVE_EPOLLRDHUP"
36b58ddb566d Events: support for EPOLLRDHUP (ticket #320).
Valentin Bartenev <vbart@nginx.com>
parents: 5356
diff changeset
63 ngx_feature_run=no
36b58ddb566d Events: support for EPOLLRDHUP (ticket #320).
Valentin Bartenev <vbart@nginx.com>
parents: 5356
diff changeset
64 ngx_feature_incs="#include <sys/epoll.h>"
36b58ddb566d Events: support for EPOLLRDHUP (ticket #320).
Valentin Bartenev <vbart@nginx.com>
parents: 5356
diff changeset
65 ngx_feature_path=
36b58ddb566d Events: support for EPOLLRDHUP (ticket #320).
Valentin Bartenev <vbart@nginx.com>
parents: 5356
diff changeset
66 ngx_feature_libs=
36b58ddb566d Events: support for EPOLLRDHUP (ticket #320).
Valentin Bartenev <vbart@nginx.com>
parents: 5356
diff changeset
67 ngx_feature_test="int efd = 0, fd = 0;
36b58ddb566d Events: support for EPOLLRDHUP (ticket #320).
Valentin Bartenev <vbart@nginx.com>
parents: 5356
diff changeset
68 struct epoll_event ee;
36b58ddb566d Events: support for EPOLLRDHUP (ticket #320).
Valentin Bartenev <vbart@nginx.com>
parents: 5356
diff changeset
69 ee.events = EPOLLIN|EPOLLRDHUP|EPOLLET;
36b58ddb566d Events: support for EPOLLRDHUP (ticket #320).
Valentin Bartenev <vbart@nginx.com>
parents: 5356
diff changeset
70 ee.data.ptr = NULL;
36b58ddb566d Events: support for EPOLLRDHUP (ticket #320).
Valentin Bartenev <vbart@nginx.com>
parents: 5356
diff changeset
71 epoll_ctl(efd, EPOLL_CTL_ADD, fd, &ee)"
36b58ddb566d Events: support for EPOLLRDHUP (ticket #320).
Valentin Bartenev <vbart@nginx.com>
parents: 5356
diff changeset
72 . auto/feature
6635
6acaa638fa07 Events: support for EPOLLEXCLUSIVE.
Valentin Bartenev <vbart@nginx.com>
parents: 6622
diff changeset
73
6acaa638fa07 Events: support for EPOLLEXCLUSIVE.
Valentin Bartenev <vbart@nginx.com>
parents: 6622
diff changeset
74
6acaa638fa07 Events: support for EPOLLEXCLUSIVE.
Valentin Bartenev <vbart@nginx.com>
parents: 6622
diff changeset
75 # EPOLLEXCLUSIVE appeared in Linux 4.5, glibc 2.24
6acaa638fa07 Events: support for EPOLLEXCLUSIVE.
Valentin Bartenev <vbart@nginx.com>
parents: 6622
diff changeset
76
6acaa638fa07 Events: support for EPOLLEXCLUSIVE.
Valentin Bartenev <vbart@nginx.com>
parents: 6622
diff changeset
77 ngx_feature="EPOLLEXCLUSIVE"
6acaa638fa07 Events: support for EPOLLEXCLUSIVE.
Valentin Bartenev <vbart@nginx.com>
parents: 6622
diff changeset
78 ngx_feature_name="NGX_HAVE_EPOLLEXCLUSIVE"
6acaa638fa07 Events: support for EPOLLEXCLUSIVE.
Valentin Bartenev <vbart@nginx.com>
parents: 6622
diff changeset
79 ngx_feature_run=no
6acaa638fa07 Events: support for EPOLLEXCLUSIVE.
Valentin Bartenev <vbart@nginx.com>
parents: 6622
diff changeset
80 ngx_feature_incs="#include <sys/epoll.h>"
6acaa638fa07 Events: support for EPOLLEXCLUSIVE.
Valentin Bartenev <vbart@nginx.com>
parents: 6622
diff changeset
81 ngx_feature_path=
6acaa638fa07 Events: support for EPOLLEXCLUSIVE.
Valentin Bartenev <vbart@nginx.com>
parents: 6622
diff changeset
82 ngx_feature_libs=
6acaa638fa07 Events: support for EPOLLEXCLUSIVE.
Valentin Bartenev <vbart@nginx.com>
parents: 6622
diff changeset
83 ngx_feature_test="int efd = 0, fd = 0;
6acaa638fa07 Events: support for EPOLLEXCLUSIVE.
Valentin Bartenev <vbart@nginx.com>
parents: 6622
diff changeset
84 struct epoll_event ee;
6acaa638fa07 Events: support for EPOLLEXCLUSIVE.
Valentin Bartenev <vbart@nginx.com>
parents: 6622
diff changeset
85 ee.events = EPOLLIN|EPOLLEXCLUSIVE;
6acaa638fa07 Events: support for EPOLLEXCLUSIVE.
Valentin Bartenev <vbart@nginx.com>
parents: 6622
diff changeset
86 ee.data.ptr = NULL;
6acaa638fa07 Events: support for EPOLLEXCLUSIVE.
Valentin Bartenev <vbart@nginx.com>
parents: 6622
diff changeset
87 epoll_ctl(efd, EPOLL_CTL_ADD, fd, &ee)"
6acaa638fa07 Events: support for EPOLLEXCLUSIVE.
Valentin Bartenev <vbart@nginx.com>
parents: 6622
diff changeset
88 . auto/feature
245
e6c005b66b3a nginx-0.0.1-2004-01-30-00:45:01 import
Igor Sysoev <igor@sysoev.ru>
parents: 198
diff changeset
89 fi
e6c005b66b3a nginx-0.0.1-2004-01-30-00:45:01 import
Igor Sysoev <igor@sysoev.ru>
parents: 198
diff changeset
90
e6c005b66b3a nginx-0.0.1-2004-01-30-00:45:01 import
Igor Sysoev <igor@sysoev.ru>
parents: 198
diff changeset
91
5356
acd51b0f6fd4 Disable symlinks: use O_PATH to open path components.
Valentin Bartenev <vbart@nginx.com>
parents: 4549
diff changeset
92 # O_PATH and AT_EMPTY_PATH were introduced in 2.6.39, glibc 2.14
acd51b0f6fd4 Disable symlinks: use O_PATH to open path components.
Valentin Bartenev <vbart@nginx.com>
parents: 4549
diff changeset
93
acd51b0f6fd4 Disable symlinks: use O_PATH to open path components.
Valentin Bartenev <vbart@nginx.com>
parents: 4549
diff changeset
94 ngx_feature="O_PATH"
acd51b0f6fd4 Disable symlinks: use O_PATH to open path components.
Valentin Bartenev <vbart@nginx.com>
parents: 4549
diff changeset
95 ngx_feature_name="NGX_HAVE_O_PATH"
acd51b0f6fd4 Disable symlinks: use O_PATH to open path components.
Valentin Bartenev <vbart@nginx.com>
parents: 4549
diff changeset
96 ngx_feature_run=no
acd51b0f6fd4 Disable symlinks: use O_PATH to open path components.
Valentin Bartenev <vbart@nginx.com>
parents: 4549
diff changeset
97 ngx_feature_incs="#include <sys/types.h>
acd51b0f6fd4 Disable symlinks: use O_PATH to open path components.
Valentin Bartenev <vbart@nginx.com>
parents: 4549
diff changeset
98 #include <sys/stat.h>
acd51b0f6fd4 Disable symlinks: use O_PATH to open path components.
Valentin Bartenev <vbart@nginx.com>
parents: 4549
diff changeset
99 #include <fcntl.h>"
acd51b0f6fd4 Disable symlinks: use O_PATH to open path components.
Valentin Bartenev <vbart@nginx.com>
parents: 4549
diff changeset
100 ngx_feature_path=
acd51b0f6fd4 Disable symlinks: use O_PATH to open path components.
Valentin Bartenev <vbart@nginx.com>
parents: 4549
diff changeset
101 ngx_feature_libs=
acd51b0f6fd4 Disable symlinks: use O_PATH to open path components.
Valentin Bartenev <vbart@nginx.com>
parents: 4549
diff changeset
102 ngx_feature_test="int fd; struct stat sb;
acd51b0f6fd4 Disable symlinks: use O_PATH to open path components.
Valentin Bartenev <vbart@nginx.com>
parents: 4549
diff changeset
103 fd = openat(AT_FDCWD, \".\", O_PATH|O_DIRECTORY|O_NOFOLLOW);
acd51b0f6fd4 Disable symlinks: use O_PATH to open path components.
Valentin Bartenev <vbart@nginx.com>
parents: 4549
diff changeset
104 if (fstatat(fd, \"\", &sb, AT_EMPTY_PATH) != 0) return 1"
acd51b0f6fd4 Disable symlinks: use O_PATH to open path components.
Valentin Bartenev <vbart@nginx.com>
parents: 4549
diff changeset
105 . auto/feature
acd51b0f6fd4 Disable symlinks: use O_PATH to open path components.
Valentin Bartenev <vbart@nginx.com>
parents: 4549
diff changeset
106
acd51b0f6fd4 Disable symlinks: use O_PATH to open path components.
Valentin Bartenev <vbart@nginx.com>
parents: 4549
diff changeset
107
248
e885208c518b nginx-0.0.2-2004-02-03-00:19:52 import
Igor Sysoev <igor@sysoev.ru>
parents: 245
diff changeset
108 # sendfile()
e885208c518b nginx-0.0.2-2004-02-03-00:19:52 import
Igor Sysoev <igor@sysoev.ru>
parents: 245
diff changeset
109
2599
57b65bcc8da6 fix Linux sendfile32() test broken in 0.3.36
Igor Sysoev <igor@sysoev.ru>
parents: 2598
diff changeset
110 CC_AUX_FLAGS="$cc_aux_flags -D_GNU_SOURCE"
455
295d97d70c69 nginx-0.1.2-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 444
diff changeset
111 ngx_feature="sendfile()"
469
2ff194b74f1e nginx-0.1.9-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 467
diff changeset
112 ngx_feature_name="NGX_HAVE_SENDFILE"
591
8c0cdd81580e nginx-0.3.17-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 583
diff changeset
113 ngx_feature_run=yes
8c0cdd81580e nginx-0.3.17-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 583
diff changeset
114 ngx_feature_incs="#include <sys/sendfile.h>
2598
87e739049e93 style fix
Igor Sysoev <igor@sysoev.ru>
parents: 1927
diff changeset
115 #include <errno.h>"
875
7af8276b1c2f test PCRE in FreeBSD, Linux, and NetBSD
Igor Sysoev <igor@sysoev.ru>
parents: 629
diff changeset
116 ngx_feature_path=
455
295d97d70c69 nginx-0.1.2-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 444
diff changeset
117 ngx_feature_libs=
295d97d70c69 nginx-0.1.2-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 444
diff changeset
118 ngx_feature_test="int s = 0, fd = 1;
295d97d70c69 nginx-0.1.2-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 444
diff changeset
119 ssize_t n; off_t off = 0;
591
8c0cdd81580e nginx-0.3.17-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 583
diff changeset
120 n = sendfile(s, fd, &off, 1);
8c0cdd81580e nginx-0.3.17-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 583
diff changeset
121 if (n == -1 && errno == ENOSYS) return 1"
455
295d97d70c69 nginx-0.1.2-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 444
diff changeset
122 . auto/feature
248
e885208c518b nginx-0.0.2-2004-02-03-00:19:52 import
Igor Sysoev <igor@sysoev.ru>
parents: 245
diff changeset
123
e885208c518b nginx-0.0.2-2004-02-03-00:19:52 import
Igor Sysoev <igor@sysoev.ru>
parents: 245
diff changeset
124 if [ $ngx_found = yes ]; then
e885208c518b nginx-0.0.2-2004-02-03-00:19:52 import
Igor Sysoev <igor@sysoev.ru>
parents: 245
diff changeset
125 CORE_SRCS="$CORE_SRCS $LINUX_SENDFILE_SRCS"
e885208c518b nginx-0.0.2-2004-02-03-00:19:52 import
Igor Sysoev <igor@sysoev.ru>
parents: 245
diff changeset
126 fi
e885208c518b nginx-0.0.2-2004-02-03-00:19:52 import
Igor Sysoev <igor@sysoev.ru>
parents: 245
diff changeset
127
e885208c518b nginx-0.0.2-2004-02-03-00:19:52 import
Igor Sysoev <igor@sysoev.ru>
parents: 245
diff changeset
128
e885208c518b nginx-0.0.2-2004-02-03-00:19:52 import
Igor Sysoev <igor@sysoev.ru>
parents: 245
diff changeset
129 # sendfile64()
196
11fbd0fc041d nginx-0.0.1-2003-11-26-18:42:18 import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
130
2599
57b65bcc8da6 fix Linux sendfile32() test broken in 0.3.36
Igor Sysoev <igor@sysoev.ru>
parents: 2598
diff changeset
131 CC_AUX_FLAGS="$cc_aux_flags -D_GNU_SOURCE -D_FILE_OFFSET_BITS=64"
455
295d97d70c69 nginx-0.1.2-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 444
diff changeset
132 ngx_feature="sendfile64()"
469
2ff194b74f1e nginx-0.1.9-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 467
diff changeset
133 ngx_feature_name="NGX_HAVE_SENDFILE64"
591
8c0cdd81580e nginx-0.3.17-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 583
diff changeset
134 ngx_feature_run=yes
8c0cdd81580e nginx-0.3.17-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 583
diff changeset
135 ngx_feature_incs="#include <sys/sendfile.h>
2598
87e739049e93 style fix
Igor Sysoev <igor@sysoev.ru>
parents: 1927
diff changeset
136 #include <errno.h>"
875
7af8276b1c2f test PCRE in FreeBSD, Linux, and NetBSD
Igor Sysoev <igor@sysoev.ru>
parents: 629
diff changeset
137 ngx_feature_path=
455
295d97d70c69 nginx-0.1.2-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 444
diff changeset
138 ngx_feature_libs=
295d97d70c69 nginx-0.1.2-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 444
diff changeset
139 ngx_feature_test="int s = 0, fd = 1;
295d97d70c69 nginx-0.1.2-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 444
diff changeset
140 ssize_t n; off_t off = 0;
591
8c0cdd81580e nginx-0.3.17-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 583
diff changeset
141 n = sendfile(s, fd, &off, 1);
8c0cdd81580e nginx-0.3.17-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 583
diff changeset
142 if (n == -1 && errno == ENOSYS) return 1"
455
295d97d70c69 nginx-0.1.2-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 444
diff changeset
143 . auto/feature
196
11fbd0fc041d nginx-0.0.1-2003-11-26-18:42:18 import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
144
253
b6793bc5034b nginx-0.0.2-2004-02-09-10:46:43 import
Igor Sysoev <igor@sysoev.ru>
parents: 249
diff changeset
145
455
295d97d70c69 nginx-0.1.2-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 444
diff changeset
146 ngx_include="sys/prctl.h"; . auto/include
295d97d70c69 nginx-0.1.2-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 444
diff changeset
147
253
b6793bc5034b nginx-0.0.2-2004-02-09-10:46:43 import
Igor Sysoev <igor@sysoev.ru>
parents: 249
diff changeset
148 # prctl(PR_SET_DUMPABLE)
b6793bc5034b nginx-0.0.2-2004-02-09-10:46:43 import
Igor Sysoev <igor@sysoev.ru>
parents: 249
diff changeset
149
455
295d97d70c69 nginx-0.1.2-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 444
diff changeset
150 ngx_feature="prctl(PR_SET_DUMPABLE)"
469
2ff194b74f1e nginx-0.1.9-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 467
diff changeset
151 ngx_feature_name="NGX_HAVE_PR_SET_DUMPABLE"
455
295d97d70c69 nginx-0.1.2-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 444
diff changeset
152 ngx_feature_run=yes
295d97d70c69 nginx-0.1.2-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 444
diff changeset
153 ngx_feature_incs="#include <sys/prctl.h>"
875
7af8276b1c2f test PCRE in FreeBSD, Linux, and NetBSD
Igor Sysoev <igor@sysoev.ru>
parents: 629
diff changeset
154 ngx_feature_path=
455
295d97d70c69 nginx-0.1.2-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 444
diff changeset
155 ngx_feature_libs=
295d97d70c69 nginx-0.1.2-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 444
diff changeset
156 ngx_feature_test="if (prctl(PR_SET_DUMPABLE, 1, 0, 0, 0) == -1) return 1"
295d97d70c69 nginx-0.1.2-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 444
diff changeset
157 . auto/feature
577
4d9ea73a627a nginx-0.3.10-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 563
diff changeset
158
4d9ea73a627a nginx-0.3.10-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 563
diff changeset
159
7174
84e53e4735a4 Retain CAP_NET_RAW capability for transparent proxying.
Roman Arutyunyan <arut@nginx.com>
parents: 7010
diff changeset
160 # prctl(PR_SET_KEEPCAPS)
84e53e4735a4 Retain CAP_NET_RAW capability for transparent proxying.
Roman Arutyunyan <arut@nginx.com>
parents: 7010
diff changeset
161
84e53e4735a4 Retain CAP_NET_RAW capability for transparent proxying.
Roman Arutyunyan <arut@nginx.com>
parents: 7010
diff changeset
162 ngx_feature="prctl(PR_SET_KEEPCAPS)"
84e53e4735a4 Retain CAP_NET_RAW capability for transparent proxying.
Roman Arutyunyan <arut@nginx.com>
parents: 7010
diff changeset
163 ngx_feature_name="NGX_HAVE_PR_SET_KEEPCAPS"
84e53e4735a4 Retain CAP_NET_RAW capability for transparent proxying.
Roman Arutyunyan <arut@nginx.com>
parents: 7010
diff changeset
164 ngx_feature_run=yes
84e53e4735a4 Retain CAP_NET_RAW capability for transparent proxying.
Roman Arutyunyan <arut@nginx.com>
parents: 7010
diff changeset
165 ngx_feature_incs="#include <sys/prctl.h>"
84e53e4735a4 Retain CAP_NET_RAW capability for transparent proxying.
Roman Arutyunyan <arut@nginx.com>
parents: 7010
diff changeset
166 ngx_feature_path=
84e53e4735a4 Retain CAP_NET_RAW capability for transparent proxying.
Roman Arutyunyan <arut@nginx.com>
parents: 7010
diff changeset
167 ngx_feature_libs=
84e53e4735a4 Retain CAP_NET_RAW capability for transparent proxying.
Roman Arutyunyan <arut@nginx.com>
parents: 7010
diff changeset
168 ngx_feature_test="if (prctl(PR_SET_KEEPCAPS, 1, 0, 0, 0) == -1) return 1"
84e53e4735a4 Retain CAP_NET_RAW capability for transparent proxying.
Roman Arutyunyan <arut@nginx.com>
parents: 7010
diff changeset
169 . auto/feature
84e53e4735a4 Retain CAP_NET_RAW capability for transparent proxying.
Roman Arutyunyan <arut@nginx.com>
parents: 7010
diff changeset
170
84e53e4735a4 Retain CAP_NET_RAW capability for transparent proxying.
Roman Arutyunyan <arut@nginx.com>
parents: 7010
diff changeset
171
84e53e4735a4 Retain CAP_NET_RAW capability for transparent proxying.
Roman Arutyunyan <arut@nginx.com>
parents: 7010
diff changeset
172 # capabilities
84e53e4735a4 Retain CAP_NET_RAW capability for transparent proxying.
Roman Arutyunyan <arut@nginx.com>
parents: 7010
diff changeset
173
84e53e4735a4 Retain CAP_NET_RAW capability for transparent proxying.
Roman Arutyunyan <arut@nginx.com>
parents: 7010
diff changeset
174 ngx_feature="capabilities"
84e53e4735a4 Retain CAP_NET_RAW capability for transparent proxying.
Roman Arutyunyan <arut@nginx.com>
parents: 7010
diff changeset
175 ngx_feature_name="NGX_HAVE_CAPABILITIES"
84e53e4735a4 Retain CAP_NET_RAW capability for transparent proxying.
Roman Arutyunyan <arut@nginx.com>
parents: 7010
diff changeset
176 ngx_feature_run=no
7175
56923e8e01a5 Improved the capabilities feature detection.
Roman Arutyunyan <arut@nginx.com>
parents: 7174
diff changeset
177 ngx_feature_incs="#include <linux/capability.h>
56923e8e01a5 Improved the capabilities feature detection.
Roman Arutyunyan <arut@nginx.com>
parents: 7174
diff changeset
178 #include <sys/syscall.h>"
7174
84e53e4735a4 Retain CAP_NET_RAW capability for transparent proxying.
Roman Arutyunyan <arut@nginx.com>
parents: 7010
diff changeset
179 ngx_feature_path=
84e53e4735a4 Retain CAP_NET_RAW capability for transparent proxying.
Roman Arutyunyan <arut@nginx.com>
parents: 7010
diff changeset
180 ngx_feature_libs=
84e53e4735a4 Retain CAP_NET_RAW capability for transparent proxying.
Roman Arutyunyan <arut@nginx.com>
parents: 7010
diff changeset
181 ngx_feature_test="struct __user_cap_data_struct data;
84e53e4735a4 Retain CAP_NET_RAW capability for transparent proxying.
Roman Arutyunyan <arut@nginx.com>
parents: 7010
diff changeset
182 struct __user_cap_header_struct header;
84e53e4735a4 Retain CAP_NET_RAW capability for transparent proxying.
Roman Arutyunyan <arut@nginx.com>
parents: 7010
diff changeset
183
7176
7f28b61c92f0 Fixed capabilities version.
Roman Arutyunyan <arut@nginx.com>
parents: 7175
diff changeset
184 header.version = _LINUX_CAPABILITY_VERSION_1;
7174
84e53e4735a4 Retain CAP_NET_RAW capability for transparent proxying.
Roman Arutyunyan <arut@nginx.com>
parents: 7010
diff changeset
185 data.effective = CAP_TO_MASK(CAP_NET_RAW);
84e53e4735a4 Retain CAP_NET_RAW capability for transparent proxying.
Roman Arutyunyan <arut@nginx.com>
parents: 7010
diff changeset
186 data.permitted = 0;
84e53e4735a4 Retain CAP_NET_RAW capability for transparent proxying.
Roman Arutyunyan <arut@nginx.com>
parents: 7010
diff changeset
187
7327
f7e79596baf2 Configure: fixed compiler warnings with "-Wall -Wextra".
Sergey Kandaurov <pluknet@nginx.com>
parents: 7176
diff changeset
188 (void) header;
f7e79596baf2 Configure: fixed compiler warnings with "-Wall -Wextra".
Sergey Kandaurov <pluknet@nginx.com>
parents: 7176
diff changeset
189 (void) data;
7175
56923e8e01a5 Improved the capabilities feature detection.
Roman Arutyunyan <arut@nginx.com>
parents: 7174
diff changeset
190 (void) SYS_capset"
7174
84e53e4735a4 Retain CAP_NET_RAW capability for transparent proxying.
Roman Arutyunyan <arut@nginx.com>
parents: 7010
diff changeset
191 . auto/feature
84e53e4735a4 Retain CAP_NET_RAW capability for transparent proxying.
Roman Arutyunyan <arut@nginx.com>
parents: 7010
diff changeset
192
84e53e4735a4 Retain CAP_NET_RAW capability for transparent proxying.
Roman Arutyunyan <arut@nginx.com>
parents: 7010
diff changeset
193
2660
2ca36a62c8a1 autoconfigure crypt_r(): uclibc has no crypt_r()
Igor Sysoev <igor@sysoev.ru>
parents: 2615
diff changeset
194 # crypt_r()
2ca36a62c8a1 autoconfigure crypt_r(): uclibc has no crypt_r()
Igor Sysoev <igor@sysoev.ru>
parents: 2615
diff changeset
195
2ca36a62c8a1 autoconfigure crypt_r(): uclibc has no crypt_r()
Igor Sysoev <igor@sysoev.ru>
parents: 2615
diff changeset
196 ngx_feature="crypt_r()"
2ca36a62c8a1 autoconfigure crypt_r(): uclibc has no crypt_r()
Igor Sysoev <igor@sysoev.ru>
parents: 2615
diff changeset
197 ngx_feature_name="NGX_HAVE_GNU_CRYPT_R"
2ca36a62c8a1 autoconfigure crypt_r(): uclibc has no crypt_r()
Igor Sysoev <igor@sysoev.ru>
parents: 2615
diff changeset
198 ngx_feature_run=no
2ca36a62c8a1 autoconfigure crypt_r(): uclibc has no crypt_r()
Igor Sysoev <igor@sysoev.ru>
parents: 2615
diff changeset
199 ngx_feature_incs="#include <crypt.h>"
2ca36a62c8a1 autoconfigure crypt_r(): uclibc has no crypt_r()
Igor Sysoev <igor@sysoev.ru>
parents: 2615
diff changeset
200 ngx_feature_path=
2ca36a62c8a1 autoconfigure crypt_r(): uclibc has no crypt_r()
Igor Sysoev <igor@sysoev.ru>
parents: 2615
diff changeset
201 ngx_feature_libs=-lcrypt
2ca36a62c8a1 autoconfigure crypt_r(): uclibc has no crypt_r()
Igor Sysoev <igor@sysoev.ru>
parents: 2615
diff changeset
202 ngx_feature_test="struct crypt_data cd;
4543
51744fa997c7 Fixed compilation warnings in configuration C tests.
Ruslan Ermilov <ru@nginx.com>
parents: 4412
diff changeset
203 crypt_r(\"key\", \"salt\", &cd);"
2660
2ca36a62c8a1 autoconfigure crypt_r(): uclibc has no crypt_r()
Igor Sysoev <igor@sysoev.ru>
parents: 2615
diff changeset
204 . auto/feature
2ca36a62c8a1 autoconfigure crypt_r(): uclibc has no crypt_r()
Igor Sysoev <igor@sysoev.ru>
parents: 2615
diff changeset
205
2ca36a62c8a1 autoconfigure crypt_r(): uclibc has no crypt_r()
Igor Sysoev <igor@sysoev.ru>
parents: 2615
diff changeset
206
2615
ceef364208c8 ngx_fs_bsize()
Igor Sysoev <igor@sysoev.ru>
parents: 2599
diff changeset
207 ngx_include="sys/vfs.h"; . auto/include
ceef364208c8 ngx_fs_bsize()
Igor Sysoev <igor@sysoev.ru>
parents: 2599
diff changeset
208
ceef364208c8 ngx_fs_bsize()
Igor Sysoev <igor@sysoev.ru>
parents: 2599
diff changeset
209
2747
ee5de4f120f4 fix GNU strerror_r() detection, the bug has been inroduced in r2600
Igor Sysoev <igor@sysoev.ru>
parents: 2660
diff changeset
210 CC_AUX_FLAGS="$cc_aux_flags -D_GNU_SOURCE -D_FILE_OFFSET_BITS=64"
8675
d3747ba486e7 Core: added interface to linux bpf() system call.
Vladimir Homutov <vl@nginx.com>
parents: 7327
diff changeset
211
d3747ba486e7 Core: added interface to linux bpf() system call.
Vladimir Homutov <vl@nginx.com>
parents: 7327
diff changeset
212
d3747ba486e7 Core: added interface to linux bpf() system call.
Vladimir Homutov <vl@nginx.com>
parents: 7327
diff changeset
213 # (E)BPF
d3747ba486e7 Core: added interface to linux bpf() system call.
Vladimir Homutov <vl@nginx.com>
parents: 7327
diff changeset
214
d3747ba486e7 Core: added interface to linux bpf() system call.
Vladimir Homutov <vl@nginx.com>
parents: 7327
diff changeset
215 ngx_feature="BPF support"
d3747ba486e7 Core: added interface to linux bpf() system call.
Vladimir Homutov <vl@nginx.com>
parents: 7327
diff changeset
216 ngx_feature_name="NGX_HAVE_BPF"
d3747ba486e7 Core: added interface to linux bpf() system call.
Vladimir Homutov <vl@nginx.com>
parents: 7327
diff changeset
217 ngx_feature_run=no
d3747ba486e7 Core: added interface to linux bpf() system call.
Vladimir Homutov <vl@nginx.com>
parents: 7327
diff changeset
218 ngx_feature_incs="#include <linux/bpf.h>
d3747ba486e7 Core: added interface to linux bpf() system call.
Vladimir Homutov <vl@nginx.com>
parents: 7327
diff changeset
219 #include <sys/syscall.h>"
d3747ba486e7 Core: added interface to linux bpf() system call.
Vladimir Homutov <vl@nginx.com>
parents: 7327
diff changeset
220 ngx_feature_path=
d3747ba486e7 Core: added interface to linux bpf() system call.
Vladimir Homutov <vl@nginx.com>
parents: 7327
diff changeset
221 ngx_feature_libs=
d3747ba486e7 Core: added interface to linux bpf() system call.
Vladimir Homutov <vl@nginx.com>
parents: 7327
diff changeset
222 ngx_feature_test="
d3747ba486e7 Core: added interface to linux bpf() system call.
Vladimir Homutov <vl@nginx.com>
parents: 7327
diff changeset
223 union bpf_attr attr = { 0 };
d3747ba486e7 Core: added interface to linux bpf() system call.
Vladimir Homutov <vl@nginx.com>
parents: 7327
diff changeset
224 /* only declare BPF support if all required features found */
d3747ba486e7 Core: added interface to linux bpf() system call.
Vladimir Homutov <vl@nginx.com>
parents: 7327
diff changeset
225 attr.map_flags = 0;
d3747ba486e7 Core: added interface to linux bpf() system call.
Vladimir Homutov <vl@nginx.com>
parents: 7327
diff changeset
226 attr.map_type = BPF_MAP_TYPE_SOCKHASH;
d3747ba486e7 Core: added interface to linux bpf() system call.
Vladimir Homutov <vl@nginx.com>
parents: 7327
diff changeset
227 syscall(__NR_bpf, 0, &attr, 0);"
d3747ba486e7 Core: added interface to linux bpf() system call.
Vladimir Homutov <vl@nginx.com>
parents: 7327
diff changeset
228
d3747ba486e7 Core: added interface to linux bpf() system call.
Vladimir Homutov <vl@nginx.com>
parents: 7327
diff changeset
229 . auto/feature
d3747ba486e7 Core: added interface to linux bpf() system call.
Vladimir Homutov <vl@nginx.com>
parents: 7327
diff changeset
230
d3747ba486e7 Core: added interface to linux bpf() system call.
Vladimir Homutov <vl@nginx.com>
parents: 7327
diff changeset
231 if [ $ngx_found = yes ]; then
d3747ba486e7 Core: added interface to linux bpf() system call.
Vladimir Homutov <vl@nginx.com>
parents: 7327
diff changeset
232 BPF_FOUND=YES
d3747ba486e7 Core: added interface to linux bpf() system call.
Vladimir Homutov <vl@nginx.com>
parents: 7327
diff changeset
233
d3747ba486e7 Core: added interface to linux bpf() system call.
Vladimir Homutov <vl@nginx.com>
parents: 7327
diff changeset
234 CORE_SRCS="$CORE_SRCS src/core/ngx_bpf.c"
d3747ba486e7 Core: added interface to linux bpf() system call.
Vladimir Homutov <vl@nginx.com>
parents: 7327
diff changeset
235 CORE_DEPS="$CORE_DEPS src/core/ngx_bpf.h"
d3747ba486e7 Core: added interface to linux bpf() system call.
Vladimir Homutov <vl@nginx.com>
parents: 7327
diff changeset
236 fi
8676
7df607cb2d11 QUIC: ngx_quic_bpf module.
Vladimir Homutov <vl@nginx.com>
parents: 8675
diff changeset
237
7df607cb2d11 QUIC: ngx_quic_bpf module.
Vladimir Homutov <vl@nginx.com>
parents: 8675
diff changeset
238
7df607cb2d11 QUIC: ngx_quic_bpf module.
Vladimir Homutov <vl@nginx.com>
parents: 8675
diff changeset
239 # SO_COOKIE socket option
7df607cb2d11 QUIC: ngx_quic_bpf module.
Vladimir Homutov <vl@nginx.com>
parents: 8675
diff changeset
240
7df607cb2d11 QUIC: ngx_quic_bpf module.
Vladimir Homutov <vl@nginx.com>
parents: 8675
diff changeset
241 ngx_feature="SO_COOKIE"
7df607cb2d11 QUIC: ngx_quic_bpf module.
Vladimir Homutov <vl@nginx.com>
parents: 8675
diff changeset
242 ngx_feature_name="NGX_HAVE_SO_COOKIE"
7df607cb2d11 QUIC: ngx_quic_bpf module.
Vladimir Homutov <vl@nginx.com>
parents: 8675
diff changeset
243 ngx_feature_run=no
7df607cb2d11 QUIC: ngx_quic_bpf module.
Vladimir Homutov <vl@nginx.com>
parents: 8675
diff changeset
244 ngx_feature_incs="#include <sys/socket.h>
7df607cb2d11 QUIC: ngx_quic_bpf module.
Vladimir Homutov <vl@nginx.com>
parents: 8675
diff changeset
245 #include <stdint.h>"
7df607cb2d11 QUIC: ngx_quic_bpf module.
Vladimir Homutov <vl@nginx.com>
parents: 8675
diff changeset
246 ngx_feature_path=
7df607cb2d11 QUIC: ngx_quic_bpf module.
Vladimir Homutov <vl@nginx.com>
parents: 8675
diff changeset
247 ngx_feature_libs=
7df607cb2d11 QUIC: ngx_quic_bpf module.
Vladimir Homutov <vl@nginx.com>
parents: 8675
diff changeset
248 ngx_feature_test="socklen_t optlen = sizeof(uint64_t);
7df607cb2d11 QUIC: ngx_quic_bpf module.
Vladimir Homutov <vl@nginx.com>
parents: 8675
diff changeset
249 uint64_t cookie;
7df607cb2d11 QUIC: ngx_quic_bpf module.
Vladimir Homutov <vl@nginx.com>
parents: 8675
diff changeset
250 getsockopt(0, SOL_SOCKET, SO_COOKIE, &cookie, &optlen)"
7df607cb2d11 QUIC: ngx_quic_bpf module.
Vladimir Homutov <vl@nginx.com>
parents: 8675
diff changeset
251 . auto/feature
7df607cb2d11 QUIC: ngx_quic_bpf module.
Vladimir Homutov <vl@nginx.com>
parents: 8675
diff changeset
252
7df607cb2d11 QUIC: ngx_quic_bpf module.
Vladimir Homutov <vl@nginx.com>
parents: 8675
diff changeset
253 if [ $ngx_found = yes ]; then
7df607cb2d11 QUIC: ngx_quic_bpf module.
Vladimir Homutov <vl@nginx.com>
parents: 8675
diff changeset
254 SO_COOKIE_FOUND=YES
7df607cb2d11 QUIC: ngx_quic_bpf module.
Vladimir Homutov <vl@nginx.com>
parents: 8675
diff changeset
255 have=NGX_HAVE_SO_COOKIE . auto/have
7df607cb2d11 QUIC: ngx_quic_bpf module.
Vladimir Homutov <vl@nginx.com>
parents: 8675
diff changeset
256 fi
7df607cb2d11 QUIC: ngx_quic_bpf module.
Vladimir Homutov <vl@nginx.com>
parents: 8675
diff changeset
257
7df607cb2d11 QUIC: ngx_quic_bpf module.
Vladimir Homutov <vl@nginx.com>
parents: 8675
diff changeset
258
7df607cb2d11 QUIC: ngx_quic_bpf module.
Vladimir Homutov <vl@nginx.com>
parents: 8675
diff changeset
259 # ngx_quic_bpf module uses sockhash to select socket from reuseport group,
7df607cb2d11 QUIC: ngx_quic_bpf module.
Vladimir Homutov <vl@nginx.com>
parents: 8675
diff changeset
260 # support appeared in Linux-5.7:
7df607cb2d11 QUIC: ngx_quic_bpf module.
Vladimir Homutov <vl@nginx.com>
parents: 8675
diff changeset
261 #
7df607cb2d11 QUIC: ngx_quic_bpf module.
Vladimir Homutov <vl@nginx.com>
parents: 8675
diff changeset
262 # commit: 9fed9000c5c6cacfcaaa48aff74818072ae294cc
7df607cb2d11 QUIC: ngx_quic_bpf module.
Vladimir Homutov <vl@nginx.com>
parents: 8675
diff changeset
263 # bpf: Allow selecting reuseport socket from a SOCKMAP/SOCKHASH
7df607cb2d11 QUIC: ngx_quic_bpf module.
Vladimir Homutov <vl@nginx.com>
parents: 8675
diff changeset
264 #
7df607cb2d11 QUIC: ngx_quic_bpf module.
Vladimir Homutov <vl@nginx.com>
parents: 8675
diff changeset
265 if [ $NGX_QUIC_BPF$BPF_FOUND = YESYES ]; then
7df607cb2d11 QUIC: ngx_quic_bpf module.
Vladimir Homutov <vl@nginx.com>
parents: 8675
diff changeset
266 echo $ngx_n "checking for kernel with reuseport/BPF support...$ngx_c"
7df607cb2d11 QUIC: ngx_quic_bpf module.
Vladimir Homutov <vl@nginx.com>
parents: 8675
diff changeset
267 if [ $version -lt 329472 ]; then
7df607cb2d11 QUIC: ngx_quic_bpf module.
Vladimir Homutov <vl@nginx.com>
parents: 8675
diff changeset
268 echo " not found (at least 5.7 is required)"
7df607cb2d11 QUIC: ngx_quic_bpf module.
Vladimir Homutov <vl@nginx.com>
parents: 8675
diff changeset
269 NGX_QUIC_BPF=NO
7df607cb2d11 QUIC: ngx_quic_bpf module.
Vladimir Homutov <vl@nginx.com>
parents: 8675
diff changeset
270 else
7df607cb2d11 QUIC: ngx_quic_bpf module.
Vladimir Homutov <vl@nginx.com>
parents: 8675
diff changeset
271 echo " found"
7df607cb2d11 QUIC: ngx_quic_bpf module.
Vladimir Homutov <vl@nginx.com>
parents: 8675
diff changeset
272 fi
7df607cb2d11 QUIC: ngx_quic_bpf module.
Vladimir Homutov <vl@nginx.com>
parents: 8675
diff changeset
273 fi
7df607cb2d11 QUIC: ngx_quic_bpf module.
Vladimir Homutov <vl@nginx.com>
parents: 8675
diff changeset
274