gitextract_6e6awdd3/ ├── .gitattributes ├── .github/ │ ├── ISSUE_TEMPLATE.md │ ├── PULL_REQUEST_TEMPLATE.md │ └── workflows/ │ ├── build_and_test.yml │ └── semantic-pull-request.yml ├── .gitignore ├── .mergify.yml ├── README.markdown ├── config ├── doc/ │ └── HttpLuaModule.wiki ├── dtrace/ │ └── ngx_lua_provider.d ├── misc/ │ └── recv-until-pm/ │ ├── lib/ │ │ └── RecvUntil.pm │ └── t/ │ └── sanity.t ├── src/ │ ├── api/ │ │ └── ngx_http_lua_api.h │ ├── ddebug.h │ ├── ngx_http_lua_accessby.c │ ├── ngx_http_lua_accessby.h │ ├── ngx_http_lua_api.c │ ├── ngx_http_lua_args.c │ ├── ngx_http_lua_args.h │ ├── ngx_http_lua_balancer.c │ ├── ngx_http_lua_balancer.h │ ├── ngx_http_lua_bodyfilterby.c │ ├── ngx_http_lua_bodyfilterby.h │ ├── ngx_http_lua_cache.c │ ├── ngx_http_lua_cache.h │ ├── ngx_http_lua_capturefilter.c │ ├── ngx_http_lua_capturefilter.h │ ├── ngx_http_lua_clfactory.c │ ├── ngx_http_lua_clfactory.h │ ├── ngx_http_lua_common.h │ ├── ngx_http_lua_config.c │ ├── ngx_http_lua_config.h │ ├── ngx_http_lua_consts.c │ ├── ngx_http_lua_consts.h │ ├── ngx_http_lua_contentby.c │ ├── ngx_http_lua_contentby.h │ ├── ngx_http_lua_control.c │ ├── ngx_http_lua_control.h │ ├── ngx_http_lua_coroutine.c │ ├── ngx_http_lua_coroutine.h │ ├── ngx_http_lua_ctx.c │ ├── ngx_http_lua_ctx.h │ ├── ngx_http_lua_directive.c │ ├── ngx_http_lua_directive.h │ ├── ngx_http_lua_exception.c │ ├── ngx_http_lua_exception.h │ ├── ngx_http_lua_exitworkerby.c │ ├── ngx_http_lua_exitworkerby.h │ ├── ngx_http_lua_headerfilterby.c │ ├── ngx_http_lua_headerfilterby.h │ ├── ngx_http_lua_headers.c │ ├── ngx_http_lua_headers.h │ ├── ngx_http_lua_headers_in.c │ ├── ngx_http_lua_headers_in.h │ ├── ngx_http_lua_headers_out.c │ ├── ngx_http_lua_headers_out.h │ ├── ngx_http_lua_initby.c │ ├── ngx_http_lua_initby.h │ ├── ngx_http_lua_initworkerby.c │ ├── ngx_http_lua_initworkerby.h │ ├── ngx_http_lua_input_filters.c │ ├── ngx_http_lua_input_filters.h │ ├── ngx_http_lua_lex.c │ ├── ngx_http_lua_lex.h │ ├── ngx_http_lua_log.c │ ├── ngx_http_lua_log.h │ ├── ngx_http_lua_log_ringbuf.c │ ├── ngx_http_lua_log_ringbuf.h │ ├── ngx_http_lua_logby.c │ ├── ngx_http_lua_logby.h │ ├── ngx_http_lua_misc.c │ ├── ngx_http_lua_misc.h │ ├── ngx_http_lua_module.c │ ├── ngx_http_lua_ndk.c │ ├── ngx_http_lua_ndk.h │ ├── ngx_http_lua_output.c │ ├── ngx_http_lua_output.h │ ├── ngx_http_lua_pcrefix.c │ ├── ngx_http_lua_pcrefix.h │ ├── ngx_http_lua_phase.c │ ├── ngx_http_lua_pipe.c │ ├── ngx_http_lua_pipe.h │ ├── ngx_http_lua_precontentby.c │ ├── ngx_http_lua_precontentby.h │ ├── ngx_http_lua_probe.h │ ├── ngx_http_lua_proxy_ssl_certby.c │ ├── ngx_http_lua_proxy_ssl_certby.h │ ├── ngx_http_lua_proxy_ssl_verifyby.c │ ├── ngx_http_lua_proxy_ssl_verifyby.h │ ├── ngx_http_lua_regex.c │ ├── ngx_http_lua_req_body.c │ ├── ngx_http_lua_req_body.h │ ├── ngx_http_lua_req_method.c │ ├── ngx_http_lua_rewriteby.c │ ├── ngx_http_lua_rewriteby.h │ ├── ngx_http_lua_script.c │ ├── ngx_http_lua_script.h │ ├── ngx_http_lua_semaphore.c │ ├── ngx_http_lua_semaphore.h │ ├── ngx_http_lua_server_rewriteby.c │ ├── ngx_http_lua_server_rewriteby.h │ ├── ngx_http_lua_setby.c │ ├── ngx_http_lua_setby.h │ ├── ngx_http_lua_shdict.c │ ├── ngx_http_lua_shdict.h │ ├── ngx_http_lua_sleep.c │ ├── ngx_http_lua_sleep.h │ ├── ngx_http_lua_socket_tcp.c │ ├── ngx_http_lua_socket_tcp.h │ ├── ngx_http_lua_socket_udp.c │ ├── ngx_http_lua_socket_udp.h │ ├── ngx_http_lua_ssl.c │ ├── ngx_http_lua_ssl.h │ ├── ngx_http_lua_ssl_certby.c │ ├── ngx_http_lua_ssl_certby.h │ ├── ngx_http_lua_ssl_client_helloby.c │ ├── ngx_http_lua_ssl_client_helloby.h │ ├── ngx_http_lua_ssl_export_keying_material.c │ ├── ngx_http_lua_ssl_export_keying_material.h │ ├── ngx_http_lua_ssl_ocsp.c │ ├── ngx_http_lua_ssl_session_fetchby.c │ ├── ngx_http_lua_ssl_session_fetchby.h │ ├── ngx_http_lua_ssl_session_storeby.c │ ├── ngx_http_lua_ssl_session_storeby.h │ ├── ngx_http_lua_string.c │ ├── ngx_http_lua_string.h │ ├── ngx_http_lua_subrequest.c │ ├── ngx_http_lua_subrequest.h │ ├── ngx_http_lua_time.c │ ├── ngx_http_lua_timer.c │ ├── ngx_http_lua_timer.h │ ├── ngx_http_lua_uri.c │ ├── ngx_http_lua_uri.h │ ├── ngx_http_lua_uthread.c │ ├── ngx_http_lua_uthread.h │ ├── ngx_http_lua_util.c │ ├── ngx_http_lua_util.h │ ├── ngx_http_lua_variable.c │ ├── ngx_http_lua_worker.c │ ├── ngx_http_lua_worker_thread.c │ └── ngx_http_lua_worker_thread.h ├── t/ │ ├── .gitignore │ ├── 000--init.t │ ├── 000-sanity.t │ ├── 001-set.t │ ├── 002-content.t │ ├── 003-errors.t │ ├── 004-require.t │ ├── 005-exit.t │ ├── 006-escape.t │ ├── 007-md5.t │ ├── 008-today.t │ ├── 009-log.t │ ├── 010-request_body.t │ ├── 011-md5_bin.t │ ├── 012-now.t │ ├── 013-base64.t │ ├── 014-bugs.t │ ├── 015-status.t │ ├── 016-resp-header.t │ ├── 017-exec.t │ ├── 018-ndk.t │ ├── 019-const.t │ ├── 020-subrequest.t │ ├── 021-cookie-time.t │ ├── 022-redirect.t │ ├── 023-rewrite/ │ │ ├── client-abort.t │ │ ├── exec.t │ │ ├── exit.t │ │ ├── mixed.t │ │ ├── multi-capture.t │ │ ├── on-abort.t │ │ ├── redirect.t │ │ ├── req-body.t │ │ ├── req-socket.t │ │ ├── request_body.t │ │ ├── sanity.t │ │ ├── sleep.t │ │ ├── socket-keepalive.t │ │ ├── subrequest.t │ │ ├── tcp-socket-timeout.t │ │ ├── tcp-socket.t │ │ ├── unix-socket.t │ │ ├── uthread-exec.t │ │ ├── uthread-exit.t │ │ ├── uthread-redirect.t │ │ └── uthread-spawn.t │ ├── 024-access/ │ │ ├── auth.t │ │ ├── client-abort.t │ │ ├── exec.t │ │ ├── exit.t │ │ ├── mixed.t │ │ ├── multi-capture.t │ │ ├── on-abort.t │ │ ├── redirect.t │ │ ├── req-body.t │ │ ├── request_body.t │ │ ├── sanity.t │ │ ├── satisfy.t │ │ ├── sleep.t │ │ ├── subrequest.t │ │ ├── uthread-exec.t │ │ ├── uthread-exit.t │ │ ├── uthread-redirect.t │ │ └── uthread-spawn.t │ ├── 025-codecache.t │ ├── 026-mysql.t │ ├── 027-multi-capture.t │ ├── 028-req-header.t │ ├── 029-http-time.t │ ├── 030-uri-args-with-ctrl.t │ ├── 030-uri-args.t │ ├── 031-post-args.t │ ├── 032-iolist.t │ ├── 033-ctx.t │ ├── 034-match.t │ ├── 035-gmatch.t │ ├── 036-sub.t │ ├── 037-gsub.t │ ├── 038-match-o.t │ ├── 039-sub-o.t │ ├── 040-gsub-o.t │ ├── 041-header-filter.t │ ├── 042-crc32.t │ ├── 043-shdict.t │ ├── 044-req-body.t │ ├── 045-ngx-var.t │ ├── 046-hmac.t │ ├── 047-match-jit.t │ ├── 048-match-dfa.t │ ├── 049-gmatch-jit.t │ ├── 050-gmatch-dfa.t │ ├── 051-sub-jit.t │ ├── 052-sub-dfa.t │ ├── 053-gsub-jit.t │ ├── 054-gsub-dfa.t │ ├── 055-subreq-vars.t │ ├── 056-flush.t │ ├── 057-flush-timeout.t │ ├── 058-tcp-socket.t │ ├── 059-unix-socket.t │ ├── 060-lua-memcached.t │ ├── 061-lua-redis.t │ ├── 062-count.t │ ├── 063-abort.t │ ├── 064-pcall.t │ ├── 065-tcp-socket-timeout.t │ ├── 066-socket-receiveuntil.t │ ├── 067-req-socket.t │ ├── 068-socket-keepalive.t │ ├── 069-null.t │ ├── 070-sha1.t │ ├── 071-idle-socket.t │ ├── 072-conditional-get.t │ ├── 073-backtrace.t │ ├── 074-prefix-var.t │ ├── 075-logby.t │ ├── 076-no-postpone.t │ ├── 077-sleep.t │ ├── 078-hup-vars.t │ ├── 079-unused-directives.t │ ├── 080-hup-shdict.t │ ├── 081-bytecode.t │ ├── 082-body-filter-2.t │ ├── 082-body-filter.t │ ├── 083-bad-sock-self.t │ ├── 084-inclusive-receiveuntil.t │ ├── 085-if.t │ ├── 086-init-by.t │ ├── 087-udp-socket.t │ ├── 088-req-method.t │ ├── 089-phase.t │ ├── 090-log-socket-errors.t │ ├── 091-coroutine.t │ ├── 092-eof.t │ ├── 093-uthread-spawn.t │ ├── 094-uthread-exit.t │ ├── 095-uthread-exec.t │ ├── 096-uthread-redirect.t │ ├── 097-uthread-rewrite.t │ ├── 098-uthread-wait.t │ ├── 099-c-api.t │ ├── 100-client-abort.t │ ├── 101-on-abort.t │ ├── 102-req-start-time.t │ ├── 103-req-http-ver.t │ ├── 104-req-raw-header.t │ ├── 105-pressure.t │ ├── 106-timer.t │ ├── 107-timer-errors.t │ ├── 108-timer-safe.t │ ├── 109-timer-hup.t │ ├── 110-etag.t │ ├── 111-req-header-ua.t │ ├── 112-req-header-conn.t │ ├── 113-req-header-cookie.t │ ├── 114-config.t │ ├── 115-quote-sql-str.t │ ├── 116-raw-req-socket.t │ ├── 117-raw-req-socket-timeout.t │ ├── 118-use-default-type.t │ ├── 119-config-prefix.t │ ├── 120-re-find.t │ ├── 121-version.t │ ├── 122-worker-2.t │ ├── 122-worker-3.t │ ├── 122-worker.t │ ├── 123-lua-path.t │ ├── 124-init-worker.t │ ├── 125-configure-args.t │ ├── 126-shdict-frag.t │ ├── 127-uthread-kill.t │ ├── 128-duplex-tcp-socket.t │ ├── 129-ssl-socket.t │ ├── 130-internal-api.t │ ├── 131-duplex-req-socket.t │ ├── 132-lua-blocks.t │ ├── 133-worker-count.t │ ├── 134-worker-count-5.t │ ├── 135-worker-id.t │ ├── 136-timer-counts.t │ ├── 137-req-misc.t │ ├── 138-balancer-upstream-bind.t │ ├── 138-balancer.t │ ├── 139-ssl-cert-by.t │ ├── 140-ssl-c-api.t │ ├── 141-luajit.t │ ├── 142-ssl-session-store.t │ ├── 143-ssl-session-fetch.t │ ├── 144-shdict-incr-init.t │ ├── 145-shdict-list.t │ ├── 146-malloc-trim.t │ ├── 147-tcp-socket-timeouts.t │ ├── 148-fake-shm-zone.t │ ├── 149-hup-fake-shm-zone.t │ ├── 150-fake-delayed-load.t │ ├── 151-initby-hup.t │ ├── 152-timer-every.t │ ├── 153-semaphore-hup.t │ ├── 154-semaphore.t │ ├── 155-tls13.t │ ├── 156-slow-network.t │ ├── 157-socket-keepalive-hup.t │ ├── 158-global-var.t │ ├── 159-sa-restart.t │ ├── 160-disable-init-by-lua.t │ ├── 161-load-resty-core.t │ ├── 162-exit-worker.t │ ├── 162-socket-tls-handshake.t │ ├── 162-static-module-location.t │ ├── 163-exit-worker-hup.t │ ├── 163-signal.t │ ├── 164-say.t │ ├── 165-thread-cache.t │ ├── 166-ssl-client-hello.t │ ├── 166-worker-thread.t │ ├── 167-server-rewrite.t │ ├── 168-tcp-socket-bind.t │ ├── 169-proxy-ssl-verify.t │ ├── 170-proxy-ssl-cert.t │ ├── 170-ssl-session-reuse.t │ ├── 185-ngx-buf-double-free.t │ ├── 186-cosocket-busy-bufs.t │ ├── 187-ssl-two-verification.t │ ├── 188-balancer_keepalive_pool_max_retry.t │ ├── 189-precontent.t │ ├── 191-pipe-proc-quic-close-crash.t │ ├── 302-tcp-socket-timeout-log.t │ ├── 303-udp-socket-error-log.t │ ├── StapThread.pm │ ├── cert/ │ │ ├── dst-ca.crt │ │ ├── equifax.crt │ │ ├── gen-test-passphrase.sh │ │ ├── gen-test-rsa1024.sh │ │ ├── gen-test2.sh │ │ ├── http3/ │ │ │ ├── http3.crt │ │ │ └── http3.key │ │ ├── mtls_ca.crt │ │ ├── mtls_ca.key │ │ ├── mtls_cert_gen/ │ │ │ ├── .gitignore │ │ │ ├── generate.sh │ │ │ ├── mtls_ca.json │ │ │ ├── mtls_client.json │ │ │ ├── mtls_server.json │ │ │ └── profile.json │ │ ├── mtls_client.crt │ │ ├── mtls_client.key │ │ ├── mtls_server.crt │ │ ├── mtls_server.key │ │ ├── test.crl │ │ ├── test.crt │ │ ├── test.key │ │ ├── test2.crt │ │ ├── test2.key │ │ ├── test_der.crt │ │ ├── test_der.key │ │ ├── test_ecdsa.crt │ │ ├── test_ecdsa.key │ │ ├── test_passphrase.crt │ │ └── test_passphrase.key │ ├── data/ │ │ ├── fake-delayed-load-module/ │ │ │ ├── config │ │ │ └── ngx_http_lua_fake_delayed_load_module.c │ │ ├── fake-module/ │ │ │ ├── config │ │ │ └── ngx_http_fake_module.c │ │ └── fake-shm-module/ │ │ ├── config │ │ └── ngx_http_lua_fake_shm_module.c │ └── lib/ │ ├── CRC32.lua │ ├── Memcached.lua │ ├── Redis.lua │ └── ljson.lua ├── tapset/ │ └── ngx_lua.stp ├── util/ │ ├── build-with-dd.sh │ ├── build-without-ssl.sh │ ├── build.sh │ ├── fix-comments │ ├── gen-lexer-c │ ├── nc_server.py │ ├── ngx-links │ ├── retab │ ├── revim │ ├── run-ci.sh │ ├── run_test.sh │ ├── update-readme.sh │ └── ver-ge └── valgrind.suppress