summaryrefslogtreecommitdiffstats
path: root/gennghttpxfun.py
diff options
context:
space:
mode:
Diffstat (limited to 'gennghttpxfun.py')
-rwxr-xr-xgennghttpxfun.py242
1 files changed, 242 insertions, 0 deletions
diff --git a/gennghttpxfun.py b/gennghttpxfun.py
new file mode 100755
index 0000000..2977407
--- /dev/null
+++ b/gennghttpxfun.py
@@ -0,0 +1,242 @@
+#!/usr/bin/env python3
+
+from gentokenlookup import gentokenlookup
+
+OPTIONS = [
+ "private-key-file",
+ "private-key-passwd-file",
+ "certificate-file",
+ "dh-param-file",
+ "subcert",
+ "backend",
+ "frontend",
+ "workers",
+ "http2-max-concurrent-streams",
+ "log-level",
+ "daemon",
+ "http2-proxy",
+ "http2-bridge",
+ "client-proxy",
+ "add-x-forwarded-for",
+ "strip-incoming-x-forwarded-for",
+ "no-via",
+ "frontend-http2-read-timeout",
+ "frontend-read-timeout",
+ "frontend-write-timeout",
+ "backend-read-timeout",
+ "backend-write-timeout",
+ "stream-read-timeout",
+ "stream-write-timeout",
+ "accesslog-file",
+ "accesslog-syslog",
+ "accesslog-format",
+ "errorlog-file",
+ "errorlog-syslog",
+ "backend-keep-alive-timeout",
+ "frontend-http2-window-bits",
+ "backend-http2-window-bits",
+ "frontend-http2-connection-window-bits",
+ "backend-http2-connection-window-bits",
+ "frontend-no-tls",
+ "backend-no-tls",
+ "backend-tls-sni-field",
+ "pid-file",
+ "user",
+ "syslog-facility",
+ "backlog",
+ "ciphers",
+ "client",
+ "insecure",
+ "cacert",
+ "backend-ipv4",
+ "backend-ipv6",
+ "backend-http-proxy-uri",
+ "read-rate",
+ "read-burst",
+ "write-rate",
+ "write-burst",
+ "worker-read-rate",
+ "worker-read-burst",
+ "worker-write-rate",
+ "worker-write-burst",
+ "npn-list",
+ "tls-proto-list",
+ "verify-client",
+ "verify-client-cacert",
+ "client-private-key-file",
+ "client-cert-file",
+ "frontend-http2-dump-request-header",
+ "frontend-http2-dump-response-header",
+ "http2-no-cookie-crumbling",
+ "frontend-frame-debug",
+ "padding",
+ "altsvc",
+ "add-request-header",
+ "add-response-header",
+ "worker-frontend-connections",
+ "no-location-rewrite",
+ "no-host-rewrite",
+ "backend-http1-connections-per-host",
+ "backend-http1-connections-per-frontend",
+ "listener-disable-timeout",
+ "tls-ticket-key-file",
+ "rlimit-nofile",
+ "backend-request-buffer",
+ "backend-response-buffer",
+ "no-server-push",
+ "backend-http2-connections-per-worker",
+ "fetch-ocsp-response-file",
+ "ocsp-update-interval",
+ "no-ocsp",
+ "include",
+ "tls-ticket-key-cipher",
+ "host-rewrite",
+ "tls-session-cache-memcached",
+ "tls-session-cache-memcached-tls",
+ "tls-ticket-key-memcached",
+ "tls-ticket-key-memcached-interval",
+ "tls-ticket-key-memcached-max-retry",
+ "tls-ticket-key-memcached-max-fail",
+ "mruby-file",
+ "accept-proxy-protocol",
+ "conf",
+ "fastopen",
+ "tls-dyn-rec-warmup-threshold",
+ "tls-dyn-rec-idle-timeout",
+ "add-forwarded",
+ "strip-incoming-forwarded",
+ "forwarded-by",
+ "forwarded-for",
+ "response-header-field-buffer",
+ "max-response-header-fields",
+ "request-header-field-buffer",
+ "max-request-header-fields",
+ "header-field-buffer",
+ "max-header-fields",
+ "no-http2-cipher-block-list",
+ "no-http2-cipher-black-list",
+ "backend-http1-tls",
+ "tls-session-cache-memcached-cert-file",
+ "tls-session-cache-memcached-private-key-file",
+ "tls-session-cache-memcached-address-family",
+ "tls-ticket-key-memcached-tls",
+ "tls-ticket-key-memcached-cert-file",
+ "tls-ticket-key-memcached-private-key-file",
+ "tls-ticket-key-memcached-address-family",
+ "backend-address-family",
+ "frontend-http2-max-concurrent-streams",
+ "backend-http2-max-concurrent-streams",
+ "backend-connections-per-frontend",
+ "backend-tls",
+ "backend-connections-per-host",
+ "error-page",
+ "no-kqueue",
+ "frontend-http2-settings-timeout",
+ "backend-http2-settings-timeout",
+ "api-max-request-body",
+ "backend-max-backoff",
+ "server-name",
+ "no-server-rewrite",
+ "frontend-http2-optimize-write-buffer-size",
+ "frontend-http2-optimize-window-size",
+ "frontend-http2-window-size",
+ "frontend-http2-connection-window-size",
+ "backend-http2-window-size",
+ "backend-http2-connection-window-size",
+ "frontend-http2-encoder-dynamic-table-size",
+ "frontend-http2-decoder-dynamic-table-size",
+ "backend-http2-encoder-dynamic-table-size",
+ "backend-http2-decoder-dynamic-table-size",
+ "ecdh-curves",
+ "tls-sct-dir",
+ "backend-connect-timeout",
+ "dns-cache-timeout",
+ "dns-lookup-timeout",
+ "dns-max-try",
+ "frontend-keep-alive-timeout",
+ "psk-secrets",
+ "client-psk-secrets",
+ "client-no-http2-cipher-block-list",
+ "client-no-http2-cipher-black-list",
+ "client-ciphers",
+ "accesslog-write-early",
+ "tls-min-proto-version",
+ "tls-max-proto-version",
+ "redirect-https-port",
+ "frontend-max-requests",
+ "single-thread",
+ "single-process",
+ "no-add-x-forwarded-proto",
+ "no-strip-incoming-x-forwarded-proto",
+ "ocsp-startup",
+ "no-verify-ocsp",
+ "verify-client-tolerate-expired",
+ "ignore-per-pattern-mruby-error",
+ "tls-no-postpone-early-data",
+ "tls-max-early-data",
+ "tls13-ciphers",
+ "tls13-client-ciphers",
+ "no-strip-incoming-early-data",
+ "quic-bpf-program-file",
+ "no-quic-bpf",
+ "http2-altsvc",
+ "frontend-http3-read-timeout",
+ "frontend-quic-idle-timeout",
+ "frontend-quic-debug-log",
+ "frontend-http3-window-size",
+ "frontend-http3-connection-window-size",
+ "frontend-http3-max-window-size",
+ "frontend-http3-max-connection-window-size",
+ "frontend-http3-max-concurrent-streams",
+ "frontend-quic-early-data",
+ "frontend-quic-qlog-dir",
+ "frontend-quic-require-token",
+ "frontend-quic-congestion-controller",
+ "quic-server-id",
+ "frontend-quic-secret-file",
+ "rlimit-memlock",
+ "max-worker-processes",
+ "worker-process-grace-shutdown-period",
+ "frontend-quic-initial-rtt",
+ "require-http-scheme",
+ "tls-ktls",
+ "alpn-list",
+]
+
+LOGVARS = [
+ "remote_addr",
+ "time_local",
+ "time_iso8601",
+ "request",
+ "status",
+ "body_bytes_sent",
+ "remote_port",
+ "server_port",
+ "request_time",
+ "pid",
+ "alpn",
+ "ssl_cipher",
+ "ssl_protocol",
+ "ssl_session_id",
+ "ssl_session_reused",
+ "tls_cipher",
+ "tls_protocol",
+ "tls_session_id",
+ "tls_session_reused",
+ "tls_sni",
+ "tls_client_fingerprint_sha256",
+ "tls_client_fingerprint_sha1",
+ "tls_client_subject_name",
+ "tls_client_issuer_name",
+ "tls_client_serial",
+ "backend_host",
+ "backend_port",
+ "method",
+ "path",
+ "path_without_query",
+ "protocol_version",
+]
+
+if __name__ == '__main__':
+ gentokenlookup(OPTIONS, 'SHRPX_OPTID_', value_type='char', comp_fun='util::strieq_l')
+ gentokenlookup(LOGVARS, 'LogFragmentType::', value_type='char', comp_fun='util::strieq_l', return_type='LogFragmentType', fail_value='LogFragmentType::NONE')