diff options
author | Egor Tensin <Egor.Tensin@gmail.com> | 2021-03-03 23:25:52 +0300 |
---|---|---|
committer | Egor Tensin <Egor.Tensin@gmail.com> | 2021-03-03 23:25:52 +0300 |
commit | c0068e035ca825579e8d41f60d3864eeb6df0c88 (patch) | |
tree | 5fd91401c25214e4ab9d916482c9f567c00c39a1 | |
parent | merge {reboot,poweroff}.sh into get.py (diff) | |
download | linux-status-c0068e035ca825579e8d41f60d3864eeb6df0c88.tar.gz linux-status-c0068e035ca825579e8d41f60d3864eeb6df0c88.zip |
no more CGI
The server.py script now launches a web server and handles all the
requests internally, without delegating anything to external scripts.
-rwxr-xr-x | app.py (renamed from cgi-bin/get.py) | 0 | ||||
-rwxr-xr-x | cgi-bin/get.sh | 17 | ||||
-rwxr-xr-x | server.py | 4 |
3 files changed, 2 insertions, 19 deletions
diff --git a/cgi-bin/get.sh b/cgi-bin/get.sh deleted file mode 100755 index ea4f4ce..0000000 --- a/cgi-bin/get.sh +++ /dev/null @@ -1,17 +0,0 @@ -#!/usr/bin/env bash - -set -o errexit -o nounset -o pipefail - -script_dir="$( dirname -- "${BASH_SOURCE[0]}" )" -script_dir="$( cd -- "$script_dir" && pwd )" -readonly script_dir - -# Python's http.server runs CGI scripts under user nobody. -# This is not what we want unfortunately. -# The best solution I could find so far is to create an entry in -# /etc/sudoers.d, allowing the nobody user to run the real scripts w/ sudo. -if [ "$( id --user --name )" == nobody ]; then - sudo --non-interactive --preserve-env "$script_dir/get.py" -else - "$script_dir/get.py" -fi @@ -7,10 +7,10 @@ import http.server -from get import Request +from app import Request -class RequestHandler(http.server.CGIHTTPRequestHandler): +class RequestHandler(http.server.SimpleHTTPRequestHandler): def do_GET(self): try: request = Request.from_http_path(self.path) |