@@ -2142,3 +2142,177 @@ qr/elapsed in ssl_certificate_by_lua\*: 0\.(?:09|1[01])\d+,/,
2142
2142
[error]
2143
2143
[alert]
2144
2144
[emerg]
2145
+
2146
+
2147
+
2148
+ === TEST 25: cosocket (UDP)
2149
+ --- http_config
2150
+ server {
2151
+ listen unix: $ TEST_NGINX_HTML_DIR / nginx. sock ssl;
2152
+ server_name test. com;
2153
+ ssl_certificate .. / .. / cert/ test. crt;
2154
+ ssl_certificate_key .. / .. / cert/ test. key ;
2155
+ server_tokens off;
2156
+
2157
+ ssl_certificate_by_lua_block {
2158
+ local sock = ngx. socket. udp()
2159
+
2160
+ sock: settimeout(1000 )
2161
+
2162
+ local ok , err = sock: setpeername(" 127.0.0.1" , $ TEST_NGINX_MEMCACHED_PORT )
2163
+ if not ok then
2164
+ ngx. log (ngx. ERR, " failed to connect to memc: " , err)
2165
+ return
2166
+ end
2167
+
2168
+ local req = " \0\1\0\0\0\1\0\0flush_all\r\n "
2169
+ local ok , err = sock: send(req)
2170
+ if not ok then
2171
+ ngx. log (ngx. ERR, " failed to send flush_all to memc: " , err)
2172
+ return
2173
+ end
2174
+
2175
+ local res, err = sock: receive()
2176
+ if not res then
2177
+ ngx. log (ngx. ERR, " failed to receive memc reply: " , err)
2178
+ return
2179
+ end
2180
+
2181
+ ngx. log (ngx. INFO, " received memc reply of " , # res, " bytes")
2182
+ }
2183
+ }
2184
+ --- config
2185
+ server_tokens off;
2186
+ lua_ssl_trusted_certificate .. /.. / cert/ test. crt;
2187
+ lua_ssl_verify_depth 3 ;
2188
+
2189
+ location / t {
2190
+ content_by_lua_block {
2191
+ do
2192
+ local sock = ngx. socket. tcp()
2193
+
2194
+ sock: settimeout(2000 )
2195
+
2196
+ local ok , err = sock: connect(" unix:$ TEST_NGINX_HTML_DIR /nginx.sock" )
2197
+ if not ok then
2198
+ ngx. say (" failed to connect: " , err)
2199
+ return
2200
+ end
2201
+
2202
+ ngx. say (" connected: " , ok )
2203
+
2204
+ local sess, err = sock: sslhandshake(nil, " test.com" , true)
2205
+ if not sess then
2206
+ ngx. say (" failed to do SSL handshake: " , err)
2207
+ return
2208
+ end
2209
+
2210
+ ngx. say (" ssl handshake: " , type(sess))
2211
+ end -- do
2212
+ -- collectgarbage()
2213
+ }
2214
+ }
2215
+ -- - request
2216
+ GET / t
2217
+ -- - response_body
2218
+ connected: 1
2219
+ ssl handshake: userdata
2220
+ -- - no_error_log
2221
+ [error]
2222
+ [alert]
2223
+ [emerg]
2224
+ -- - grep_error_log eval: qr/ received memc reply of \d+ bytes /
2225
+ -- - grep_error_log_out eval
2226
+ [
2227
+ ' received memc reply of 12 bytes
2228
+ ' ,
2229
+ ' received memc reply of 12 bytes
2230
+ ' ,
2231
+ ' received memc reply of 12 bytes
2232
+ ' ,
2233
+ ' received memc reply of 12 bytes
2234
+ ' ,
2235
+ ]
2236
+
2237
+
2238
+
2239
+ === TEST 26 : uthread (kill )
2240
+ -- - http_config
2241
+ server {
2242
+ listen unix: $ TEST_NGINX_HTML_DIR / nginx. sock ssl;
2243
+ server_name test. com;
2244
+ ssl_certificate .. / .. / cert/ test. crt;
2245
+ ssl_certificate_key .. / .. / cert/ test. key ;
2246
+ server_tokens off;
2247
+
2248
+ ssl_certificate_by_lua_block {
2249
+ local function f()
2250
+ ngx. log (ngx. INFO, " uthread: hello from f()" )
2251
+ ngx. sleep (1 )
2252
+ end
2253
+
2254
+ local t, err = ngx. thread. spawn(f)
2255
+ if not t then
2256
+ ngx. log (ngx. ERR, " failed to spawn thread: " , err)
2257
+ return ngx. exit(ngx. ERROR)
2258
+ end
2259
+
2260
+ local ok , res = ngx. thread. kill (t)
2261
+ if not ok then
2262
+ ngx. log (ngx. ERR, " failed to kill thread: " , res)
2263
+ return
2264
+ end
2265
+
2266
+ ngx. log (ngx. INFO, " uthread: killed" )
2267
+
2268
+ local ok , err = ngx. thread. kill (t)
2269
+ if not ok then
2270
+ ngx. log (ngx. INFO, " uthread: failed to kill: " , err)
2271
+ end
2272
+ }
2273
+ }
2274
+ -- - config
2275
+ server_tokens off;
2276
+ lua_ssl_trusted_certificate .. / .. / cert/ test. crt;
2277
+ lua_ssl_verify_depth 3 ;
2278
+
2279
+ location / t {
2280
+ content_by_lua_block {
2281
+ do
2282
+ local sock = ngx. socket. tcp()
2283
+
2284
+ sock: settimeout(2000 )
2285
+
2286
+ local ok , err = sock: connect(" unix:$ TEST_NGINX_HTML_DIR /nginx.sock" )
2287
+ if not ok then
2288
+ ngx. say (" failed to connect: " , err)
2289
+ return
2290
+ end
2291
+
2292
+ ngx. say (" connected: " , ok )
2293
+
2294
+ local sess, err = sock: sslhandshake(nil, " test.com" , true)
2295
+ if not sess then
2296
+ ngx. say (" failed to do SSL handshake: " , err)
2297
+ return
2298
+ end
2299
+
2300
+ ngx. say (" ssl handshake: " , type(sess))
2301
+ end -- do
2302
+ -- collectgarbage()
2303
+ }
2304
+ }
2305
+ -- - request
2306
+ GET / t
2307
+ -- - response_body
2308
+ connected: 1
2309
+ ssl handshake: userdata
2310
+ -- - no_error_log
2311
+ [error]
2312
+ [alert]
2313
+ [emerg]
2314
+ -- - grep_error_log eval: qr/ uthread: [^. ,]+/
2315
+ -- - grep_error_log_out
2316
+ uthread: hello from f()
2317
+ uthread: killed
2318
+ uthread: failed to kill : already waited or killed
0 commit comments