Porównaj commity

...

2 Commity

Autor SHA1 Wiadomość Data
Marnanel Thurman 03708faed6 Experiment for the fastcgi handler. 2023-10-08 23:26:34 +01:00
Marnanel Thurman 7c7484a9cf kepi doesn't depend on itself 2023-10-08 23:14:23 +01:00
3 zmienionych plików z 62 dodań i 1 usunięć

Wyświetl plik

@ -0,0 +1,16 @@
server {
root /var/www/html;
server_name local.example.org;
location / {
include /etc/nginx/fastcgi_params;
if ($content_type = "application/activity+json") {
fastcgi_pass 127.0.0.1:17177;
}
try_files $uri $uri/ =404;
}
}

44
fastcgi-test.py 100644
Wyświetl plik

@ -0,0 +1,44 @@
from socketserver import TCPServer
from fastcgi.core import FcgiHandler
import accept
# environ:
# query {'QUERY_STRING': '', 'REQUEST_METHOD': 'GET', 'CONTENT_TYPE': '', 'CONTENT_LENGTH': '', 'SCRIPT_NAME': '/', 'REQUEST_URI': '/', 'DOCUMENT_URI': '/', 'DOCUMENT_ROOT': '/var/www/html', 'SERVER_PROTOCOL': 'HTTP/1.1', 'REQUEST_SCHEME': 'https', 'HTTPS': 'on', 'GATEWAY_INTERFACE': 'CGI/1.1', 'SERVER_SOFTWARE': 'nginx/1.22.1', 'REMOTE_ADDR': '217.155.192.32', 'REMOTE_PORT': '65482', 'REMOTE_USER': '', 'SERVER_ADDR': '192.168.1.83', 'SERVER_PORT': '443', 'SERVER_NAME': 'sandy-heath.thurman.org.uk', 'REDIRECT_STATUS': '200', 'HTTP_HOST': 'sandy-heath.thurman.org.uk', 'HTTP_USER_AGENT': 'Mozilla/5.0 (X11; Linux x86_64; rv:109.0) Gecko/20100101 Firefox/115.0', 'HTTP_ACCEPT': 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,*/*;q=0.8', 'HTTP_ACCEPT_LANGUAGE': 'en-GB,en;q=0.5', 'HTTP_ACCEPT_ENCODING': 'gzip, deflate, br', 'HTTP_CONNECTION': 'keep-alive', 'HTTP_COOKIE': 'csrftoken=Ga1NZdJTo0F5zaSXCmmYq69xSePMfzIk', 'HTTP_UPGRADE_INSECURE_REQUESTS': '1', 'HTTP_SEC_FETCH_DEST': 'document', 'HTTP_SEC_FETCH_MODE': 'navigate', 'HTTP_SEC_FETCH_SITE': 'cross-site', 'HTTP_SEC_GPC': '1'}
CONTENTTYPE_ACTIVITY = 'application/activity+json'
CONTENTTYPE_HTML = 'text/html'
class TestHandler(FcgiHandler):
def handle(self):
# XXX Here we check HTTP_ACCEPT
# XXX and DOCUMENT_URI and possibly QUERY_STRING
# XXX and despatch as appropriate
print('query', self.environ)
mime = accept.parse(self.environ['HTTP_ACCEPT'])
print(mime)
print(self.environ['DOCUMENT_URI'])
response_headers = ''
response_headers += f'Content-Type: {CONTENTTYPE_ACTIVITY}\r\n'
response_headers += '\r\n'
response_body = '<html>foobar</html>'
response_body = response_body.encode('UTF-8')
response_headers = response_headers.encode('UTF-8')
self['stdout'].write(
response_headers +
b'\r\n\r\n' +
response_body
)
def run():
with TCPServer(('localhost',17177), TestHandler) as srv:
srv.handle_request()
if __name__=='__main__':
run()

Wyświetl plik

@ -44,7 +44,6 @@ http-sfv==0.9.8
idna==3.4
iniconfig==2.0.0
jwcrypto==1.5.0
kepi==0.7
kombu==5.3.2
Markdown==3.4.4
oauthlib==3.2.2
@ -63,3 +62,5 @@ tzdata==2023.3
urllib3==2.0.5
vine==5.0.0
wcwidth==0.2.8
fastcgi==0.0.3
accept==0.1.0