MCPcopy Index your code
hub / github.com/python/cpython / _on_handshake_complete

Method _on_handshake_complete

Lib/asyncio/sslproto.py:571–608  ·  view source on GitHub ↗
(self, handshake_exc)

Source from the content-addressed store, hash-verified

569 self._on_handshake_complete(None)
570
571 def _on_handshake_complete(self, handshake_exc):
572 if self._handshake_timeout_handle is not None:
573 self._handshake_timeout_handle.cancel()
574 self._handshake_timeout_handle = None
575
576 sslobj = self._sslobj
577 try:
578 if handshake_exc is None:
579 self._set_state(SSLProtocolState.WRAPPED)
580 else:
581 raise handshake_exc
582
583 peercert = sslobj.getpeercert()
584 except Exception as exc:
585 handshake_exc = None
586 self._set_state(SSLProtocolState.UNWRAPPED)
587 if isinstance(exc, ssl.CertificateError):
588 msg = 'SSL handshake failed on verifying the certificate'
589 else:
590 msg = 'SSL handshake failed'
591 self._fatal_error(exc, msg)
592 self._wakeup_waiter(exc)
593 return
594
595 if self._loop.get_debug():
596 dt = self._loop.time() - self._handshake_start_time
597 logger.debug("%r: SSL handshake took %.1f ms", self, dt * 1e3)
598
599 # Add extra info that becomes available after handshake.
600 self._extra.update(peercert=peercert,
601 cipher=sslobj.cipher(),
602 compression=sslobj.compression(),
603 ssl_object=sslobj)
604 if self._app_state == AppProtocolState.STATE_INIT:
605 self._app_state = AppProtocolState.STATE_CON_MADE
606 self._app_protocol.connection_made(self._get_app_transport())
607 self._wakeup_waiter()
608 self._do_read()
609
610 # Shutdown flow
611

Callers 2

eof_receivedMethod · 0.95
_do_handshakeMethod · 0.95

Calls 14

_set_stateMethod · 0.95
_fatal_errorMethod · 0.95
_wakeup_waiterMethod · 0.95
_get_app_transportMethod · 0.95
_do_readMethod · 0.95
cancelMethod · 0.45
getpeercertMethod · 0.45
get_debugMethod · 0.45
timeMethod · 0.45
debugMethod · 0.45
updateMethod · 0.45
cipherMethod · 0.45

Tested by

no test coverage detected