Dolda2000 GitWeb
/
ashd.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
lib: Added ability to set environment variables in stdchildren.
[ashd.git]
/
python3
/
scgi-wsgi3
diff --git
a/python3/scgi-wsgi3
b/python3/scgi-wsgi3
index
0dfe9a1
..
bd625c4
100755
(executable)
--- a/
python3/scgi-wsgi3
+++ b/
python3/scgi-wsgi3
@@
-2,15
+2,19
@@
import sys, os, getopt, logging, collections
import socket
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):
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
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)
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
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)
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)
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:
def run(self):
try: