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

Method _send_body

gunicorn/asgi/protocol.py:1369–1396  ·  view source on GitHub ↗

Send response body chunk. Combines buffered headers with first body chunk for efficient write batching.

(self, body, chunked=False)

Source from the content-addressed store, hash-verified

1367 ]
1368
1369 def _send_body(self, body, chunked=False):
1370 """Send response body chunk.
1371
1372 Combines buffered headers with first body chunk for efficient write batching.
1373 """
1374 if chunked:
1375 if body:
1376 # Chunked encoding: size in hex + CRLF + data + CRLF
1377 # Use pre-cached prefix for common sizes, else format
1378 size = len(body)
1379 prefix = _CHUNK_PREFIXES.get(size) or f"{size:x}\r\n".encode("latin-1")
1380 chunk_data = prefix + body + b"\r\n"
1381 else:
1382 chunk_data = b""
1383
1384 # Combine with buffered headers if present
1385 if self._response_buffer:
1386 self._safe_write(self._response_buffer + chunk_data)
1387 self._response_buffer = None
1388 elif chunk_data:
1389 self._safe_write(chunk_data)
1390 else:
1391 # Non-chunked: combine headers + body or just body
1392 if self._response_buffer:
1393 self._safe_write(self._response_buffer + body)
1394 self._response_buffer = None
1395 elif body:
1396 self._safe_write(body)
1397
1398 def _send_error_response(self, status, message):
1399 """Send an error response."""

Calls 3

_safe_writeMethod · 0.95
encodeMethod · 0.80
getMethod · 0.45