Handle uWSGI protocol connections (legacy path).
(self, peername, sockname)
| 843 | self._close_transport() |
| 844 | |
| 845 | async def _handle_connection_uwsgi(self, peername, sockname): |
| 846 | """Handle uWSGI protocol connections (legacy path).""" |
| 847 | unreader = AsyncUnreader(self.reader) |
| 848 | |
| 849 | while not self._closed: |
| 850 | self.req_count += 1 |
| 851 | |
| 852 | try: |
| 853 | request = await AsyncUWSGIRequest.parse( |
| 854 | self.cfg, |
| 855 | unreader, |
| 856 | peername, |
| 857 | self.req_count |
| 858 | ) |
| 859 | except NoMoreData: |
| 860 | break |
| 861 | except UWSGIParseException as e: |
| 862 | self.log.debug("uWSGI parse error: %s", e) |
| 863 | break |
| 864 | |
| 865 | # Check for WebSocket upgrade |
| 866 | if self._is_websocket_upgrade(request): |
| 867 | await self._handle_websocket(request, sockname, peername) |
| 868 | break |
| 869 | |
| 870 | # Handle HTTP request |
| 871 | keepalive = await self._handle_http_request( |
| 872 | request, sockname, peername |
| 873 | ) |
| 874 | |
| 875 | # Increment worker request count |
| 876 | self.worker.nr += 1 |
| 877 | |
| 878 | # Check max_requests |
| 879 | if self.worker.nr >= self.worker.max_requests: |
| 880 | self.log.info("Autorestarting worker after current request.") |
| 881 | self.worker.alive = False |
| 882 | keepalive = False |
| 883 | |
| 884 | if not keepalive or not self.worker.alive: |
| 885 | break |
| 886 | |
| 887 | if not self.cfg.keepalive: |
| 888 | break |
| 889 | |
| 890 | await request.drain_body() |
| 891 | |
| 892 | def _is_websocket_upgrade(self, request): |
| 893 | """Check if request is a WebSocket upgrade. |
no test coverage detected