Build minimal WSGI-like environ dict for access logging.
(self, request, sockname, peername)
| 1168 | return scope |
| 1169 | |
| 1170 | def _build_environ(self, request, sockname, peername): |
| 1171 | """Build minimal WSGI-like environ dict for access logging.""" |
| 1172 | environ = { |
| 1173 | "REQUEST_METHOD": request.method, |
| 1174 | "RAW_URI": request.uri, |
| 1175 | "PATH_INFO": request.path, |
| 1176 | "QUERY_STRING": request.query or "", |
| 1177 | "SERVER_PROTOCOL": f"HTTP/{request.version[0]}.{request.version[1]}", |
| 1178 | "REMOTE_ADDR": peername[0] if peername else "-", |
| 1179 | } |
| 1180 | |
| 1181 | # Add HTTP headers as environ vars |
| 1182 | for name, value in request.headers: |
| 1183 | key = "HTTP_" + name.replace("-", "_") |
| 1184 | environ[key] = value |
| 1185 | |
| 1186 | return environ |
| 1187 | |
| 1188 | def _build_websocket_scope(self, request, sockname, peername): |
| 1189 | """Build ASGI WebSocket scope from parsed request.""" |
no outgoing calls