Exemplo n.º 1
0
        public void StopHttpRequestsForScript(UUID id)
        {
            List <UUID> keysToRemove = new List <UUID>();

            m_pendingRequests.ForEach(delegate(HttpRequestClass req)
            {
                if (req.ItemID == id)
                {
                    req.Stop();

                    keysToRemove.Add(req.ReqID);
                }
            });

            keysToRemove.ForEach(keyToRemove => m_pendingRequests.Remove(keyToRemove));
        }
Exemplo n.º 2
0
        private void ClientClosed(UUID agentID, Scene scene)
        {
            //m_log.DebugFormat("[EVENTQUEUE]: Closed client {0} in region {1}", agentID, m_scene.RegionInfo.RegionName);

            queues.Remove(agentID);

            List <UUID> removeitems = new List <UUID>();

            m_AvatarQueueUUIDMapping.Remove(agentID);

            UUID searchval = UUID.Zero;

            removeitems.Clear();

            m_QueueUUIDAvatarMapping.ForEach(delegate(KeyValuePair <UUID, UUID> kvp)
            {
                searchval = m_QueueUUIDAvatarMapping[kvp.Key];

                if (searchval == agentID)
                {
                    removeitems.Add(kvp.Key);
                }
            });

            foreach (UUID ky in removeitems)
            {
                m_QueueUUIDAvatarMapping.Remove(ky);
            }

            // m_log.DebugFormat("[EVENTQUEUE]: Deleted queues for {0} in region {1}", agentID, m_scene.RegionInfo.RegionName);
        }
Exemplo n.º 3
0
        private void OnClientClosed(UUID agentID, Scene scene)
        {
            ScenePresence sp = scene.GetScenePresence(agentID);

            if (sp != null && !sp.IsChildAgent)
            {
                // do this for root agents closing out
                StatusChange(agentID, false);
            }

            /* check if there is still an agent somewhere in that case we keep the cache stored */
            try
            {
                m_Scenes.ForEach(delegate(Scene s)
                {
                    s.TryGetScenePresence(agentID, out sp);
                    if ((sp != null) && !sp.IsChildAgent && (s != scene))
                    {
                        throw new ThreadedClasses.ReturnValueException <bool>(true);
                    }
                });
            }
            catch (ThreadedClasses.ReturnValueException <bool> )
            {
                /* still somewhere that agent */
                return;
            }

            m_Friends.Remove(agentID);
        }
Exemplo n.º 4
0
        /**********************************************
         * Remote Data Reply
         *
         * Response to RPC message
         *
         *********************************************/

        public void RemoteDataReply(string channel, string message_id, string sdata, int idata)
        {
            UUID message_key = new UUID(message_id);
            UUID channel_key = new UUID(channel);

            RPCRequestInfo rpcInfo = null;

            if (message_key == UUID.Zero)
            {
                m_rpcPendingResponses.ForEach(delegate(RPCRequestInfo oneRpcInfo)
                {
                    if (oneRpcInfo.GetChannelKey() == channel_key)
                    {
                        rpcInfo = oneRpcInfo;
                    }
                });
            }
            else
            {
                m_rpcPendingResponses.TryGetValue(message_key, out rpcInfo);
            }

            if (rpcInfo != null)
            {
                rpcInfo.SetStrRetval(sdata);
                rpcInfo.SetIntRetval(idata);
                rpcInfo.SetProcessed(true);
                m_rpcPendingResponses.Remove(message_key);
            }
            else
            {
                m_log.Warn("[XML RPC MODULE]: Channel or message_id not found");
            }
        }
Exemplo n.º 5
0
        public void RemoveRegion(Scene scene)
        {
            m_scenel.Remove(scene.RegionInfo.RegionHandle);

            scene.EventManager.OnAvatarKilled            -= KillAvatar;
            scene.EventManager.OnAvatarEnteringNewParcel -= AvatarEnteringParcel;
        }
