Mercurial > hg > nginx-tests
annotate http_disable_symlinks.t @ 205:606a4df68952
Tests: workaround for freebsd 8 in disable_symlinks tests.
There are no O_SEARCH on FreeBSD yet, and we use O_EXEC|O_DIRECTORY
instead. Unfortunately on FreeBSD 8 the O_DIRECTORY flag does nothing,
and as a result openat(O_EXEC) fails with EACCESS while trying to open
a file. Workaround is to make the file executable, thus allowing it
to correctly fail with ENOTDIR on next call.
author | Maxim Dounin <mdounin@mdounin.ru> |
---|---|
date | Tue, 21 Feb 2012 16:58:21 +0000 |
parents | d838248b643a |
children | 9963da7397cc |
rev | line source |
---|---|
201
fc297a64142e
Tests: disable_symlinks directive tests added.
Andrey Belov <defan@nginx.com>
parents:
diff
changeset
|
1 #!/usr/bin/perl |
fc297a64142e
Tests: disable_symlinks directive tests added.
Andrey Belov <defan@nginx.com>
parents:
diff
changeset
|
2 |
fc297a64142e
Tests: disable_symlinks directive tests added.
Andrey Belov <defan@nginx.com>
parents:
diff
changeset
|
3 # (C) Andrey Belov |
fc297a64142e
Tests: disable_symlinks directive tests added.
Andrey Belov <defan@nginx.com>
parents:
diff
changeset
|
4 |
fc297a64142e
Tests: disable_symlinks directive tests added.
Andrey Belov <defan@nginx.com>
parents:
diff
changeset
|
5 # Tests for disable_symlinks directive. |
fc297a64142e
Tests: disable_symlinks directive tests added.
Andrey Belov <defan@nginx.com>
parents:
diff
changeset
|
6 |
fc297a64142e
Tests: disable_symlinks directive tests added.
Andrey Belov <defan@nginx.com>
parents:
diff
changeset
|
7 ############################################################################### |
fc297a64142e
Tests: disable_symlinks directive tests added.
Andrey Belov <defan@nginx.com>
parents:
diff
changeset
|
8 |
fc297a64142e
Tests: disable_symlinks directive tests added.
Andrey Belov <defan@nginx.com>
parents:
diff
changeset
|
9 use warnings; |
fc297a64142e
Tests: disable_symlinks directive tests added.
Andrey Belov <defan@nginx.com>
parents:
diff
changeset
|
10 use strict; |
fc297a64142e
Tests: disable_symlinks directive tests added.
Andrey Belov <defan@nginx.com>
parents:
diff
changeset
|
11 |
fc297a64142e
Tests: disable_symlinks directive tests added.
Andrey Belov <defan@nginx.com>
parents:
diff
changeset
|
12 use Test::More; |
fc297a64142e
Tests: disable_symlinks directive tests added.
Andrey Belov <defan@nginx.com>
parents:
diff
changeset
|
13 use POSIX; |
202
067b6cb4793d
Tests: cleanup disable_symlinks tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
201
diff
changeset
|
14 use Cwd qw/ realpath /; |
201
fc297a64142e
Tests: disable_symlinks directive tests added.
Andrey Belov <defan@nginx.com>
parents:
diff
changeset
|
15 |
fc297a64142e
Tests: disable_symlinks directive tests added.
Andrey Belov <defan@nginx.com>
parents:
diff
changeset
|
16 BEGIN { use FindBin; chdir($FindBin::Bin); } |
fc297a64142e
Tests: disable_symlinks directive tests added.
Andrey Belov <defan@nginx.com>
parents:
diff
changeset
|
17 |
fc297a64142e
Tests: disable_symlinks directive tests added.
Andrey Belov <defan@nginx.com>
parents:
diff
changeset
|
18 use lib 'lib'; |
fc297a64142e
Tests: disable_symlinks directive tests added.
Andrey Belov <defan@nginx.com>
parents:
diff
changeset
|
19 use Test::Nginx; |
fc297a64142e
Tests: disable_symlinks directive tests added.
Andrey Belov <defan@nginx.com>
parents:
diff
changeset
|
20 |
fc297a64142e
Tests: disable_symlinks directive tests added.
Andrey Belov <defan@nginx.com>
parents:
diff
changeset
|
21 ############################################################################### |
fc297a64142e
Tests: disable_symlinks directive tests added.
Andrey Belov <defan@nginx.com>
parents:
diff
changeset
|
22 |
fc297a64142e
Tests: disable_symlinks directive tests added.
Andrey Belov <defan@nginx.com>
parents:
diff
changeset
|
23 select STDERR; $| = 1; |
fc297a64142e
Tests: disable_symlinks directive tests added.
Andrey Belov <defan@nginx.com>
parents:
diff
changeset
|
24 select STDOUT; $| = 1; |
fc297a64142e
Tests: disable_symlinks directive tests added.
Andrey Belov <defan@nginx.com>
parents:
diff
changeset
|
25 |
fc297a64142e
Tests: disable_symlinks directive tests added.
Andrey Belov <defan@nginx.com>
parents:
diff
changeset
|
26 my $t = Test::Nginx->new()->has(qw/http rewrite/) |
fc297a64142e
Tests: disable_symlinks directive tests added.
Andrey Belov <defan@nginx.com>
parents:
diff
changeset
|
27 ->write_file_expand('nginx.conf', <<'EOF'); |
fc297a64142e
Tests: disable_symlinks directive tests added.
Andrey Belov <defan@nginx.com>
parents:
diff
changeset
|
28 |
fc297a64142e
Tests: disable_symlinks directive tests added.
Andrey Belov <defan@nginx.com>
parents:
diff
changeset
|
29 %%TEST_GLOBALS%% |
fc297a64142e
Tests: disable_symlinks directive tests added.
Andrey Belov <defan@nginx.com>
parents:
diff
changeset
|
30 |
fc297a64142e
Tests: disable_symlinks directive tests added.
Andrey Belov <defan@nginx.com>
parents:
diff
changeset
|
31 daemon off; |
fc297a64142e
Tests: disable_symlinks directive tests added.
Andrey Belov <defan@nginx.com>
parents:
diff
changeset
|
32 |
fc297a64142e
Tests: disable_symlinks directive tests added.
Andrey Belov <defan@nginx.com>
parents:
diff
changeset
|
33 events { |
fc297a64142e
Tests: disable_symlinks directive tests added.
Andrey Belov <defan@nginx.com>
parents:
diff
changeset
|
34 } |
fc297a64142e
Tests: disable_symlinks directive tests added.
Andrey Belov <defan@nginx.com>
parents:
diff
changeset
|
35 |
fc297a64142e
Tests: disable_symlinks directive tests added.
Andrey Belov <defan@nginx.com>
parents:
diff
changeset
|
36 http { |
fc297a64142e
Tests: disable_symlinks directive tests added.
Andrey Belov <defan@nginx.com>
parents:
diff
changeset
|
37 %%TEST_GLOBALS_HTTP%% |
fc297a64142e
Tests: disable_symlinks directive tests added.
Andrey Belov <defan@nginx.com>
parents:
diff
changeset
|
38 |
fc297a64142e
Tests: disable_symlinks directive tests added.
Andrey Belov <defan@nginx.com>
parents:
diff
changeset
|
39 server { |
fc297a64142e
Tests: disable_symlinks directive tests added.
Andrey Belov <defan@nginx.com>
parents:
diff
changeset
|
40 listen 127.0.0.1:8080; |
fc297a64142e
Tests: disable_symlinks directive tests added.
Andrey Belov <defan@nginx.com>
parents:
diff
changeset
|
41 server_name s1; |
fc297a64142e
Tests: disable_symlinks directive tests added.
Andrey Belov <defan@nginx.com>
parents:
diff
changeset
|
42 |
fc297a64142e
Tests: disable_symlinks directive tests added.
Andrey Belov <defan@nginx.com>
parents:
diff
changeset
|
43 location /on/ { |
fc297a64142e
Tests: disable_symlinks directive tests added.
Andrey Belov <defan@nginx.com>
parents:
diff
changeset
|
44 disable_symlinks on; |
fc297a64142e
Tests: disable_symlinks directive tests added.
Andrey Belov <defan@nginx.com>
parents:
diff
changeset
|
45 } |
fc297a64142e
Tests: disable_symlinks directive tests added.
Andrey Belov <defan@nginx.com>
parents:
diff
changeset
|
46 |
fc297a64142e
Tests: disable_symlinks directive tests added.
Andrey Belov <defan@nginx.com>
parents:
diff
changeset
|
47 location /not_owner/ { |
fc297a64142e
Tests: disable_symlinks directive tests added.
Andrey Belov <defan@nginx.com>
parents:
diff
changeset
|
48 disable_symlinks if_not_owner; |
fc297a64142e
Tests: disable_symlinks directive tests added.
Andrey Belov <defan@nginx.com>
parents:
diff
changeset
|
49 } |
fc297a64142e
Tests: disable_symlinks directive tests added.
Andrey Belov <defan@nginx.com>
parents:
diff
changeset
|
50 |
fc297a64142e
Tests: disable_symlinks directive tests added.
Andrey Belov <defan@nginx.com>
parents:
diff
changeset
|
51 location /try_on/ { |
fc297a64142e
Tests: disable_symlinks directive tests added.
Andrey Belov <defan@nginx.com>
parents:
diff
changeset
|
52 disable_symlinks on; |
fc297a64142e
Tests: disable_symlinks directive tests added.
Andrey Belov <defan@nginx.com>
parents:
diff
changeset
|
53 try_files $uri $uri.html =404; |
fc297a64142e
Tests: disable_symlinks directive tests added.
Andrey Belov <defan@nginx.com>
parents:
diff
changeset
|
54 } |
fc297a64142e
Tests: disable_symlinks directive tests added.
Andrey Belov <defan@nginx.com>
parents:
diff
changeset
|
55 |
fc297a64142e
Tests: disable_symlinks directive tests added.
Andrey Belov <defan@nginx.com>
parents:
diff
changeset
|
56 location /try_not_owner/ { |
fc297a64142e
Tests: disable_symlinks directive tests added.
Andrey Belov <defan@nginx.com>
parents:
diff
changeset
|
57 disable_symlinks if_not_owner; |
fc297a64142e
Tests: disable_symlinks directive tests added.
Andrey Belov <defan@nginx.com>
parents:
diff
changeset
|
58 try_files $uri $uri.txt =404; |
fc297a64142e
Tests: disable_symlinks directive tests added.
Andrey Belov <defan@nginx.com>
parents:
diff
changeset
|
59 } |
fc297a64142e
Tests: disable_symlinks directive tests added.
Andrey Belov <defan@nginx.com>
parents:
diff
changeset
|
60 |
fc297a64142e
Tests: disable_symlinks directive tests added.
Andrey Belov <defan@nginx.com>
parents:
diff
changeset
|
61 location /if_on/ { |
fc297a64142e
Tests: disable_symlinks directive tests added.
Andrey Belov <defan@nginx.com>
parents:
diff
changeset
|
62 disable_symlinks on; |
fc297a64142e
Tests: disable_symlinks directive tests added.
Andrey Belov <defan@nginx.com>
parents:
diff
changeset
|
63 if (-f $request_filename) { |
fc297a64142e
Tests: disable_symlinks directive tests added.
Andrey Belov <defan@nginx.com>
parents:
diff
changeset
|
64 return 204; |
fc297a64142e
Tests: disable_symlinks directive tests added.
Andrey Belov <defan@nginx.com>
parents:
diff
changeset
|
65 } |
fc297a64142e
Tests: disable_symlinks directive tests added.
Andrey Belov <defan@nginx.com>
parents:
diff
changeset
|
66 } |
fc297a64142e
Tests: disable_symlinks directive tests added.
Andrey Belov <defan@nginx.com>
parents:
diff
changeset
|
67 |
fc297a64142e
Tests: disable_symlinks directive tests added.
Andrey Belov <defan@nginx.com>
parents:
diff
changeset
|
68 location /if_not_owner/ { |
fc297a64142e
Tests: disable_symlinks directive tests added.
Andrey Belov <defan@nginx.com>
parents:
diff
changeset
|
69 disable_symlinks if_not_owner; |
fc297a64142e
Tests: disable_symlinks directive tests added.
Andrey Belov <defan@nginx.com>
parents:
diff
changeset
|
70 if (-f $request_filename) { |
fc297a64142e
Tests: disable_symlinks directive tests added.
Andrey Belov <defan@nginx.com>
parents:
diff
changeset
|
71 return 204; |
fc297a64142e
Tests: disable_symlinks directive tests added.
Andrey Belov <defan@nginx.com>
parents:
diff
changeset
|
72 } |
fc297a64142e
Tests: disable_symlinks directive tests added.
Andrey Belov <defan@nginx.com>
parents:
diff
changeset
|
73 } |
203
b6a4770e47ea
Tests: disable_symlinks tests for complex cases.
Maxim Dounin <mdounin@mdounin.ru>
parents:
202
diff
changeset
|
74 |
b6a4770e47ea
Tests: disable_symlinks tests for complex cases.
Maxim Dounin <mdounin@mdounin.ru>
parents:
202
diff
changeset
|
75 location /complex/1/ { |
b6a4770e47ea
Tests: disable_symlinks tests for complex cases.
Maxim Dounin <mdounin@mdounin.ru>
parents:
202
diff
changeset
|
76 disable_symlinks on; |
b6a4770e47ea
Tests: disable_symlinks tests for complex cases.
Maxim Dounin <mdounin@mdounin.ru>
parents:
202
diff
changeset
|
77 alias %%TESTDIR%%/./cached/../; |
b6a4770e47ea
Tests: disable_symlinks tests for complex cases.
Maxim Dounin <mdounin@mdounin.ru>
parents:
202
diff
changeset
|
78 } |
b6a4770e47ea
Tests: disable_symlinks tests for complex cases.
Maxim Dounin <mdounin@mdounin.ru>
parents:
202
diff
changeset
|
79 |
b6a4770e47ea
Tests: disable_symlinks tests for complex cases.
Maxim Dounin <mdounin@mdounin.ru>
parents:
202
diff
changeset
|
80 location /complex/2/ { |
b6a4770e47ea
Tests: disable_symlinks tests for complex cases.
Maxim Dounin <mdounin@mdounin.ru>
parents:
202
diff
changeset
|
81 disable_symlinks on; |
b6a4770e47ea
Tests: disable_symlinks tests for complex cases.
Maxim Dounin <mdounin@mdounin.ru>
parents:
202
diff
changeset
|
82 alias %%TESTDIR%%//./cached/..//; |
b6a4770e47ea
Tests: disable_symlinks tests for complex cases.
Maxim Dounin <mdounin@mdounin.ru>
parents:
202
diff
changeset
|
83 } |
b6a4770e47ea
Tests: disable_symlinks tests for complex cases.
Maxim Dounin <mdounin@mdounin.ru>
parents:
202
diff
changeset
|
84 |
b6a4770e47ea
Tests: disable_symlinks tests for complex cases.
Maxim Dounin <mdounin@mdounin.ru>
parents:
202
diff
changeset
|
85 location /complex/3/ { |
b6a4770e47ea
Tests: disable_symlinks tests for complex cases.
Maxim Dounin <mdounin@mdounin.ru>
parents:
202
diff
changeset
|
86 disable_symlinks on; |
b6a4770e47ea
Tests: disable_symlinks tests for complex cases.
Maxim Dounin <mdounin@mdounin.ru>
parents:
202
diff
changeset
|
87 alias ///%%TESTDIR%%//./cached/..//; |
b6a4770e47ea
Tests: disable_symlinks tests for complex cases.
Maxim Dounin <mdounin@mdounin.ru>
parents:
202
diff
changeset
|
88 } |
b6a4770e47ea
Tests: disable_symlinks tests for complex cases.
Maxim Dounin <mdounin@mdounin.ru>
parents:
202
diff
changeset
|
89 |
b6a4770e47ea
Tests: disable_symlinks tests for complex cases.
Maxim Dounin <mdounin@mdounin.ru>
parents:
202
diff
changeset
|
90 location ~ (.+/)tail$ { |
b6a4770e47ea
Tests: disable_symlinks tests for complex cases.
Maxim Dounin <mdounin@mdounin.ru>
parents:
202
diff
changeset
|
91 disable_symlinks on; |
b6a4770e47ea
Tests: disable_symlinks tests for complex cases.
Maxim Dounin <mdounin@mdounin.ru>
parents:
202
diff
changeset
|
92 alias %%TESTDIR%%/$1; |
b6a4770e47ea
Tests: disable_symlinks tests for complex cases.
Maxim Dounin <mdounin@mdounin.ru>
parents:
202
diff
changeset
|
93 } |
b6a4770e47ea
Tests: disable_symlinks tests for complex cases.
Maxim Dounin <mdounin@mdounin.ru>
parents:
202
diff
changeset
|
94 |
204
d838248b643a
Tests: more disable_symlinks tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
203
diff
changeset
|
95 location ~ (.+/)tailowner$ { |
d838248b643a
Tests: more disable_symlinks tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
203
diff
changeset
|
96 disable_symlinks if_not_owner; |
d838248b643a
Tests: more disable_symlinks tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
203
diff
changeset
|
97 alias %%TESTDIR%%/$1; |
d838248b643a
Tests: more disable_symlinks tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
203
diff
changeset
|
98 } |
d838248b643a
Tests: more disable_symlinks tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
203
diff
changeset
|
99 |
d838248b643a
Tests: more disable_symlinks tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
203
diff
changeset
|
100 location ~ (.+/)tailoff$ { |
d838248b643a
Tests: more disable_symlinks tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
203
diff
changeset
|
101 disable_symlinks off; |
d838248b643a
Tests: more disable_symlinks tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
203
diff
changeset
|
102 alias %%TESTDIR%%/$1; |
d838248b643a
Tests: more disable_symlinks tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
203
diff
changeset
|
103 } |
d838248b643a
Tests: more disable_symlinks tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
203
diff
changeset
|
104 |
203
b6a4770e47ea
Tests: disable_symlinks tests for complex cases.
Maxim Dounin <mdounin@mdounin.ru>
parents:
202
diff
changeset
|
105 location /dir { |
b6a4770e47ea
Tests: disable_symlinks tests for complex cases.
Maxim Dounin <mdounin@mdounin.ru>
parents:
202
diff
changeset
|
106 disable_symlinks on; |
b6a4770e47ea
Tests: disable_symlinks tests for complex cases.
Maxim Dounin <mdounin@mdounin.ru>
parents:
202
diff
changeset
|
107 try_files $uri/ =404; |
b6a4770e47ea
Tests: disable_symlinks tests for complex cases.
Maxim Dounin <mdounin@mdounin.ru>
parents:
202
diff
changeset
|
108 } |
201
fc297a64142e
Tests: disable_symlinks directive tests added.
Andrey Belov <defan@nginx.com>
parents:
diff
changeset
|
109 } |
fc297a64142e
Tests: disable_symlinks directive tests added.
Andrey Belov <defan@nginx.com>
parents:
diff
changeset
|
110 |
fc297a64142e
Tests: disable_symlinks directive tests added.
Andrey Belov <defan@nginx.com>
parents:
diff
changeset
|
111 server { |
fc297a64142e
Tests: disable_symlinks directive tests added.
Andrey Belov <defan@nginx.com>
parents:
diff
changeset
|
112 listen 127.0.0.1:8080; |
fc297a64142e
Tests: disable_symlinks directive tests added.
Andrey Belov <defan@nginx.com>
parents:
diff
changeset
|
113 server_name s2; |
fc297a64142e
Tests: disable_symlinks directive tests added.
Andrey Belov <defan@nginx.com>
parents:
diff
changeset
|
114 |
fc297a64142e
Tests: disable_symlinks directive tests added.
Andrey Belov <defan@nginx.com>
parents:
diff
changeset
|
115 open_file_cache max=16 inactive=60s; |
fc297a64142e
Tests: disable_symlinks directive tests added.
Andrey Belov <defan@nginx.com>
parents:
diff
changeset
|
116 open_file_cache_valid 30s; |
fc297a64142e
Tests: disable_symlinks directive tests added.
Andrey Belov <defan@nginx.com>
parents:
diff
changeset
|
117 open_file_cache_min_uses 1; |
fc297a64142e
Tests: disable_symlinks directive tests added.
Andrey Belov <defan@nginx.com>
parents:
diff
changeset
|
118 open_file_cache_errors on; |
fc297a64142e
Tests: disable_symlinks directive tests added.
Andrey Belov <defan@nginx.com>
parents:
diff
changeset
|
119 |
fc297a64142e
Tests: disable_symlinks directive tests added.
Andrey Belov <defan@nginx.com>
parents:
diff
changeset
|
120 location /cached-off/ { |
fc297a64142e
Tests: disable_symlinks directive tests added.
Andrey Belov <defan@nginx.com>
parents:
diff
changeset
|
121 disable_symlinks off; |
fc297a64142e
Tests: disable_symlinks directive tests added.
Andrey Belov <defan@nginx.com>
parents:
diff
changeset
|
122 alias %%TESTDIR%%/cached/; |
fc297a64142e
Tests: disable_symlinks directive tests added.
Andrey Belov <defan@nginx.com>
parents:
diff
changeset
|
123 } |
fc297a64142e
Tests: disable_symlinks directive tests added.
Andrey Belov <defan@nginx.com>
parents:
diff
changeset
|
124 |
fc297a64142e
Tests: disable_symlinks directive tests added.
Andrey Belov <defan@nginx.com>
parents:
diff
changeset
|
125 location /cached-on/ { |
fc297a64142e
Tests: disable_symlinks directive tests added.
Andrey Belov <defan@nginx.com>
parents:
diff
changeset
|
126 disable_symlinks on; |
fc297a64142e
Tests: disable_symlinks directive tests added.
Andrey Belov <defan@nginx.com>
parents:
diff
changeset
|
127 alias %%TESTDIR%%/cached/; |
fc297a64142e
Tests: disable_symlinks directive tests added.
Andrey Belov <defan@nginx.com>
parents:
diff
changeset
|
128 } |
fc297a64142e
Tests: disable_symlinks directive tests added.
Andrey Belov <defan@nginx.com>
parents:
diff
changeset
|
129 |
fc297a64142e
Tests: disable_symlinks directive tests added.
Andrey Belov <defan@nginx.com>
parents:
diff
changeset
|
130 location /cached-if-not-owner/ { |
fc297a64142e
Tests: disable_symlinks directive tests added.
Andrey Belov <defan@nginx.com>
parents:
diff
changeset
|
131 disable_symlinks if_not_owner; |
fc297a64142e
Tests: disable_symlinks directive tests added.
Andrey Belov <defan@nginx.com>
parents:
diff
changeset
|
132 alias %%TESTDIR%%/cached/; |
fc297a64142e
Tests: disable_symlinks directive tests added.
Andrey Belov <defan@nginx.com>
parents:
diff
changeset
|
133 } |
fc297a64142e
Tests: disable_symlinks directive tests added.
Andrey Belov <defan@nginx.com>
parents:
diff
changeset
|
134 |
fc297a64142e
Tests: disable_symlinks directive tests added.
Andrey Belov <defan@nginx.com>
parents:
diff
changeset
|
135 location / { |
fc297a64142e
Tests: disable_symlinks directive tests added.
Andrey Belov <defan@nginx.com>
parents:
diff
changeset
|
136 disable_symlinks off; |
fc297a64142e
Tests: disable_symlinks directive tests added.
Andrey Belov <defan@nginx.com>
parents:
diff
changeset
|
137 } |
fc297a64142e
Tests: disable_symlinks directive tests added.
Andrey Belov <defan@nginx.com>
parents:
diff
changeset
|
138 } |
fc297a64142e
Tests: disable_symlinks directive tests added.
Andrey Belov <defan@nginx.com>
parents:
diff
changeset
|
139 } |
fc297a64142e
Tests: disable_symlinks directive tests added.
Andrey Belov <defan@nginx.com>
parents:
diff
changeset
|
140 |
fc297a64142e
Tests: disable_symlinks directive tests added.
Andrey Belov <defan@nginx.com>
parents:
diff
changeset
|
141 EOF |
fc297a64142e
Tests: disable_symlinks directive tests added.
Andrey Belov <defan@nginx.com>
parents:
diff
changeset
|
142 |
fc297a64142e
Tests: disable_symlinks directive tests added.
Andrey Belov <defan@nginx.com>
parents:
diff
changeset
|
143 eval { |
fc297a64142e
Tests: disable_symlinks directive tests added.
Andrey Belov <defan@nginx.com>
parents:
diff
changeset
|
144 open OLDERR, ">&", \*STDERR; close STDERR; |
fc297a64142e
Tests: disable_symlinks directive tests added.
Andrey Belov <defan@nginx.com>
parents:
diff
changeset
|
145 $t->run(); |
fc297a64142e
Tests: disable_symlinks directive tests added.
Andrey Belov <defan@nginx.com>
parents:
diff
changeset
|
146 open STDERR, ">&", \*OLDERR; |
fc297a64142e
Tests: disable_symlinks directive tests added.
Andrey Belov <defan@nginx.com>
parents:
diff
changeset
|
147 }; |
fc297a64142e
Tests: disable_symlinks directive tests added.
Andrey Belov <defan@nginx.com>
parents:
diff
changeset
|
148 plan(skip_all => 'no disable_symlinks') if $@; |
fc297a64142e
Tests: disable_symlinks directive tests added.
Andrey Belov <defan@nginx.com>
parents:
diff
changeset
|
149 |
fc297a64142e
Tests: disable_symlinks directive tests added.
Andrey Belov <defan@nginx.com>
parents:
diff
changeset
|
150 my $uid = getuid(); |
202
067b6cb4793d
Tests: cleanup disable_symlinks tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
201
diff
changeset
|
151 my ($extfile) = grep { -f "$_" && $uid != (stat($_))[4] } |
067b6cb4793d
Tests: cleanup disable_symlinks tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
201
diff
changeset
|
152 ('/etc/resolv.conf', '/etc/protocols', '/etc/host.conf'); |
201
fc297a64142e
Tests: disable_symlinks directive tests added.
Andrey Belov <defan@nginx.com>
parents:
diff
changeset
|
153 |
202
067b6cb4793d
Tests: cleanup disable_symlinks tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
201
diff
changeset
|
154 plan(skip_all => 'no external file found') |
067b6cb4793d
Tests: cleanup disable_symlinks tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
201
diff
changeset
|
155 if !defined $extfile; |
201
fc297a64142e
Tests: disable_symlinks directive tests added.
Andrey Belov <defan@nginx.com>
parents:
diff
changeset
|
156 |
fc297a64142e
Tests: disable_symlinks directive tests added.
Andrey Belov <defan@nginx.com>
parents:
diff
changeset
|
157 my $d = $t->testdir(); |
fc297a64142e
Tests: disable_symlinks directive tests added.
Andrey Belov <defan@nginx.com>
parents:
diff
changeset
|
158 |
202
067b6cb4793d
Tests: cleanup disable_symlinks tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
201
diff
changeset
|
159 plan(skip_all => 'cannot test under symlink') |
067b6cb4793d
Tests: cleanup disable_symlinks tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
201
diff
changeset
|
160 if $d ne realpath($d); |
067b6cb4793d
Tests: cleanup disable_symlinks tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
201
diff
changeset
|
161 |
204
d838248b643a
Tests: more disable_symlinks tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
203
diff
changeset
|
162 $t->plan(25); |
202
067b6cb4793d
Tests: cleanup disable_symlinks tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
201
diff
changeset
|
163 |
201
fc297a64142e
Tests: disable_symlinks directive tests added.
Andrey Belov <defan@nginx.com>
parents:
diff
changeset
|
164 mkdir("$d/on"); |
fc297a64142e
Tests: disable_symlinks directive tests added.
Andrey Belov <defan@nginx.com>
parents:
diff
changeset
|
165 mkdir("$d/not_owner"); |
fc297a64142e
Tests: disable_symlinks directive tests added.
Andrey Belov <defan@nginx.com>
parents:
diff
changeset
|
166 mkdir("$d/try_on"); |
fc297a64142e
Tests: disable_symlinks directive tests added.
Andrey Belov <defan@nginx.com>
parents:
diff
changeset
|
167 mkdir("$d/try_not_owner"); |
fc297a64142e
Tests: disable_symlinks directive tests added.
Andrey Belov <defan@nginx.com>
parents:
diff
changeset
|
168 mkdir("$d/if_on"); |
fc297a64142e
Tests: disable_symlinks directive tests added.
Andrey Belov <defan@nginx.com>
parents:
diff
changeset
|
169 mkdir("$d/if_not_owner"); |
fc297a64142e
Tests: disable_symlinks directive tests added.
Andrey Belov <defan@nginx.com>
parents:
diff
changeset
|
170 mkdir("$d/cached"); |
fc297a64142e
Tests: disable_symlinks directive tests added.
Andrey Belov <defan@nginx.com>
parents:
diff
changeset
|
171 |
fc297a64142e
Tests: disable_symlinks directive tests added.
Andrey Belov <defan@nginx.com>
parents:
diff
changeset
|
172 $t->write_file("empty.html", ""); |
fc297a64142e
Tests: disable_symlinks directive tests added.
Andrey Belov <defan@nginx.com>
parents:
diff
changeset
|
173 symlink("empty.html", "$d/link"); |
fc297a64142e
Tests: disable_symlinks directive tests added.
Andrey Belov <defan@nginx.com>
parents:
diff
changeset
|
174 symlink($extfile, "$d/link2"); |
fc297a64142e
Tests: disable_symlinks directive tests added.
Andrey Belov <defan@nginx.com>
parents:
diff
changeset
|
175 |
fc297a64142e
Tests: disable_symlinks directive tests added.
Andrey Belov <defan@nginx.com>
parents:
diff
changeset
|
176 $t->write_file("on/empty.html", ""); |
fc297a64142e
Tests: disable_symlinks directive tests added.
Andrey Belov <defan@nginx.com>
parents:
diff
changeset
|
177 symlink("empty.html", "$d/on/link"); |
fc297a64142e
Tests: disable_symlinks directive tests added.
Andrey Belov <defan@nginx.com>
parents:
diff
changeset
|
178 symlink($extfile, "$d/on/link2"); |
fc297a64142e
Tests: disable_symlinks directive tests added.
Andrey Belov <defan@nginx.com>
parents:
diff
changeset
|
179 |
fc297a64142e
Tests: disable_symlinks directive tests added.
Andrey Belov <defan@nginx.com>
parents:
diff
changeset
|
180 $t->write_file("not_owner/empty.html", ""); |
fc297a64142e
Tests: disable_symlinks directive tests added.
Andrey Belov <defan@nginx.com>
parents:
diff
changeset
|
181 symlink("empty.html", "$d/not_owner/link"); |
fc297a64142e
Tests: disable_symlinks directive tests added.
Andrey Belov <defan@nginx.com>
parents:
diff
changeset
|
182 symlink($extfile, "$d/not_owner/link2"); |
fc297a64142e
Tests: disable_symlinks directive tests added.
Andrey Belov <defan@nginx.com>
parents:
diff
changeset
|
183 |
fc297a64142e
Tests: disable_symlinks directive tests added.
Andrey Belov <defan@nginx.com>
parents:
diff
changeset
|
184 $t->write_file("try_on/try.html", "LOCAL TRY"); |
fc297a64142e
Tests: disable_symlinks directive tests added.
Andrey Belov <defan@nginx.com>
parents:
diff
changeset
|
185 symlink($extfile, "$d/try_on/try"); |
fc297a64142e
Tests: disable_symlinks directive tests added.
Andrey Belov <defan@nginx.com>
parents:
diff
changeset
|
186 |
fc297a64142e
Tests: disable_symlinks directive tests added.
Andrey Belov <defan@nginx.com>
parents:
diff
changeset
|
187 $t->write_file("try_not_owner/try.html", "LOCAL TRY"); |
fc297a64142e
Tests: disable_symlinks directive tests added.
Andrey Belov <defan@nginx.com>
parents:
diff
changeset
|
188 symlink($extfile, "$d/try_not_owner/try"); |
fc297a64142e
Tests: disable_symlinks directive tests added.
Andrey Belov <defan@nginx.com>
parents:
diff
changeset
|
189 symlink("try.html", "$d/try_not_owner/try.txt"); |
fc297a64142e
Tests: disable_symlinks directive tests added.
Andrey Belov <defan@nginx.com>
parents:
diff
changeset
|
190 |
fc297a64142e
Tests: disable_symlinks directive tests added.
Andrey Belov <defan@nginx.com>
parents:
diff
changeset
|
191 $t->write_file("if_on/empty.html", ""); |
fc297a64142e
Tests: disable_symlinks directive tests added.
Andrey Belov <defan@nginx.com>
parents:
diff
changeset
|
192 symlink("empty.html", "$d/if_on/link"); |
fc297a64142e
Tests: disable_symlinks directive tests added.
Andrey Belov <defan@nginx.com>
parents:
diff
changeset
|
193 symlink($extfile, "$d/if_on/link2"); |
fc297a64142e
Tests: disable_symlinks directive tests added.
Andrey Belov <defan@nginx.com>
parents:
diff
changeset
|
194 |
fc297a64142e
Tests: disable_symlinks directive tests added.
Andrey Belov <defan@nginx.com>
parents:
diff
changeset
|
195 $t->write_file("if_not_owner/empty.html", ""); |
fc297a64142e
Tests: disable_symlinks directive tests added.
Andrey Belov <defan@nginx.com>
parents:
diff
changeset
|
196 symlink("empty.html", "$d/if_not_owner/link"); |
fc297a64142e
Tests: disable_symlinks directive tests added.
Andrey Belov <defan@nginx.com>
parents:
diff
changeset
|
197 symlink($extfile, "$d/if_not_owner/link2"); |
fc297a64142e
Tests: disable_symlinks directive tests added.
Andrey Belov <defan@nginx.com>
parents:
diff
changeset
|
198 |
203
b6a4770e47ea
Tests: disable_symlinks tests for complex cases.
Maxim Dounin <mdounin@mdounin.ru>
parents:
202
diff
changeset
|
199 mkdir("$d/dir"); |
b6a4770e47ea
Tests: disable_symlinks tests for complex cases.
Maxim Dounin <mdounin@mdounin.ru>
parents:
202
diff
changeset
|
200 symlink("dir", "$d/dirlink"); |
b6a4770e47ea
Tests: disable_symlinks tests for complex cases.
Maxim Dounin <mdounin@mdounin.ru>
parents:
202
diff
changeset
|
201 |
201
fc297a64142e
Tests: disable_symlinks directive tests added.
Andrey Belov <defan@nginx.com>
parents:
diff
changeset
|
202 symlink($extfile, "$d/cached/link"); |
fc297a64142e
Tests: disable_symlinks directive tests added.
Andrey Belov <defan@nginx.com>
parents:
diff
changeset
|
203 |
fc297a64142e
Tests: disable_symlinks directive tests added.
Andrey Belov <defan@nginx.com>
parents:
diff
changeset
|
204 ############################################################################### |
fc297a64142e
Tests: disable_symlinks directive tests added.
Andrey Belov <defan@nginx.com>
parents:
diff
changeset
|
205 |
fc297a64142e
Tests: disable_symlinks directive tests added.
Andrey Belov <defan@nginx.com>
parents:
diff
changeset
|
206 like(http_get_host('s1', '/link'), qr!200 OK!, 'static (off, same uid)'); |
fc297a64142e
Tests: disable_symlinks directive tests added.
Andrey Belov <defan@nginx.com>
parents:
diff
changeset
|
207 like(http_get_host('s1', '/link2'), qr!200 OK!, 'static (off, other uid)'); |
fc297a64142e
Tests: disable_symlinks directive tests added.
Andrey Belov <defan@nginx.com>
parents:
diff
changeset
|
208 |
fc297a64142e
Tests: disable_symlinks directive tests added.
Andrey Belov <defan@nginx.com>
parents:
diff
changeset
|
209 like(http_get_host('s1', '/on/link'), qr!403 Forbidden!, |
fc297a64142e
Tests: disable_symlinks directive tests added.
Andrey Belov <defan@nginx.com>
parents:
diff
changeset
|
210 'static (on, same uid)'); |
fc297a64142e
Tests: disable_symlinks directive tests added.
Andrey Belov <defan@nginx.com>
parents:
diff
changeset
|
211 like(http_get_host('s1', '/on/link2'), qr!403 Forbidden!, |
fc297a64142e
Tests: disable_symlinks directive tests added.
Andrey Belov <defan@nginx.com>
parents:
diff
changeset
|
212 'static (on, other uid)'); |
fc297a64142e
Tests: disable_symlinks directive tests added.
Andrey Belov <defan@nginx.com>
parents:
diff
changeset
|
213 |
fc297a64142e
Tests: disable_symlinks directive tests added.
Andrey Belov <defan@nginx.com>
parents:
diff
changeset
|
214 like(http_get_host('s1', '/not_owner/link'), qr!200 OK!, |
fc297a64142e
Tests: disable_symlinks directive tests added.
Andrey Belov <defan@nginx.com>
parents:
diff
changeset
|
215 'static (if_not_owner, same uid)'); |
fc297a64142e
Tests: disable_symlinks directive tests added.
Andrey Belov <defan@nginx.com>
parents:
diff
changeset
|
216 like(http_get_host('s1', '/not_owner/link2'), qr!403 Forbidden!, |
fc297a64142e
Tests: disable_symlinks directive tests added.
Andrey Belov <defan@nginx.com>
parents:
diff
changeset
|
217 'static (if_not_owner, other uid)'); |
fc297a64142e
Tests: disable_symlinks directive tests added.
Andrey Belov <defan@nginx.com>
parents:
diff
changeset
|
218 |
fc297a64142e
Tests: disable_symlinks directive tests added.
Andrey Belov <defan@nginx.com>
parents:
diff
changeset
|
219 like(http_get_host('s1', '/try_on/try'), qr/LOCAL TRY/, |
fc297a64142e
Tests: disable_symlinks directive tests added.
Andrey Belov <defan@nginx.com>
parents:
diff
changeset
|
220 'try_files (on)'); |
fc297a64142e
Tests: disable_symlinks directive tests added.
Andrey Belov <defan@nginx.com>
parents:
diff
changeset
|
221 like(http_get_host('s1', '/try_not_owner/try'), qr/LOCAL TRY/, |
fc297a64142e
Tests: disable_symlinks directive tests added.
Andrey Belov <defan@nginx.com>
parents:
diff
changeset
|
222 'try_files (if_not_owner)'); |
fc297a64142e
Tests: disable_symlinks directive tests added.
Andrey Belov <defan@nginx.com>
parents:
diff
changeset
|
223 |
fc297a64142e
Tests: disable_symlinks directive tests added.
Andrey Belov <defan@nginx.com>
parents:
diff
changeset
|
224 like(http_get_host('s1', '/if_on/link'), qr!403 Forbidden!, |
fc297a64142e
Tests: disable_symlinks directive tests added.
Andrey Belov <defan@nginx.com>
parents:
diff
changeset
|
225 'if (on, same uid)'); |
fc297a64142e
Tests: disable_symlinks directive tests added.
Andrey Belov <defan@nginx.com>
parents:
diff
changeset
|
226 like(http_get_host('s1', '/if_on/link2'), qr!403 Forbidden!, |
fc297a64142e
Tests: disable_symlinks directive tests added.
Andrey Belov <defan@nginx.com>
parents:
diff
changeset
|
227 'if (on, other uid)'); |
fc297a64142e
Tests: disable_symlinks directive tests added.
Andrey Belov <defan@nginx.com>
parents:
diff
changeset
|
228 |
fc297a64142e
Tests: disable_symlinks directive tests added.
Andrey Belov <defan@nginx.com>
parents:
diff
changeset
|
229 like(http_get_host('s1', '/if_not_owner/link'), qr!204 No Content!, |
fc297a64142e
Tests: disable_symlinks directive tests added.
Andrey Belov <defan@nginx.com>
parents:
diff
changeset
|
230 'if (if_not_owner, same uid)'); |
fc297a64142e
Tests: disable_symlinks directive tests added.
Andrey Belov <defan@nginx.com>
parents:
diff
changeset
|
231 like(http_get_host('s1', '/if_not_owner/link2'), qr!403 Forbidden!, |
fc297a64142e
Tests: disable_symlinks directive tests added.
Andrey Belov <defan@nginx.com>
parents:
diff
changeset
|
232 'if (if_not_owner, other uid)'); |
fc297a64142e
Tests: disable_symlinks directive tests added.
Andrey Belov <defan@nginx.com>
parents:
diff
changeset
|
233 |
fc297a64142e
Tests: disable_symlinks directive tests added.
Andrey Belov <defan@nginx.com>
parents:
diff
changeset
|
234 like(http_get_host('s2', '/cached-off/link'), qr!200 OK!, |
202
067b6cb4793d
Tests: cleanup disable_symlinks tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
201
diff
changeset
|
235 'open_file_cache (pass 1)'); |
201
fc297a64142e
Tests: disable_symlinks directive tests added.
Andrey Belov <defan@nginx.com>
parents:
diff
changeset
|
236 like(http_get_host('s2', '/cached-on/link'), qr!403 Forbidden!, |
202
067b6cb4793d
Tests: cleanup disable_symlinks tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
201
diff
changeset
|
237 'open_file_cache (pass 2)'); |
201
fc297a64142e
Tests: disable_symlinks directive tests added.
Andrey Belov <defan@nginx.com>
parents:
diff
changeset
|
238 like(http_get_host('s2', '/cached-off/link'), qr!200 OK!, |
202
067b6cb4793d
Tests: cleanup disable_symlinks tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
201
diff
changeset
|
239 'open_file_cache (pass 3)'); |
201
fc297a64142e
Tests: disable_symlinks directive tests added.
Andrey Belov <defan@nginx.com>
parents:
diff
changeset
|
240 like(http_get_host('s2', '/cached-if-not-owner/link'), qr!403 Forbidden!, |
202
067b6cb4793d
Tests: cleanup disable_symlinks tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
201
diff
changeset
|
241 'open_file_cache (pass 4)'); |
201
fc297a64142e
Tests: disable_symlinks directive tests added.
Andrey Belov <defan@nginx.com>
parents:
diff
changeset
|
242 like(http_get_host('s2', '/cached-off/link'), qr!200 OK!, |
202
067b6cb4793d
Tests: cleanup disable_symlinks tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
201
diff
changeset
|
243 'open_file_cache (pass 5)'); |
201
fc297a64142e
Tests: disable_symlinks directive tests added.
Andrey Belov <defan@nginx.com>
parents:
diff
changeset
|
244 |
203
b6a4770e47ea
Tests: disable_symlinks tests for complex cases.
Maxim Dounin <mdounin@mdounin.ru>
parents:
202
diff
changeset
|
245 like(http_get('/complex/1/empty.html'), qr!200 OK!, 'complex root 1'); |
b6a4770e47ea
Tests: disable_symlinks tests for complex cases.
Maxim Dounin <mdounin@mdounin.ru>
parents:
202
diff
changeset
|
246 like(http_get('/complex/2/empty.html'), qr!200 OK!, 'complex root 2'); |
b6a4770e47ea
Tests: disable_symlinks tests for complex cases.
Maxim Dounin <mdounin@mdounin.ru>
parents:
202
diff
changeset
|
247 like(http_get('/complex/3/empty.html'), qr!200 OK!, 'complex root 3'); |
b6a4770e47ea
Tests: disable_symlinks tests for complex cases.
Maxim Dounin <mdounin@mdounin.ru>
parents:
202
diff
changeset
|
248 |
205
606a4df68952
Tests: workaround for freebsd 8 in disable_symlinks tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
204
diff
changeset
|
249 # workaround for freebsd 8: we use O_EXEC instead of O_SEARCH (since there |
606a4df68952
Tests: workaround for freebsd 8 in disable_symlinks tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
204
diff
changeset
|
250 # is no O_SEARCH), and O_DIRECTORY does nothing. setting the 'x' bit |
606a4df68952
Tests: workaround for freebsd 8 in disable_symlinks tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
204
diff
changeset
|
251 # tests to pass as openat() will correctly fail with ENOTDIR |
606a4df68952
Tests: workaround for freebsd 8 in disable_symlinks tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
204
diff
changeset
|
252 |
606a4df68952
Tests: workaround for freebsd 8 in disable_symlinks tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
204
diff
changeset
|
253 chmod(0700, "$d/link"); |
606a4df68952
Tests: workaround for freebsd 8 in disable_symlinks tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
204
diff
changeset
|
254 |
204
d838248b643a
Tests: more disable_symlinks tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
203
diff
changeset
|
255 like(http_get('/link/tail'), qr!403 !, 'file with trailing /, on'); |
d838248b643a
Tests: more disable_symlinks tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
203
diff
changeset
|
256 like(http_get('/link/tailowner'), qr!404 !, 'file with trailing /, owner'); |
d838248b643a
Tests: more disable_symlinks tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
203
diff
changeset
|
257 like(http_get('/link/tailoff'), qr!404 !, 'file with trailing /, off'); |
d838248b643a
Tests: more disable_symlinks tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
203
diff
changeset
|
258 |
203
b6a4770e47ea
Tests: disable_symlinks tests for complex cases.
Maxim Dounin <mdounin@mdounin.ru>
parents:
202
diff
changeset
|
259 like(http_get('/dirlink'), qr!404 !, 'directory without /'); |
b6a4770e47ea
Tests: disable_symlinks tests for complex cases.
Maxim Dounin <mdounin@mdounin.ru>
parents:
202
diff
changeset
|
260 like(http_get('/dirlink/'), qr!404 !, 'directory with trailing /'); |
b6a4770e47ea
Tests: disable_symlinks tests for complex cases.
Maxim Dounin <mdounin@mdounin.ru>
parents:
202
diff
changeset
|
261 |
201
fc297a64142e
Tests: disable_symlinks directive tests added.
Andrey Belov <defan@nginx.com>
parents:
diff
changeset
|
262 ############################################################################### |
fc297a64142e
Tests: disable_symlinks directive tests added.
Andrey Belov <defan@nginx.com>
parents:
diff
changeset
|
263 |
fc297a64142e
Tests: disable_symlinks directive tests added.
Andrey Belov <defan@nginx.com>
parents:
diff
changeset
|
264 sub http_get_host { |
fc297a64142e
Tests: disable_symlinks directive tests added.
Andrey Belov <defan@nginx.com>
parents:
diff
changeset
|
265 my ($host, $url) = @_; |
fc297a64142e
Tests: disable_symlinks directive tests added.
Andrey Belov <defan@nginx.com>
parents:
diff
changeset
|
266 return http(<<EOF); |
fc297a64142e
Tests: disable_symlinks directive tests added.
Andrey Belov <defan@nginx.com>
parents:
diff
changeset
|
267 GET $url HTTP/1.0 |
fc297a64142e
Tests: disable_symlinks directive tests added.
Andrey Belov <defan@nginx.com>
parents:
diff
changeset
|
268 Host: $host |
fc297a64142e
Tests: disable_symlinks directive tests added.
Andrey Belov <defan@nginx.com>
parents:
diff
changeset
|
269 |
fc297a64142e
Tests: disable_symlinks directive tests added.
Andrey Belov <defan@nginx.com>
parents:
diff
changeset
|
270 EOF |
fc297a64142e
Tests: disable_symlinks directive tests added.
Andrey Belov <defan@nginx.com>
parents:
diff
changeset
|
271 } |
fc297a64142e
Tests: disable_symlinks directive tests added.
Andrey Belov <defan@nginx.com>
parents:
diff
changeset
|
272 |
fc297a64142e
Tests: disable_symlinks directive tests added.
Andrey Belov <defan@nginx.com>
parents:
diff
changeset
|
273 ############################################################################### |