|
|
|
@ -1,30 +1,43 @@
|
|
|
|
|
#!/bin/false
|
|
|
|
|
from os import environ
|
|
|
|
|
from urllib.parse import unquote
|
|
|
|
|
|
|
|
|
|
def getenv(name):
|
|
|
|
|
return environ.get(name, "")
|
|
|
|
|
|
|
|
|
|
version = getenv("GATEWAY_INTERFACE")
|
|
|
|
|
protocol = getenv("SERVER_PROTOCOL")
|
|
|
|
|
software = getenv("SERVER_SOFTWARE")
|
|
|
|
|
url = getenv("GEMINI_URL")
|
|
|
|
|
script = getenv("SCRIPT_NAME")
|
|
|
|
|
path = getenv("PATH_INFO")
|
|
|
|
|
query = getenv("QUERY_STRING")
|
|
|
|
|
host = getenv("SERVER_NAME")
|
|
|
|
|
port = getenv("SERVER_PORT")
|
|
|
|
|
remote = getenv("REMOTE_HOST")
|
|
|
|
|
tls_cipher = getenv("TLS_CIPHER")
|
|
|
|
|
gateway_interface = getenv("GATEWAY_INTERFACE")
|
|
|
|
|
remote_addr = getenv("REMOTE_ADDR")
|
|
|
|
|
remote_host = getenv("REMOTE_HOST")
|
|
|
|
|
request_method = getenv("REQUEST_METHOD")
|
|
|
|
|
script_name = getenv("SCRIPT_NAME")
|
|
|
|
|
server_name = getenv("SERVER_NAME")
|
|
|
|
|
server_port = getenv("SERVER_PORT")
|
|
|
|
|
server_protocol = getenv("SERVER_PROTOCOL")
|
|
|
|
|
server_software = getenv("SERVER_SOFTWARE")
|
|
|
|
|
gemini_document_root = getenv("GEMINI_DOCUMENT_ROOT")
|
|
|
|
|
gemini_script_filename = getenv("GEMINI_SCRIPT_FILENAME")
|
|
|
|
|
gemini_url = getenv("GEMINI_URL")
|
|
|
|
|
gemini_url_path = getenv("GEMINI_URL_PATH")
|
|
|
|
|
tls_version = getenv("TLS_VERSION")
|
|
|
|
|
tls_cipher = getenv("TLS_CIPHER")
|
|
|
|
|
path_info = getenv("PATH_INFO")
|
|
|
|
|
query_string = getenv("QUERY_STRING")
|
|
|
|
|
auth_type = getenv("AUTH_TYPE")
|
|
|
|
|
cert_hash = getenv("TLS_CLIENT_HASH")
|
|
|
|
|
cert_sn = getenv("TLS_CLIENT_SERIAL_NUMBER")
|
|
|
|
|
cert_name = getenv("REMOTE_USER")
|
|
|
|
|
remote_user = getenv("REMOTE_USER")
|
|
|
|
|
tls_client_issuer = getenv("TLS_CLIENT_ISSUER")
|
|
|
|
|
tls_client_hash = getenv("TLS_CLIENT_HASH")
|
|
|
|
|
tls_client_not_after = getenv("TLS_CLIENT_NOT_AFTER")
|
|
|
|
|
tls_client_not_before = getenv("TLS_CLIENT_NOT_BEFORE")
|
|
|
|
|
|
|
|
|
|
query_string_dec = unquote(query_string)
|
|
|
|
|
|
|
|
|
|
cgi_vars = [
|
|
|
|
|
"version", "protocol", "software", "url", "script", "path", "query", "host",
|
|
|
|
|
"port", "remote", "tls_cipher", "tls_version", "auth_type", "cert_hash",
|
|
|
|
|
"cert_sn", "cert_name"
|
|
|
|
|
"gateway_interface", "remote_addr", "remote_host", "request_method",
|
|
|
|
|
"script_name", "server_name", "server_port", "server_protocol",
|
|
|
|
|
"server_software", "gemini_document_root", "gemini_script_filename",
|
|
|
|
|
"gemini_url", "gemini_url_path", "tls_version", "tls_cipher", "path_info",
|
|
|
|
|
"query_string", "auth_type", "remote_user", "tls_client_issuer",
|
|
|
|
|
"tls_client_hash", "tls_client_not_after", "tls_client_not_before",
|
|
|
|
|
"query_string_dec",
|
|
|
|
|
]
|
|
|
|
|
|
|
|
|
|
def header(code, meta):
|
|
|
|
|