Exemplo n.º 6
0
        public void UnSetTimerEvents(uint m_localID, UUID m_itemID)
        {
            // Remove from timer
            string key = MakeTimerKey(m_localID, m_itemID);

            Timers.Remove(key);
        }
        void OnClientClosed(UUID clientID, Scene scene)
        {
            try
            {
                m_Scenes.ForEach(delegate(Scene s)
                {
                    ScenePresence sp;
                    s.TryGetScenePresence(clientID, out sp);
                    if ((sp != null) && !sp.IsChildAgent && (s != scene))
                    {
                        m_log.DebugFormat("[INVENTORY CACHE]: OnClientClosed in {0}, but user {1} still in sim. Keeping inventoryURL in cache",
                                          scene.RegionInfo.RegionName, clientID);
                        throw new ThreadedClasses.ReturnValueException <bool>(true);
                    }
                });
            }
            catch (ThreadedClasses.ReturnValueException <bool> )
            {
                /* still somewhere that agent */
                return;
            }

            string url;

            if (m_InventoryURLs.Remove(clientID, out url))
            {
                m_log.DebugFormat("[HG INVENTORY CONNECTOR]: Removed {0} from the cache of inventory URLs for agent {1}", url, clientID.ToString());
            }
        }
Exemplo n.º 8
0
        /// <summary>
        ///
        /// </summary>
        /// <param name="objectID"></param>
        /// <param name="sender"></param>
        /// <param name="subject"></param>
        /// <returns></returns>
        public Email GetNextEmail(UUID objectID, string sender, string subject)
        {
            EmailQueue queue = m_MailQueues.GetOrAddIfNotExists(objectID, delegate() { return(new EmailQueue()); });

            queue.m_LastCall = DateTime.Now;

            // Hopefully this isn't too time consuming.  If it is, we can always push it into a worker thread.
            DateTime now = DateTime.Now;

            foreach (UUID uuid in m_MailQueues.Keys)
            {
                if (m_MailQueues.TryGetValue(uuid, out queue))
                {
                    if ((now - queue.m_LastCall) > m_QueueTimeout)
                    {
                        m_MailQueues.Remove(uuid);
                    }
                }
            }

            queue = m_MailQueues.GetOrAddIfNotExists(objectID, delegate() { return(new EmailQueue()); });
            return(queue.m_Queue.RemoveMatch(delegate(Email m)
            {
                return ((sender == null || sender.Equals("") || sender.Equals(m.sender)) &&
                        (subject == null || subject.Equals("") || subject.Equals(m.subject)));
            }));
        }
Exemplo n.º 9
0
        private static bool RemoveThread(int threadID)
        {
            ThreadWatchdogInfo twi;

            if (m_threads.Remove(threadID, out twi))
            {
                m_log.DebugFormat(
                    "[WATCHDOG]: Removing thread {0}, ID {1}", twi.Thread.Name, twi.Thread.ManagedThreadId);
                twi.Cleanup();
                return(true);
            }
            m_log.WarnFormat(
                "[WATCHDOG]: Requested to remove thread with ID {0} but this is not being monitored", threadID);

            return(false);
        }
Exemplo n.º 10
0
        // Delete channels based on itemID
        // for when a script is deleted
        public void DeleteChannels(UUID itemID)
        {
            ArrayList tmp = new ArrayList();

            m_openChannels.ForEach(delegate(RPCChannelInfo li)
            {
                if (li.GetItemID().Equals(itemID))
                {
                    tmp.Add(itemID);
                }
            });

            foreach (UUID uuid in tmp)
            {
                m_openChannels.Remove(uuid);
            }
        }
