Check-in by ben on 2025-08-01 07:00:15 Wait to block clients until CGI input has been parsed. INSERTED DELETED 21 20 src/cgi.awk 21 20 TOTAL over 1 changed file Index: src/cgi.awk ================================================================== --- src/cgi.awk +++ src/cgi.awk @@ -16,30 +16,10 @@ return } function cgi_init( ip) { ip = ENVIRON["REMOTE_ADDR"] - if (pass_enabled) { - # default deny access except client IP addresses in pass list - blocked = 1 - FS = "\t" - while ((getline < pass_list) > 0) { - if (match(/^#/, $0)) { - # ignore comments - continue - } - if (ip == $1) { - blocked = 0 - break - } - } - close(pass_list) - if (blocked) { - block_msg(ip) - exit(0) - } - } search = ARGV[1] arguments = ARGV[2] traversal = ARGV[5] selector = ARGV[6] @@ -87,10 +67,31 @@ path = substr(path, 1, RSTART - 1) } split(path, parts, "/") topdir = parts[2] + + if (pass_enabled) { + # default deny access except client IP addresses in pass list + blocked = 1 + FS = "\t" + while ((getline < pass_list) > 0) { + if (match(/^#/, $0)) { + # ignore comments + continue + } + if (ip == $1) { + blocked = 0 + break + } + } + close(pass_list) + if (blocked) { + block_msg(ip) + exit(0) + } + } return } function gph_encode(str, retval) {