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) {