Exemplo n.º 11
0
 /// <summary>
 /// Removes the http server listening on the given port.
 /// </summary>
 /// <remarks>
 /// It is the responsibility of the caller to do clean up.
 /// </remarks>
 /// <param name='port'></param>
 /// <returns></returns>
 public static bool RemoveHttpServer(uint port)
 {
     if (instance != null && instance.Port == port)
     {
         instance = null;
     }
     return(m_Servers.Remove(port));
 }
        /// <summary>
        /// Removes the given child subfolder.
        /// </summary>
        /// <param name="folderID"></param>
        /// <returns>
        /// The folder removed, or null if the folder was not present.
        /// </returns>
        public InventoryFolderImpl RemoveChildFolder(UUID folderID)
        {
            InventoryFolderImpl removedFolder = null;

            m_childFolders.Remove(folderID, out removedFolder);

            return(removedFolder);
        }
Exemplo n.º 13
0
        void IRegionModuleBase.RemoveRegion(Scene scene)
        {
            if (!Enabled)
            {
                return;
            }

            regions.Remove(scene.RegionInfo.RegionID);
        }
        ///<summary>
        ///
        ///</summary>
        public void RemoveRegion(Scene scene)
        {
            if (!m_enabled)
            {
                return;
            }

            m_scenes.Remove(scene.RegionInfo.RegionID);
        }
Exemplo n.º 15
0
 /// <summary>
 /// Can be called from other modules.
 /// </summary>
 /// <param name="scene"></param>
 public void RemoveScene(Scene scene)
 {
     if (!m_scenes.Remove(scene.RegionInfo.RegionID))
     {
         m_log.WarnFormat(
             "[LOCAL SIMULATION CONNECTOR]: Tried to remove region {0} but it was not present",
             scene.RegionInfo.RegionName);
     }
 }
Exemplo n.º 16
0
        public void RemoveCompletedRequest(UUID id)
        {
            RPCRequestInfo tmp;

            if (m_rpcPending.Remove(id, out tmp))
            {
                m_rpcPendingResponses.Add(id, tmp);
            }
        }
Exemplo n.º 17
0
        // -----------------------------------------------------------------
        /// <summary>
        ///
        /// </summary>
        // -----------------------------------------------------------------
        public bool DestroyStore(UUID storeID)
        {
            if (!m_enabled)
            {
                return(false);
            }

            return(m_JsonValueStore.Remove(storeID));
        }
Exemplo n.º 18
0
        /* TODO: Figure out how PollServiceHTTPHandler can access the request headers
         * in order to use m_AllowedOrigin as a regular expression
         * private Hashtable CheckOrigin(Hashtable headers, Hashtable result)
         * {
         *  if (!string.IsNullOrEmpty(m_AllowedOrigin))
         *  {
         *      if (headers.ContainsKey("origin"))
         *      {
         *          string origin = headers["origin"].ToString();
         *          if (Regex.IsMatch(origin, m_AllowedOrigin))
         *              result["access_control_allow_origin"] = origin;
         *      }
         *  }
         *  return result;
         * }
         */

        private void DoExpire()
        {
            List <UUID> expired = new List <UUID>();

            foreach (KeyValuePair <UUID, ConsoleConnection> kvp in m_Connections)
            {
                if (System.Environment.TickCount - kvp.Value.last > 500000)
                {
                    expired.Add(kvp.Key);
                }
            }

            foreach (UUID id in expired)
            {
                m_Connections.Remove(id);
                CloseConnection(id);
            }
        }
Exemplo n.º 19
0
        public void RemoveRegion(Scene scene)
        {
            if (!m_Enabled)
            {
                return;
            }

            m_LocalCache[scene.RegionInfo.RegionID].Clear();
            m_LocalCache.Remove(scene.RegionInfo.RegionID);
        }
Exemplo n.º 20
0
        public bool RemoveAndRelease(string name)
        {
            BSActor beingRemoved;

            if (m_actors.Remove(name, out beingRemoved))
            {
                beingRemoved.Dispose();
                return(true);
            }
            return(false);
        }
