(self, handshake_exc)
| 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 |
no test coverage detected