Mercurial > hg > nginx-quic
annotate auto/module @ 8441:81d491f0dc8c quic
QUIC: unroll and inline ngx_quic_varint_len()/ngx_quic_build_int().
According to profiling, those two are among most frequently called,
so inlining is generally useful, and unrolling should help with it.
Further, this fixes undefined behaviour seen with invalid values.
Inspired by Yu Liu.
author | Sergey Kandaurov <pluknet@nginx.com> |
---|---|
date | Sat, 22 May 2021 18:40:45 +0300 |
parents | 4b1299b1856a |
children |
rev | line source |
---|---|
6382
392959224560
Dynamic modules: auto/module script.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
1 |
392959224560
Dynamic modules: auto/module script.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
2 # Copyright (C) Ruslan Ermilov |
392959224560
Dynamic modules: auto/module script.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
3 # Copyright (C) Nginx, Inc. |
392959224560
Dynamic modules: auto/module script.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
4 |
392959224560
Dynamic modules: auto/module script.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
5 |
392959224560
Dynamic modules: auto/module script.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
6 case $ngx_module_type in |
392959224560
Dynamic modules: auto/module script.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
7 HTTP_*) ngx_var=HTTP ;; |
392959224560
Dynamic modules: auto/module script.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
8 *) ngx_var=$ngx_module_type ;; |
392959224560
Dynamic modules: auto/module script.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
9 esac |
392959224560
Dynamic modules: auto/module script.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
10 |
392959224560
Dynamic modules: auto/module script.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
11 |
6383 | 12 if [ "$ngx_module_link" = DYNAMIC ]; then |
13 | |
14 for ngx_module in $ngx_module_name; do | |
15 # extract the first name | |
16 break | |
17 done | |
18 | |
19 DYNAMIC_MODULES="$DYNAMIC_MODULES $ngx_module" | |
20 | |
21 eval ${ngx_module}_MODULES=\"$ngx_module_name\" | |
22 | |
23 if [ -z "$ngx_module_order" -a \ | |
24 \( "$ngx_module_type" = "HTTP_FILTER" \ | |
25 -o "$ngx_module_type" = "HTTP_AUX_FILTER" \) ] | |
26 then | |
27 eval ${ngx_module}_ORDER=\"$ngx_module_name \ | |
28 ngx_http_copy_filter_module\" | |
29 else | |
30 eval ${ngx_module}_ORDER=\"$ngx_module_order\" | |
31 fi | |
32 | |
8225
4b1299b1856a
Configure: shared sources for addon modules.
Maxim Dounin <mdounin@mdounin.ru>
parents:
6804
diff
changeset
|
33 srcs= |
4b1299b1856a
Configure: shared sources for addon modules.
Maxim Dounin <mdounin@mdounin.ru>
parents:
6804
diff
changeset
|
34 shrd= |
4b1299b1856a
Configure: shared sources for addon modules.
Maxim Dounin <mdounin@mdounin.ru>
parents:
6804
diff
changeset
|
35 for src in $ngx_module_srcs |
4b1299b1856a
Configure: shared sources for addon modules.
Maxim Dounin <mdounin@mdounin.ru>
parents:
6804
diff
changeset
|
36 do |
4b1299b1856a
Configure: shared sources for addon modules.
Maxim Dounin <mdounin@mdounin.ru>
parents:
6804
diff
changeset
|
37 found=no |
4b1299b1856a
Configure: shared sources for addon modules.
Maxim Dounin <mdounin@mdounin.ru>
parents:
6804
diff
changeset
|
38 for old in $DYNAMIC_MODULES_SRCS |
4b1299b1856a
Configure: shared sources for addon modules.
Maxim Dounin <mdounin@mdounin.ru>
parents:
6804
diff
changeset
|
39 do |
4b1299b1856a
Configure: shared sources for addon modules.
Maxim Dounin <mdounin@mdounin.ru>
parents:
6804
diff
changeset
|
40 if [ $src = $old ]; then |
4b1299b1856a
Configure: shared sources for addon modules.
Maxim Dounin <mdounin@mdounin.ru>
parents:
6804
diff
changeset
|
41 found=yes |
4b1299b1856a
Configure: shared sources for addon modules.
Maxim Dounin <mdounin@mdounin.ru>
parents:
6804
diff
changeset
|
42 break |
4b1299b1856a
Configure: shared sources for addon modules.
Maxim Dounin <mdounin@mdounin.ru>
parents:
6804
diff
changeset
|
43 fi |
4b1299b1856a
Configure: shared sources for addon modules.
Maxim Dounin <mdounin@mdounin.ru>
parents:
6804
diff
changeset
|
44 done |
4b1299b1856a
Configure: shared sources for addon modules.
Maxim Dounin <mdounin@mdounin.ru>
parents:
6804
diff
changeset
|
45 |
4b1299b1856a
Configure: shared sources for addon modules.
Maxim Dounin <mdounin@mdounin.ru>
parents:
6804
diff
changeset
|
46 if [ $found = no ]; then |
4b1299b1856a
Configure: shared sources for addon modules.
Maxim Dounin <mdounin@mdounin.ru>
parents:
6804
diff
changeset
|
47 srcs="$srcs $src" |
4b1299b1856a
Configure: shared sources for addon modules.
Maxim Dounin <mdounin@mdounin.ru>
parents:
6804
diff
changeset
|
48 else |
4b1299b1856a
Configure: shared sources for addon modules.
Maxim Dounin <mdounin@mdounin.ru>
parents:
6804
diff
changeset
|
49 shrd="$shrd $src" |
4b1299b1856a
Configure: shared sources for addon modules.
Maxim Dounin <mdounin@mdounin.ru>
parents:
6804
diff
changeset
|
50 fi |
4b1299b1856a
Configure: shared sources for addon modules.
Maxim Dounin <mdounin@mdounin.ru>
parents:
6804
diff
changeset
|
51 done |
4b1299b1856a
Configure: shared sources for addon modules.
Maxim Dounin <mdounin@mdounin.ru>
parents:
6804
diff
changeset
|
52 eval ${ngx_module}_SRCS=\"$srcs\" |
4b1299b1856a
Configure: shared sources for addon modules.
Maxim Dounin <mdounin@mdounin.ru>
parents:
6804
diff
changeset
|
53 eval ${ngx_module}_SHRD=\"$shrd\" |
4b1299b1856a
Configure: shared sources for addon modules.
Maxim Dounin <mdounin@mdounin.ru>
parents:
6804
diff
changeset
|
54 |
4b1299b1856a
Configure: shared sources for addon modules.
Maxim Dounin <mdounin@mdounin.ru>
parents:
6804
diff
changeset
|
55 DYNAMIC_MODULES_SRCS="$DYNAMIC_MODULES_SRCS $srcs" |
4b1299b1856a
Configure: shared sources for addon modules.
Maxim Dounin <mdounin@mdounin.ru>
parents:
6804
diff
changeset
|
56 |
6383 | 57 if test -n "$ngx_module_incs"; then |
58 CORE_INCS="$CORE_INCS $ngx_module_incs" | |
59 fi | |
60 | |
6804
2c7a2d75938a
Configure: honor dependencies of dynamic modules.
Maxim Dounin <mdounin@mdounin.ru>
parents:
6603
diff
changeset
|
61 if test -n "$ngx_module_deps"; then |
2c7a2d75938a
Configure: honor dependencies of dynamic modules.
Maxim Dounin <mdounin@mdounin.ru>
parents:
6603
diff
changeset
|
62 NGX_ADDON_DEPS="$NGX_ADDON_DEPS $ngx_module_deps" |
2c7a2d75938a
Configure: honor dependencies of dynamic modules.
Maxim Dounin <mdounin@mdounin.ru>
parents:
6603
diff
changeset
|
63 fi |
2c7a2d75938a
Configure: honor dependencies of dynamic modules.
Maxim Dounin <mdounin@mdounin.ru>
parents:
6603
diff
changeset
|
64 |
6383 | 65 libs= |
66 for lib in $ngx_module_libs | |
67 do | |
68 case $lib in | |
69 | |
6419 | 70 LIBXSLT | LIBGD | GEOIP | PERL) |
6383 | 71 libs="$libs \$NGX_LIB_$lib" |
72 | |
73 if eval [ "\$USE_${lib}" = NO ] ; then | |
74 eval USE_${lib}=DYNAMIC | |
75 fi | |
76 ;; | |
77 | |
6603
9eefb38f0005
Internal md5 and sha1 implementations are now always used.
Maxim Dounin <mdounin@mdounin.ru>
parents:
6419
diff
changeset
|
78 PCRE | OPENSSL | ZLIB) |
6383 | 79 eval USE_${lib}=YES |
80 ;; | |
81 | |
6603
9eefb38f0005
Internal md5 and sha1 implementations are now always used.
Maxim Dounin <mdounin@mdounin.ru>
parents:
6419
diff
changeset
|
82 MD5 | SHA1) |
9eefb38f0005
Internal md5 and sha1 implementations are now always used.
Maxim Dounin <mdounin@mdounin.ru>
parents:
6419
diff
changeset
|
83 # obsolete |
9eefb38f0005
Internal md5 and sha1 implementations are now always used.
Maxim Dounin <mdounin@mdounin.ru>
parents:
6419
diff
changeset
|
84 ;; |
9eefb38f0005
Internal md5 and sha1 implementations are now always used.
Maxim Dounin <mdounin@mdounin.ru>
parents:
6419
diff
changeset
|
85 |
6383 | 86 *) |
87 libs="$libs $lib" | |
88 ;; | |
89 | |
90 esac | |
91 done | |
92 eval ${ngx_module}_LIBS=\'$libs\' | |
93 | |
94 elif [ "$ngx_module_link" = YES ]; then | |
6382
392959224560
Dynamic modules: auto/module script.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
95 |
392959224560
Dynamic modules: auto/module script.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
96 eval ${ngx_module_type}_MODULES=\"\$${ngx_module_type}_MODULES \ |
392959224560
Dynamic modules: auto/module script.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
97 $ngx_module_name\" |
392959224560
Dynamic modules: auto/module script.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
98 |
392959224560
Dynamic modules: auto/module script.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
99 eval ${ngx_var}_SRCS=\"\$${ngx_var}_SRCS $ngx_module_srcs\" |
392959224560
Dynamic modules: auto/module script.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
100 |
392959224560
Dynamic modules: auto/module script.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
101 if test -n "$ngx_module_incs"; then |
392959224560
Dynamic modules: auto/module script.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
102 eval ${ngx_var}_INCS=\"\$${ngx_var}_INCS $ngx_module_incs\" |
392959224560
Dynamic modules: auto/module script.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
103 fi |
392959224560
Dynamic modules: auto/module script.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
104 |
392959224560
Dynamic modules: auto/module script.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
105 if test -n "$ngx_module_deps"; then |
392959224560
Dynamic modules: auto/module script.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
106 eval ${ngx_var}_DEPS=\"\$${ngx_var}_DEPS $ngx_module_deps\" |
392959224560
Dynamic modules: auto/module script.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
107 fi |
392959224560
Dynamic modules: auto/module script.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
108 |
392959224560
Dynamic modules: auto/module script.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
109 for lib in $ngx_module_libs |
392959224560
Dynamic modules: auto/module script.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
110 do |
392959224560
Dynamic modules: auto/module script.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
111 case $lib in |
392959224560
Dynamic modules: auto/module script.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
112 |
6603
9eefb38f0005
Internal md5 and sha1 implementations are now always used.
Maxim Dounin <mdounin@mdounin.ru>
parents:
6419
diff
changeset
|
113 PCRE | OPENSSL | ZLIB | LIBXSLT | LIBGD | PERL | GEOIP) |
6382
392959224560
Dynamic modules: auto/module script.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
114 eval USE_${lib}=YES |
392959224560
Dynamic modules: auto/module script.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
115 ;; |
392959224560
Dynamic modules: auto/module script.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
116 |
6603
9eefb38f0005
Internal md5 and sha1 implementations are now always used.
Maxim Dounin <mdounin@mdounin.ru>
parents:
6419
diff
changeset
|
117 MD5 | SHA1) |
9eefb38f0005
Internal md5 and sha1 implementations are now always used.
Maxim Dounin <mdounin@mdounin.ru>
parents:
6419
diff
changeset
|
118 # obsolete |
9eefb38f0005
Internal md5 and sha1 implementations are now always used.
Maxim Dounin <mdounin@mdounin.ru>
parents:
6419
diff
changeset
|
119 ;; |
9eefb38f0005
Internal md5 and sha1 implementations are now always used.
Maxim Dounin <mdounin@mdounin.ru>
parents:
6419
diff
changeset
|
120 |
6382
392959224560
Dynamic modules: auto/module script.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
121 *) |
392959224560
Dynamic modules: auto/module script.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
122 CORE_LIBS="$CORE_LIBS $lib" |
392959224560
Dynamic modules: auto/module script.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
123 ;; |
392959224560
Dynamic modules: auto/module script.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
124 |
392959224560
Dynamic modules: auto/module script.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
125 esac |
392959224560
Dynamic modules: auto/module script.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
126 done |
392959224560
Dynamic modules: auto/module script.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
127 |
392959224560
Dynamic modules: auto/module script.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
128 elif [ "$ngx_module_link" = ADDON ]; then |
392959224560
Dynamic modules: auto/module script.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
129 |
392959224560
Dynamic modules: auto/module script.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
130 eval ${ngx_module_type}_MODULES=\"\$${ngx_module_type}_MODULES \ |
392959224560
Dynamic modules: auto/module script.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
131 $ngx_module_name\" |
392959224560
Dynamic modules: auto/module script.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
132 |
8225
4b1299b1856a
Configure: shared sources for addon modules.
Maxim Dounin <mdounin@mdounin.ru>
parents:
6804
diff
changeset
|
133 srcs= |
4b1299b1856a
Configure: shared sources for addon modules.
Maxim Dounin <mdounin@mdounin.ru>
parents:
6804
diff
changeset
|
134 for src in $ngx_module_srcs |
4b1299b1856a
Configure: shared sources for addon modules.
Maxim Dounin <mdounin@mdounin.ru>
parents:
6804
diff
changeset
|
135 do |
4b1299b1856a
Configure: shared sources for addon modules.
Maxim Dounin <mdounin@mdounin.ru>
parents:
6804
diff
changeset
|
136 found=no |
4b1299b1856a
Configure: shared sources for addon modules.
Maxim Dounin <mdounin@mdounin.ru>
parents:
6804
diff
changeset
|
137 for old in $NGX_ADDON_SRCS |
4b1299b1856a
Configure: shared sources for addon modules.
Maxim Dounin <mdounin@mdounin.ru>
parents:
6804
diff
changeset
|
138 do |
4b1299b1856a
Configure: shared sources for addon modules.
Maxim Dounin <mdounin@mdounin.ru>
parents:
6804
diff
changeset
|
139 if [ $src = $old ]; then |
4b1299b1856a
Configure: shared sources for addon modules.
Maxim Dounin <mdounin@mdounin.ru>
parents:
6804
diff
changeset
|
140 found=yes |
4b1299b1856a
Configure: shared sources for addon modules.
Maxim Dounin <mdounin@mdounin.ru>
parents:
6804
diff
changeset
|
141 break |
4b1299b1856a
Configure: shared sources for addon modules.
Maxim Dounin <mdounin@mdounin.ru>
parents:
6804
diff
changeset
|
142 fi |
4b1299b1856a
Configure: shared sources for addon modules.
Maxim Dounin <mdounin@mdounin.ru>
parents:
6804
diff
changeset
|
143 done |
4b1299b1856a
Configure: shared sources for addon modules.
Maxim Dounin <mdounin@mdounin.ru>
parents:
6804
diff
changeset
|
144 |
4b1299b1856a
Configure: shared sources for addon modules.
Maxim Dounin <mdounin@mdounin.ru>
parents:
6804
diff
changeset
|
145 if [ $found = no ]; then |
4b1299b1856a
Configure: shared sources for addon modules.
Maxim Dounin <mdounin@mdounin.ru>
parents:
6804
diff
changeset
|
146 srcs="$srcs $src" |
4b1299b1856a
Configure: shared sources for addon modules.
Maxim Dounin <mdounin@mdounin.ru>
parents:
6804
diff
changeset
|
147 fi |
4b1299b1856a
Configure: shared sources for addon modules.
Maxim Dounin <mdounin@mdounin.ru>
parents:
6804
diff
changeset
|
148 done |
4b1299b1856a
Configure: shared sources for addon modules.
Maxim Dounin <mdounin@mdounin.ru>
parents:
6804
diff
changeset
|
149 |
4b1299b1856a
Configure: shared sources for addon modules.
Maxim Dounin <mdounin@mdounin.ru>
parents:
6804
diff
changeset
|
150 NGX_ADDON_SRCS="$NGX_ADDON_SRCS $srcs" |
6382
392959224560
Dynamic modules: auto/module script.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
151 |
392959224560
Dynamic modules: auto/module script.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
152 if test -n "$ngx_module_incs"; then |
392959224560
Dynamic modules: auto/module script.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
153 eval ${ngx_var}_INCS=\"\$${ngx_var}_INCS $ngx_module_incs\" |
392959224560
Dynamic modules: auto/module script.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
154 fi |
392959224560
Dynamic modules: auto/module script.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
155 |
392959224560
Dynamic modules: auto/module script.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
156 if test -n "$ngx_module_deps"; then |
392959224560
Dynamic modules: auto/module script.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
157 NGX_ADDON_DEPS="$NGX_ADDON_DEPS $ngx_module_deps" |
392959224560
Dynamic modules: auto/module script.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
158 fi |
392959224560
Dynamic modules: auto/module script.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
159 |
392959224560
Dynamic modules: auto/module script.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
160 for lib in $ngx_module_libs |
392959224560
Dynamic modules: auto/module script.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
161 do |
392959224560
Dynamic modules: auto/module script.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
162 case $lib in |
392959224560
Dynamic modules: auto/module script.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
163 |
6603
9eefb38f0005
Internal md5 and sha1 implementations are now always used.
Maxim Dounin <mdounin@mdounin.ru>
parents:
6419
diff
changeset
|
164 PCRE | OPENSSL | ZLIB | LIBXSLT | LIBGD | PERL | GEOIP) |
6382
392959224560
Dynamic modules: auto/module script.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
165 eval USE_${lib}=YES |
392959224560
Dynamic modules: auto/module script.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
166 ;; |
392959224560
Dynamic modules: auto/module script.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
167 |
6603
9eefb38f0005
Internal md5 and sha1 implementations are now always used.
Maxim Dounin <mdounin@mdounin.ru>
parents:
6419
diff
changeset
|
168 MD5 | SHA1) |
9eefb38f0005
Internal md5 and sha1 implementations are now always used.
Maxim Dounin <mdounin@mdounin.ru>
parents:
6419
diff
changeset
|
169 # obsolete |
9eefb38f0005
Internal md5 and sha1 implementations are now always used.
Maxim Dounin <mdounin@mdounin.ru>
parents:
6419
diff
changeset
|
170 ;; |
9eefb38f0005
Internal md5 and sha1 implementations are now always used.
Maxim Dounin <mdounin@mdounin.ru>
parents:
6419
diff
changeset
|
171 |
6382
392959224560
Dynamic modules: auto/module script.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
172 *) |
392959224560
Dynamic modules: auto/module script.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
173 CORE_LIBS="$CORE_LIBS $lib" |
392959224560
Dynamic modules: auto/module script.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
174 ;; |
392959224560
Dynamic modules: auto/module script.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
175 |
392959224560
Dynamic modules: auto/module script.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
176 esac |
392959224560
Dynamic modules: auto/module script.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
177 done |
392959224560
Dynamic modules: auto/module script.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
178 fi |