<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def connection_made(self, transport: asyncio.BaseTransport) -> None: """ Modified ``connection_made`` that supports upgrading our transport in place using STARTTLS. We set the _transport directly on the StreamReader, rather than calling set_transport (which will raise an AssertionError on upgrade). """

        if self._stream_reader is None:
            raise SMTPServerDisconnected("Client not connected")

        self._stream_reader._transport = transport  # type: ignore
        self._over_ssl = transport.get_extra_info("sslcontext") is not None
        self._stream_writer = asyncio.StreamWriter(
            transport, self, self._stream_reader, self._loop
        )
        self._client_connected_cb(  # type: ignore
            self._stream_reader, self._stream_writer
        )