https://github.com/bitcoin/bitcoin/commit/2b781ad66e34000037f589c71366c203255ed058#r83655059
{
    LOCK(m_mutex);
    std::string errmsg;
    if (!m_control_sock->IsConnected(errmsg)) {
        Log("Control socket error: %s", errmsg);
        Disconnect();
    }
}
void Session::DestGenerate(const Sock& sock)
{
    
    
    
    const Reply& reply = SendRequestAndGetReply(sock, "DEST GENERATE SIGNATURE_TYPE=7", false);
    m_private_key = DecodeI2PBase64(reply.Get("PRIV"));
}
void Session::GenerateAndSavePrivateKey(const Sock& sock)
{
    DestGenerate(sock);
    
    if (!WriteBinaryFile(m_private_key_file,
                         std::string(m_private_key.begin(), m_private_key.end()))) {
        throw std::runtime_error(
            strprintf("Cannot save I2P private key to %s", fs::quoted(fs::PathToString(m_private_key_file))));
    }
}
Binary Session::MyDestination() const