MCPcopy
hub / github.com/benoitc/gunicorn / _handle_close

Method _handle_close

gunicorn/asgi/websocket.py:372–388  ·  view source on GitHub ↗

Handle incoming close frame.

(self, payload)

Source from the content-addressed store, hash-verified

370 return bytes(b ^ masking_key[i % 4] for i, b in enumerate(payload))
371
372 async def _handle_close(self, payload):
373 """Handle incoming close frame."""
374 if len(payload) >= 2:
375 self.close_code = struct.unpack("!H", payload[:2])[0]
376 self.close_reason = payload[2:].decode("utf-8", errors="replace")
377 else:
378 self.close_code = CLOSE_NO_STATUS
379 self.close_reason = ""
380
381 self._close_received = True
382
383 # Echo close frame back if we haven't already sent one
384 if not self._close_sent:
385 await self._send_close(self.close_code, self.close_reason)
386
387 self.closed = True
388 self._close_event.set()
389
390 async def _handle_continuation(self, payload): # pylint: disable=unused-argument
391 """Handle continuation frame (already processed in _read_frame)."""

Callers 1

_read_framesMethod · 0.95

Calls 3

_send_closeMethod · 0.95
decodeMethod · 0.80
setMethod · 0.45

Tested by

no test coverage detected