equal
deleted
inserted
replaced
11 import errno |
11 import errno |
12 import os |
12 import os |
13 import socket |
13 import socket |
14 import sys |
14 import sys |
15 import traceback |
15 import traceback |
|
16 import wsgiref.validate |
16 |
17 |
17 from ..i18n import _ |
18 from ..i18n import _ |
18 |
19 |
19 from .. import ( |
20 from .. import ( |
20 encoding, |
21 encoding, |
126 env[r'REQUEST_URI'] = self.path |
127 env[r'REQUEST_URI'] = self.path |
127 env[r'SCRIPT_NAME'] = pycompat.sysstr(self.server.prefix) |
128 env[r'SCRIPT_NAME'] = pycompat.sysstr(self.server.prefix) |
128 env[r'PATH_INFO'] = pycompat.sysstr(path[len(self.server.prefix):]) |
129 env[r'PATH_INFO'] = pycompat.sysstr(path[len(self.server.prefix):]) |
129 env[r'REMOTE_HOST'] = self.client_address[0] |
130 env[r'REMOTE_HOST'] = self.client_address[0] |
130 env[r'REMOTE_ADDR'] = self.client_address[0] |
131 env[r'REMOTE_ADDR'] = self.client_address[0] |
131 if query: |
132 env[r'QUERY_STRING'] = query or r'' |
132 env[r'QUERY_STRING'] = query |
|
133 |
133 |
134 if pycompat.ispy3: |
134 if pycompat.ispy3: |
135 if self.headers.get_content_type() is None: |
135 if self.headers.get_content_type() is None: |
136 env[r'CONTENT_TYPE'] = self.headers.get_default_type() |
136 env[r'CONTENT_TYPE'] = self.headers.get_default_type() |
137 else: |
137 else: |
164 socketserver.ThreadingMixIn) |
164 socketserver.ThreadingMixIn) |
165 env[r'wsgi.multiprocess'] = isinstance(self.server, |
165 env[r'wsgi.multiprocess'] = isinstance(self.server, |
166 socketserver.ForkingMixIn) |
166 socketserver.ForkingMixIn) |
167 env[r'wsgi.run_once'] = 0 |
167 env[r'wsgi.run_once'] = 0 |
168 |
168 |
|
169 wsgiref.validate.check_environ(env) |
|
170 |
169 self.saved_status = None |
171 self.saved_status = None |
170 self.saved_headers = [] |
172 self.saved_headers = [] |
171 self.length = None |
173 self.length = None |
172 self._chunked = None |
174 self._chunked = None |
173 for chunk in self.server.application(env, self._start_response): |
175 for chunk in self.server.application(env, self._start_response): |