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

Method connection_made

gunicorn/asgi/protocol.py:389–417  ·  view source on GitHub ↗

Called when a connection is established.

(self, transport)

Source from the content-addressed store, hash-verified

387 self._websocket = None
388
389 def connection_made(self, transport):
390 """Called when a connection is established."""
391 self.transport = transport
392 self.worker.nr_conns += 1
393
394 # Check if HTTP/2 was negotiated via ALPN
395 ssl_object = transport.get_extra_info('ssl_object')
396 if ssl_object and hasattr(ssl_object, 'selected_alpn_protocol'):
397 alpn = ssl_object.selected_alpn_protocol()
398 if alpn == 'h2':
399 # HTTP/2 connection - uses StreamReader (complex framing)
400 self.reader = asyncio.StreamReader()
401 self._task = self.worker.loop.create_task(
402 self._handle_http2_connection(transport, ssl_object)
403 )
404 return
405
406 # HTTP/1.x connection - always use callback parser
407 self._is_ssl = ssl_object is not None
408 self.writer = transport
409
410 # Setup flow control for HTTP/1.x
411 self._flow_control = FlowControl(transport)
412 transport.set_write_buffer_limits(high=HIGH_WATER_LIMIT)
413
414 # Setup callback parser with request ready event
415 self._request_ready = asyncio.Event()
416 self._setup_callback_parser()
417 self._task = self.worker.loop.create_task(self._handle_connection())
418
419 @classmethod
420 def _check_h1c_protocol_available(cls):

Calls 6

_handle_connectionMethod · 0.95
FlowControlClass · 0.85
get_extra_infoMethod · 0.45