Exemplo n.º 21
0
        public void ReleaseURL(string url)
        {
            UrlData data;

            if (!m_UrlMap.Remove(url, out data))
            {
                return;
            }

            foreach (UUID req in data.requests.Keys)
            {
                m_RequestMap.Remove(req);
            }

            m_log.DebugFormat(
                "[URL MODULE]: Releasing url {0} for {1} in {2}",
                url, data.itemID, data.hostID);

            RemoveUrl(data);
            m_UrlMap.Remove(url);
        }
Exemplo n.º 22
0
        public bool Delete(UUID regionID)
        {
            if (m_useStaticInstance && Instance != this)
            {
                return(Instance.Delete(regionID));
            }

//            m_log.DebugFormat("[NULL REGION DATA]: Deleting region {0}", regionID);

            m_regionData.Remove(regionID);

            return(true);
        }
Exemplo n.º 23
0
        public bool RemoveXferUploader(UUID transactionID)
        {
            bool removed = XferUploaders.Remove(transactionID);

            if (!removed)
            {
                m_log.WarnFormat(
                    "[AGENT ASSET TRANSACTIONS]: Received request to remove xfer uploader with transaction ID {0} but none found",
                    transactionID);
            }

            return(removed);
        }
Exemplo n.º 24
0
 public void Remove(UUID itemID, int handle)
 {
     /* standard foreach is implemented in RwLockedDictionary to make a copy first */
     foreach (KeyValuePair <int, ThreadedClasses.RwLockedList <ListenerInfo> > lis
              in m_listeners)
     {
         /* standard foreach is implemented in RwLockedDictionary to make a copy first */
         foreach (ListenerInfo li in lis.Value)
         {
             if (li.GetItemID().Equals(itemID) &&
                 li.GetHandle().Equals(handle))
             {
                 lis.Value.Remove(li);
                 if (lis.Value.Count == 0)
                 {
                     m_listeners.Remove(lis.Key);
                     Interlocked.Decrement(ref m_curlisteners);
                 }
                 // there should be only one, so we bail out early
                 return;
             }
         }
     }
 }
        /// <summary>
        /// Deletes an item if it exists in this folder or any children
        /// </summary>
        /// <param name="folderID"></param>
        /// <returns></returns>
        public bool DeleteItem(UUID itemID)
        {
            if (Items.Remove(itemID))
            {
                return(true);
            }

            try
            {
                m_childFolders.ForEach(delegate(InventoryFolderImpl folder)
                {
                    if (folder.DeleteItem(itemID))
                    {
                        throw new ThreadedClasses.ReturnValueException <bool>(true);
                    }
                });
            }
            catch (ThreadedClasses.ReturnValueException <bool> )
            {
                return(true);
            }

            return(false);
        }
Exemplo n.º 26
0
 public void RemoveRegionEnvironmentSettings(UUID regionUUID)
 {
     EnvironmentSettings.Remove(regionUUID);
 }
Exemplo n.º 27
0
 public bool Remove(string key)
 {
     return(m_map.Remove(key));
 }
        /// <summary>
        /// Remove the given agent asset transactions. This should be called
        /// when a client is departing from a scene (and hence won't be making
        /// any more transactions here).
        /// </summary>
        /// <param name="userID"></param>
        public void RemoveAgentAssetTransactions(UUID userID)
        {
            // m_log.DebugFormat("Removing agent asset transactions structure for agent {0}", userID);

            AgentTransactions.Remove(userID);
        }
Exemplo n.º 29
0
 /// <summary>
 /// Remove the cap handler for a capability.
 /// </summary>
 /// <param name="capsName">name of the capability of the cap
 /// handler to be removed</param>
 public void Remove(string capsName)
 {
     m_httpListener.RemoveStreamHandler("POST", m_capsHandlers[capsName].Path);
     m_httpListener.RemoveStreamHandler("GET", m_capsHandlers[capsName].Path);
     m_capsHandlers.Remove(capsName);
 }
Exemplo n.º 30
0
 public bool DeleteGroup(UUID groupID)
 {
     return(m_groups.Remove(groupID));
 }