@@ -2509,3 +2509,176 @@ func MatchAppProtectWAFv5(directive string) ([]uint, bool) {
25092509 masks , matched := appProtectWAFv5Directives [directive ]
25102510 return masks , matched
25112511}
2512+
2513+ // LuaDirectives is a list of directives that are used in the Lua module
2514+ // https://github.com/openresty/lua-nginx-module/tree/master?tab=readme-ov-file#directives
2515+ //
2516+ //nolint:gochecknoglobals
2517+ var LuaDirectives = map [string ][]uint {
2518+ "lua_load_resty_core" : {
2519+ ngxHTTPMainConf | ngxConfFlag ,
2520+ },
2521+ "lua_capture_error_log" : {
2522+ ngxHTTPMainConf | ngxConfTake1 ,
2523+ },
2524+ "lua_use_default_type" : {
2525+ ngxHTTPMainConf | ngxHTTPSrvConf | ngxHTTPLocConf | ngxHTTPLifConf | ngxConfFlag ,
2526+ },
2527+ "lua_malloc_trim" : {
2528+ ngxHTTPMainConf | ngxConfTake1 ,
2529+ },
2530+ "lua_code_cache" : {
2531+ ngxHTTPMainConf | ngxHTTPSrvConf | ngxHTTPLocConf | ngxHTTPLifConf | ngxConfFlag ,
2532+ },
2533+ "lua_thread_cache_max_entries" : {
2534+ ngxHTTPMainConf | ngxConfTake1 ,
2535+ },
2536+ "lua_regex_cache_max_entries" : {
2537+ ngxHTTPMainConf | ngxConfTake1 ,
2538+ },
2539+ "lua_regex_match_limit" : {
2540+ ngxHTTPMainConf | ngxConfTake1 ,
2541+ },
2542+ "lua_package_path" : {
2543+ ngxHTTPMainConf | ngxConfTake1 ,
2544+ },
2545+ "lua_package_cpath" : {
2546+ ngxHTTPMainConf | ngxConfTake1 ,
2547+ },
2548+ "init_by_lua_file" : {
2549+ ngxHTTPMainConf | ngxConfTake1 ,
2550+ },
2551+ "init_worker_by_lua_file" : {
2552+ ngxHTTPMainConf | ngxConfTake1 ,
2553+ },
2554+ "exit_worker_by_lua_file" : {
2555+ ngxHTTPMainConf | ngxConfTake1 ,
2556+ },
2557+ "set_by_lua_file" : {
2558+ ngxHTTPSrvConf | ngxHTTPSifConf | ngxHTTPLocConf | ngxHTTPLifConf | ngxConf2More ,
2559+ },
2560+ "content_by_lua_file" : {
2561+ ngxHTTPLocConf | ngxHTTPLifConf | ngxConfTake1 ,
2562+ },
2563+ "server_rewrite_by_lua_file" : {
2564+ ngxHTTPMainConf | ngxHTTPSrvConf | ngxConfTake1 ,
2565+ },
2566+ "rewrite_by_lua_file" : {
2567+ ngxHTTPMainConf | ngxHTTPSrvConf | ngxHTTPLocConf | ngxHTTPLifConf | ngxConfTake1 ,
2568+ },
2569+ "access_by_lua_file" : {
2570+ ngxHTTPMainConf | ngxHTTPSrvConf | ngxHTTPLocConf | ngxHTTPLifConf | ngxConfTake1 ,
2571+ },
2572+ "header_filter_by_lua_file" : {
2573+ ngxHTTPMainConf | ngxHTTPSrvConf | ngxHTTPLocConf | ngxHTTPLifConf | ngxConfTake1 ,
2574+ },
2575+ "body_filter_by_lua_file" : {
2576+ ngxHTTPMainConf | ngxHTTPSrvConf | ngxHTTPLocConf | ngxHTTPLifConf | ngxConfTake1 ,
2577+ },
2578+ "log_by_lua_file" : {
2579+ ngxHTTPMainConf | ngxHTTPSrvConf | ngxHTTPLocConf | ngxHTTPLifConf | ngxConfTake1 ,
2580+ },
2581+ "balancer_by_lua_file" : {
2582+ ngxHTTPUpsConf | ngxConfTake1 ,
2583+ },
2584+ "lua_need_request_body" : {
2585+ ngxHTTPMainConf | ngxHTTPSrvConf | ngxHTTPLocConf | ngxHTTPLifConf | ngxConfFlag ,
2586+ },
2587+ "ssl_client_hello_by_lua_file" : {
2588+ ngxHTTPMainConf | ngxHTTPSrvConf | ngxConfTake1 ,
2589+ },
2590+ "ssl_certificate_by_lua_file" : {
2591+ ngxHTTPMainConf | ngxHTTPSrvConf | ngxConfTake1 ,
2592+ },
2593+ "ssl_session_fetch_by_lua_file" : {
2594+ ngxHTTPMainConf | ngxConfTake1 ,
2595+ },
2596+ "ssl_session_store_by_lua_file" : {
2597+ ngxHTTPMainConf | ngxConfTake1 ,
2598+ },
2599+ "lua_shared_dict" : {
2600+ ngxHTTPMainConf | ngxConfTake2 ,
2601+ },
2602+ "lua_socket_connect_timeout" : {
2603+ ngxHTTPMainConf | ngxHTTPSrvConf | ngxHTTPLocConf | ngxHTTPLifConf | ngxConfTake1 ,
2604+ },
2605+ "lua_socket_send_timeout" : {
2606+ ngxHTTPMainConf | ngxHTTPSrvConf | ngxHTTPLocConf | ngxHTTPLifConf | ngxConfTake1 ,
2607+ },
2608+ "lua_socket_send_lowat" : {
2609+ ngxHTTPMainConf | ngxHTTPSrvConf | ngxHTTPLocConf | ngxHTTPLifConf | ngxConfTake1 ,
2610+ },
2611+ "lua_socket_read_timeout" : {
2612+ ngxHTTPMainConf | ngxHTTPSrvConf | ngxHTTPLocConf | ngxHTTPLifConf | ngxConfTake1 ,
2613+ },
2614+ "lua_socket_buffer_size" : {
2615+ ngxHTTPMainConf | ngxHTTPSrvConf | ngxHTTPLocConf | ngxHTTPLifConf | ngxConfTake1 ,
2616+ },
2617+ "lua_socket_pool_size" : {
2618+ ngxHTTPMainConf | ngxHTTPSrvConf | ngxHTTPLocConf | ngxHTTPLifConf | ngxConfTake1 ,
2619+ },
2620+ "lua_socket_keepalive_timeout" : {
2621+ ngxHTTPMainConf | ngxHTTPSrvConf | ngxHTTPLocConf | ngxHTTPLifConf | ngxConfTake1 ,
2622+ },
2623+ "lua_socket_log_errors" : {
2624+ ngxHTTPMainConf | ngxHTTPSrvConf | ngxHTTPLocConf | ngxHTTPLifConf | ngxConfFlag ,
2625+ },
2626+ "lua_ssl_ciphers" : {
2627+ ngxHTTPMainConf | ngxHTTPSrvConf | ngxHTTPLocConf | ngxConfTake1 ,
2628+ },
2629+ "lua_ssl_crl" : {
2630+ ngxHTTPMainConf | ngxHTTPSrvConf | ngxHTTPLocConf | ngxConfTake1 ,
2631+ },
2632+ "lua_ssl_protocols" : {
2633+ ngxHTTPMainConf | ngxHTTPSrvConf | ngxHTTPLocConf | ngxConf1More ,
2634+ },
2635+ "lua_ssl_certificate" : {
2636+ ngxHTTPMainConf | ngxHTTPSrvConf | ngxHTTPLocConf | ngxConfTake1 ,
2637+ },
2638+ "lua_ssl_certificate_key" : {
2639+ ngxHTTPMainConf | ngxHTTPSrvConf | ngxHTTPLocConf | ngxConfTake1 ,
2640+ },
2641+ "lua_ssl_trusted_certificate" : {
2642+ ngxHTTPMainConf | ngxHTTPSrvConf | ngxHTTPLocConf | ngxConfTake1 ,
2643+ },
2644+ "lua_ssl_verify_depth" : {
2645+ ngxHTTPMainConf | ngxHTTPSrvConf | ngxHTTPLocConf | ngxConfTake1 ,
2646+ },
2647+ "lua_ssl_conf_command" : {
2648+ ngxHTTPMainConf | ngxHTTPSrvConf | ngxHTTPLocConf | ngxConfTake2 ,
2649+ },
2650+ "lua_http10_buffering" : {
2651+ ngxHTTPMainConf | ngxHTTPSrvConf | ngxHTTPLocConf | ngxHTTPLifConf | ngxConfFlag ,
2652+ },
2653+ "rewrite_by_lua_no_postpone" : {
2654+ ngxHTTPMainConf | ngxConfFlag ,
2655+ },
2656+ "access_by_lua_no_postpone" : {
2657+ ngxHTTPMainConf | ngxConfFlag ,
2658+ },
2659+ "lua_transform_underscores_in_response_headers" : {
2660+ ngxHTTPMainConf | ngxHTTPSrvConf | ngxHTTPLocConf | ngxHTTPLifConf | ngxConfFlag ,
2661+ },
2662+ "lua_check_client_abort" : {
2663+ ngxHTTPMainConf | ngxHTTPSrvConf | ngxHTTPLocConf | ngxHTTPLifConf | ngxConfFlag ,
2664+ },
2665+ "lua_max_pending_timers" : {
2666+ ngxHTTPMainConf | ngxConfTake1 ,
2667+ },
2668+ "lua_max_running_timers" : {
2669+ ngxHTTPMainConf | ngxConfTake1 ,
2670+ },
2671+ "lua_sa_restart" : {
2672+ ngxHTTPMainConf | ngxConfFlag ,
2673+ },
2674+ "lua_worker_thread_vm_pool_size" : {
2675+ ngxHTTPMainConf | ngxConfTake1 ,
2676+ },
2677+ }
2678+
2679+ // MatchLua is a match function for parsing an NGINX config that contains the
2680+ // Lua module.
2681+ func MatchLua (directive string ) ([]uint , bool ) {
2682+ masks , matched := LuaDirectives [directive ]
2683+ return masks , matched
2684+ }
0 commit comments