📄 operator.ctp
字号:
#!/usr/bin/awk -f#function setval(var, val) { if (val == "") return (0); conf[var] = val; return (0); }function setconfig(line, n, x) { n = split(line, x, ":"); # # If the record has only two field it denies access. # if (n == 2) { printf ("-ERR: %s: request denied by configuration: %s/%s\n", program, ENVIRON["PROXY_SERVERLOGIN"], ENVIRON["PROXY_SERVERNAME"]); exit (1); # signal error anyway. } setval("server", x[3]); setval("login", x[4]); setval("passwd", x[5]); return (0); }BEGIN { program = "proxy-operator"; STDERR = "/dev/stderr"; argi = 1; if (argi >= ARGV) config = "/etc/proxy-user.conf" else { config = ARGV[argi]; ARGV[argi++] = ""; } lines = 0; while (getline line <config > 0) { lines++; sub(/[ \t]*#.*$/, "", line); # Remove comments ... sub(/[ \t]+$/, "", line); # ... and white-space at the end of the line. if (line == "") continue; # Skip over blanks lines. # # Here we store our configuration lines `as-is' in the # `rec' array using incoming username and server as key. # n = split(line, x, ":"); rec[x[1], x[2]] = line; } close (config); # # Let's check if we read something from the configuration # file. If not it's either completly empty or it does not # exist. We don't know (and we can't determine) but we # assume that is does not exist. # if (lines == 0) { printf ("%s: missing or empty configuration file\n", program) >STDERR; exit (1); } username = ENVIRON["PROXY_SERVERLOGIN"]; server = ENVIRON["PROXY_SERVERNAME"]; if ((username SUBSEP server) in rec) setconfig(rec[username, server]); # # An open question: If we don't have a record for a given # user/server request but wildcards for user and server, which # should be checked first (and take precedence over the other)? # else if ((username SUBSEP "*") in rec) setconfig(rec[username, "*"]); else if (("*" SUBSEP server) in rec) setconfig(rec["*", server]); else if (("*" SUBSEP "*") in rec) setconfig(rec["*", "*"]); for (var in conf) printf ("%s %s\n", toupper(var), conf[var]); exit (0); }
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -