public bool QueryAccess(GridRegion destination, UUID id, Vector3 position, out string reason)
        {
            reason = "Communications failure";
            if (destination == null)
            {
                return(false);
            }

            // Try local first
            if (m_localBackend.QueryAccess(destination, id, position, out reason))
            {
                return(true);
            }

            // else do the remote thing
            if (!m_localBackend.IsLocalRegion(destination.RegionHandle))
            {
                return(m_remoteConnector.QueryAccess(destination, id, position, out reason));
            }

            return(false);
        }
        public bool QueryAccess(GridRegion destination, UUID agentID, string agentHomeURI, bool viaTeleport, Vector3 position, List <UUID> features, EntityTransferContext ctx, out string reason)
        {
            reason = "Communications failure";

            if (destination == null)
            {
                return(false);
            }

            // Try local first
            if (m_localBackend.QueryAccess(destination, agentID, agentHomeURI, viaTeleport, position, features, ctx, out reason))
            {
                return(true);
            }

            // else do the remote thing
            if (!m_localBackend.IsLocalRegion(destination.RegionID))
            {
                return(m_remoteConnector.QueryAccess(destination, agentID, agentHomeURI, viaTeleport, position, features, ctx, out reason));
            }

            return(false);
        }
        public bool QueryAccess(GridRegion destination, UUID agentID, string agentHomeURI, bool viaTeleport, Vector3 position, string sversion, out string version, out string reason)
        {
            reason  = "Communications failure";
            version = "Unknown";

            if (destination == null)
            {
                return(false);
            }

            // Try local first
            if (m_localBackend.QueryAccess(destination, agentID, agentHomeURI, viaTeleport, position, sversion, out version, out reason))
            {
                return(true);
            }

            // else do the remote thing
            if (!m_localBackend.IsLocalRegion(destination.RegionID))
            {
                return(m_remoteConnector.QueryAccess(destination, agentID, agentHomeURI, viaTeleport, position, sversion, out version, out reason));
            }

            return(false);
        }