public void Close(IScene scene)
        {
            //Deregister the interface
            scene.UnregisterModuleInterface <IGridRegisterModule>(this);
            m_scenes.Remove(scene);

            MainConsole.Instance.InfoFormat("[RegisterRegionWithGrid]: Deregistering region {0} from the grid...",
                                            scene.RegionInfo.RegionName);

            //Deregister from the grid server
            IGridService GridService = scene.RequestModuleInterface <IGridService>();
            GridRegion   r           = BuildGridRegion(scene.RegionInfo);

            r.IsOnline = false;
            string error = "";

            if (scene.RegionInfo.HasBeenDeleted)
            {
                GridService.DeregisterRegion(r);
            }
            else if ((error = GridService.UpdateMap(r)) != "")
            {
                MainConsole.Instance.WarnFormat("[RegisterRegionWithGrid]: Deregister from grid failed for region {0}, {1}",
                                                scene.RegionInfo.RegionName, error);
            }
        }
Пример #2
0
        public bool DeregisterRegion(UUID regionID)
        {
            if (m_LocalGridService.DeregisterRegion(regionID))
            {
                return(m_RemoteGridService.DeregisterRegion(regionID));
            }

            return(false);
        }
Пример #3
0
        public override bool DeregisterRegion(UUID regionID)
        {
            if (m_LocalGridService.DeregisterRegion(regionID))
            {
                return(base.DeregisterRegion(regionID));
            }

            return(false);
        }
        public void DeleteRegion(IScene scene)
        {
            IGridService GridService = scene.RequestModuleInterface <IGridService>();

            if (!GridService.DeregisterRegion(BuildGridRegion(scene.RegionInfo)))
            {
                MainConsole.Instance.WarnFormat("[RegisterRegionWithGrid]: Deregister from grid failed for region {0}",
                                                scene.RegionInfo.RegionName);
            }
        }
Пример #5
0
        public void Close(Scene scene)
        {
            //Deregister the interface
            scene.UnregisterModuleInterface <IGridRegisterModule>(this);

            m_log.InfoFormat("[RegisterRegionWithGrid]: Deregistering region {0} from the grid...", scene.RegionInfo.RegionName);

            //Deregister from the grid server
            IGridService GridService = scene.RequestModuleInterface <IGridService>();

            if (!GridService.DeregisterRegion(scene.RegionInfo.RegionHandle, scene.RegionInfo.RegionID, scene.RegionInfo.GridSecureSessionID))
            {
                m_log.WarnFormat("[RegisterRegionWithGrid]: Deregister from grid failed for region {0}", scene.RegionInfo.RegionName);
            }
        }
Пример #6
0
        private void m_timer_Elapsed(object sender, ElapsedEventArgs e)
        {
            ISyncMessagePosterService syncMessagePoster =
                m_scenes[0].RequestModuleInterface <ISyncMessagePosterService>();

            if (syncMessagePoster != null)
            {
                List <IScene> FailedScenes = new List <IScene>();
                foreach (IScene scene in m_scenes)
                {
                    OSDMap map = new OSDMap();
                    map["Method"]    = "RegisterHandlers";
                    map["SessionID"] = scene.RegionInfo.RegionHandle.ToString();
                    OSDMap resp = syncMessagePoster.Get(map, UUID.Zero, scene.RegionInfo.RegionHandle);
                    if (resp != null && resp["Reregistered"].AsBoolean())
                    {
                        MainConsole.Instance.Info("[GridRegService]: Successfully reregistered with the grid service");
                    }
                    else
                    {
                        //It failed
                        MainConsole.Instance.Error("[GridRegService]: Failed to successfully reregistered with the grid service");
                        IGridService GridService = scene.RequestModuleInterface <IGridService>();
                        if (
                            !GridService.DeregisterRegion(scene.RegionInfo.RegionHandle, scene.RegionInfo.RegionID,
                                                          scene.RegionInfo.GridSecureSessionID))
                        {
                            MainConsole.Instance.Error("------------- REGION " + scene.RegionInfo.RegionName +
                                                       " IS DEAD ---------------");
                        }
                        else
                        {
                            //Register again...
                            MainConsole.Instance.Error("[GridRegService]: Forcefully reregistered with the grid service... standby");
                            if (!RegisterRegionWithGrid(scene, true))
                            {
                                MainConsole.Instance.Error("------------- REGION " + scene.RegionInfo.RegionName +
                                                           " IS DEAD ---------------");
                            }
                        }
                    }
                }
            }
            else
            {
                MainConsole.Instance.ErrorFormat("[RegisterRegionWithGrid]: ISyncMessagePosterService was null in m_timer_Elapsed;");
            }
        }
Пример #7
0
        private byte[] Deregister(Dictionary <string, object> request)
        {
            UUID regionID = UUID.Zero;

            if (request.ContainsKey("REGIONID"))
            {
                UUID.TryParse(request["REGIONID"].ToString(), out regionID);
            }
            else
            {
                MainConsole.Instance.WarnFormat("[GRID HANDLER]: no regionID in request to deregister region");
            }

            UUID sessionID = UUID.Zero;

            if (request.ContainsKey("SESSIONID"))
            {
                UUID.TryParse(request["SESSIONID"].ToString(), out sessionID);
            }
            else
            {
                MainConsole.Instance.WarnFormat("[GRID HANDLER]: no sessionID in request to deregister region");
            }
            GridRegion r = m_GridService.GetRegionByUUID(UUID.Zero, regionID);

            if (r != null & m_SessionID == r.RegionHandle.ToString())
            {
                bool result = m_GridService.DeregisterRegion(r.RegionHandle, regionID, sessionID);
                if (result)
                {
                    m_registry.RequestModuleInterface <IGridRegistrationService>().RemoveUrlsForClient(
                        sessionID.ToString());
                }
                if (result)
                {
                    return(SuccessResult());
                }
                else
                {
                    return(FailureResult());
                }
            }
            return(FailureResult());
        }
Пример #8
0
        byte[] Deregister(Dictionary <string, object> request)
        {
            UUID regionID = UUID.Zero;

            if (request.ContainsKey("REGIONID"))
            {
                UUID.TryParse(request["REGIONID"].ToString(), out regionID);
            }
            else
            {
                m_log.WarnFormat("[GRID HANDLER]: no regionID in request to deregister region");
            }

            bool result = m_GridService.DeregisterRegion(regionID);

            if (result)
            {
                return(SuccessResult());
            }
            else
            {
                return(FailureResult());
            }
        }
Пример #9
0
 public bool DeregisterRegion(UUID regionID)
 {
     return(m_GridService.DeregisterRegion(regionID));
 }
Пример #10
0
 public bool DeregisterRegion(GridRegion region)
 {
     return(m_localService.DeregisterRegion(region));
 }
Пример #11
0
 public bool DeregisterRegion(ulong regionHandle, UUID regionID, UUID SessionID)
 {
     return(m_localService.DeregisterRegion(regionHandle, regionID, SessionID));
 }