X-Git-Url: http://www.dolda2000.com/gitweb/?a=blobdiff_plain;ds=sidebyside;f=python3%2Fscgi-wsgi3;h=bd625c4ee17b47787f698bd4c0f0a2122cdc3bf9;hb=0cd97ae29aef502e80d9420fa0b7f029486c4861;hp=0dfe9a15cb0177143e7ca1b65e2adb9d583bf8c3;hpb=79662f8c1589e4bb8ced5e4af33fe68a2ed3a387;p=ashd.git diff --git a/python3/scgi-wsgi3 b/python3/scgi-wsgi3 index 0dfe9a1..bd625c4 100755 --- a/python3/scgi-wsgi3 +++ b/python3/scgi-wsgi3 @@ -2,15 +2,19 @@ import sys, os, getopt, logging, collections import socket -import ashd.scgi, ashd.serve +import ashd.scgi, ashd.perf, ashd.serve +try: + import pdm.srv +except: + pdm = None def usage(out): - out.write("usage: scgi-wsgi3 [-hAL] [-p MODPATH] [-T [HOST:]PORT] HANDLER-MODULE [ARGS...]\n") + out.write("usage: scgi-wsgi3 [-hAL] [-m PDM-SPEC] [-p MODPATH] [-T [HOST:]PORT] HANDLER-MODULE [ARGS...]\n") sk = None modwsgi_compat = False setlog = True -opts, args = getopt.getopt(sys.argv[1:], "+hALp:T:") +opts, args = getopt.getopt(sys.argv[1:], "+hALp:T:m:") for o, a in opts: if o == "-h": usage(sys.stdout) @@ -33,6 +37,9 @@ for o, a in opts: sk.listen(32) elif o == "-A": modwsgi_compat = True + elif o == "-m": + if pdm is not None: + pdm.srv.listen(a) if len(args) < 1: usage(sys.stderr) sys.exit(1) @@ -118,7 +125,10 @@ class reqthread(ashd.serve.wsgithread): def handle(self): head = ashd.scgi.readhead(self.sk) self.env = mkenv(head, self.sk) - super().handle() + with ashd.perf.request(self.env) as reqevent: + super().handle() + if self.status: + reqevent.response([self.status, self.headers]) def run(self): try: