Esempio n. 1
0
        public void RegisterCaps(UUID agentID, Caps caps)
        {
            UUID capId = UUID.Random();

            caps.RegisterHandler("AgentPreferences",
                                 new RestStreamHandler("POST", "/CAPS/" + capId,
                                                       delegate(string request, string path, string param,
                                                                OSHttpRequest httpRequest, OSHttpResponse httpResponse)
            {
                return(UpdateAgentPreferences(request, path, param, agentID));
            }));
            caps.RegisterHandler("UpdateAgentLanguage",
                                 new RestStreamHandler("POST", "/CAPS/" + capId,
                                                       delegate(string request, string path, string param,
                                                                OSHttpRequest httpRequest, OSHttpResponse httpResponse)
            {
                return(UpdateAgentPreferences(request, path, param, agentID));
            }));
            caps.RegisterHandler("UpdateAgentInformation",
                                 new RestStreamHandler("POST", "/CAPS/" + capId,
                                                       delegate(string request, string path, string param,
                                                                OSHttpRequest httpRequest, OSHttpResponse httpResponse)
            {
                return(UpdateAgentPreferences(request, path, param, agentID));
            }));
        }
        public void RegisterCaps(UUID agentID, Caps caps)
        {
            IRequestHandler reqHandler
                = new RestHTTPHandler("GET", "/CAPS/" + UUID.Random(), HandleSimulatorFeaturesRequest);

            caps.RegisterHandler("SimulatorFeatures", reqHandler);
        }
Esempio n. 3
0
        public void RegisterCaps(UUID agentID, Caps caps)
        {
            MeshUploadHandler handler    = new MeshUploadHandler(m_scene, agentID, caps);
            IRequestHandler   reqHandler = new RestHTTPHandler("GET", "/CAPS/" + UUID.Random(), handler.MeshUploadFlag);

            caps.RegisterHandler("MeshUploadFlag", reqHandler);
        }
        private void OnRegisterCaps(UUID agentID, OpenSim.Framework.Communications.Capabilities.Caps caps)
        {
            string renderCap = CapsUtil.CreateCAPS("RenderMaterials", String.Empty);

            // OpenSimulator CAPs infrastructure seems to be somewhat hostile towards any CAP that requires both GET
            // and POST handlers, so we first set up a POST handler normally and then add a GET/PUT handler via MainServer

            IRequestHandler renderMaterialsPostHandler
                = new RestStreamHandler(
                      "POST", renderCap,
                      (request, path, param, httpRequest, httpResponse) => RenderMaterialsPostCap(request, agentID),
                      "RenderMaterials", null);

            MainServer.Instance.AddStreamHandler(renderMaterialsPostHandler);
            caps.RegisterHandler("RenderMaterials", renderMaterialsPostHandler);

            IRequestHandler renderMaterialsGetHandler
                = new RestStreamHandler("GET", renderCap,
                                        (request, path, param, httpRequest, httpResponse) => RenderMaterialsGetCap(request),
                                        "RenderMaterials", null);

            MainServer.Instance.AddStreamHandler(renderMaterialsGetHandler);

            // materials viewer seems to use either POST or PUT, so assign POST handler for PUT as well
            IRequestHandler renderMaterialsPutHandler
                = new RestStreamHandler("PUT", renderCap,
                                        (request, path, param, httpRequest, httpResponse) => RenderMaterialsPostCap(request, agentID),
                                        "RenderMaterials", null);

            MainServer.Instance.AddStreamHandler(renderMaterialsPutHandler);
        }
        public void RegisterCaps(UUID agentID, Caps caps)
        {
            UUID capID = UUID.Random();
            GroupMemberDataHandler handler =
                new GroupMemberDataHandler("/CAPS/" + capID + "/", "GroupMemberData", agentID, m_scene);

            caps.RegisterHandler("GroupMemberData", handler);
        }
Esempio n. 6
0
        public void RegisterCaps(UUID agentID, Caps caps)
        {
            UUID capuuid = UUID.Random();

            m_log.InfoFormat("[OBJECTADD]: {0}", "/CAPS/OA/" + capuuid + "/");

            caps.RegisterHandler("ObjectAdd",
                                 new RestHTTPHandler("POST", "/CAPS/OA/" + capuuid + "/",
                                                     delegate(Hashtable m_dhttpMethod)
            {
                return(ProcessAdd(m_dhttpMethod, agentID, caps));
            }));
        }
        public void RegisterCaps(UUID agentID, Caps caps)
        {
            if (!m_scene.RegionInfo.EstateSettings.IsEstateManager(agentID))
            {
                return;
            }

            UUID capID = UUID.Random();

            //            m_log.DebugFormat("[REGION CONSOLE]: /CAPS/{0} in region {1}", capID, m_scene.RegionInfo.RegionName);
            caps.RegisterHandler(
                "SimConsoleAsync",
                new ConsoleHandler("/CAPS/" + capID + "/", "SimConsoleAsync", agentID, this, m_scene));
        }
Esempio n. 8
0
        public void RegisterCaps(UUID agentID, Caps caps)
        {
            UUID capuuid = UUID.Random();
            
            m_log.InfoFormat("[OBJECTADD]: {0}", "/CAPS/OA/" + capuuid + "/");

            IRequestHandler handler = 
                new RestHTTPHandler("POST", "/CAPS/OA/" + capuuid + "/",
                        delegate(Hashtable m_dhttpMethod)
                        {
                            return ProcessAdd(m_dhttpMethod, agentID, caps);
                        });

            caps.RegisterHandler("ObjectAdd", handler);
        }
Esempio n. 9
0
        public void RegisterCaps(UUID agentID, Caps caps)
        {
            string homeLocationCap = CapsUtil.CreateCAPS("HomeLocation", String.Empty);

            // OpenSimulator CAPs infrastructure seems to be somewhat hostile towards any CAP that requires both GET
            // and POST handlers, so we first set up a POST handler normally and then add a GET/PUT handler via MainServer

            IRequestHandler homeLocationRequestHandler
                = new RestStreamHandler(
                      "POST", homeLocationCap,
                      (request, path, param, httpRequest, httpResponse) => HomeLocation(request, agentID),
                      "HomeLocation", null);

            MainServer.Instance.AddStreamHandler(homeLocationRequestHandler);
            caps.RegisterHandler("HomeLocation", homeLocationRequestHandler);
        }
        public void OnRegisterCaps(UUID agentID, Caps caps)
        {
            m_log.DebugFormat("[EVENTQUEUE]: Register caps for client {0} in region {1}", agentID, m_Scene.RegionInfo.RegionName);

            lock (queues)
            {
                EventQueueGetRequestHandler queue;
                if (queues.TryGetValue(agentID, out queue) == true)
                {
                    // shouldn't happen
                    m_log.ErrorFormat("[EVENTQUEUE]: OnRegisterCaps and an EQ already exists for client {0} in region {1}!", agentID, m_Scene.RegionInfo.RegionName);
                }
                else
                {
                    string capsUrl = "/CAPS/EQG/" + UUID.Random().ToString() + "/";
                    queue = new EventQueueGetRequestHandler("POST", capsUrl, agentID, caps, DebugLevel);
                    queues.Add(agentID, queue);
                }

                caps.RegisterHandler("EventQueueGet", queue);
            }
        }
        public void RegisterCaps(UUID agentID, Caps caps)
        {
            IRequestHandler reqHandler
                = new RestHTTPHandler("GET", "/CAPS/" + UUID.Random(), HandleSimulatorFeaturesRequest);

            caps.RegisterHandler("SimulatorFeatures", reqHandler);
        }
Esempio n. 12
0
        public void OnRegisterCaps(UUID agentID, Caps caps)
        {
            m_log.DebugFormat("[EVENTQUEUE]: Register caps for client {0} in region {1}", agentID, m_Scene.RegionInfo.RegionName);

            lock (queues)
            {
                EventQueueGetRequestHandler queue;
                if (queues.TryGetValue(agentID, out queue) == true)
                {
                    // shouldn't happen
                    m_log.ErrorFormat("[EVENTQUEUE]: OnRegisterCaps and an EQ already exists for client {0} in region {1}!", agentID, m_Scene.RegionInfo.RegionName);
                }
                else
                {
                    string capsUrl = "/CAPS/EQG/" + UUID.Random().ToString() + "/";
                    queue = new EventQueueGetRequestHandler("POST", capsUrl, agentID, caps, DebugLevel);
                    queues.Add(agentID, queue);
                }

                caps.RegisterHandler("EventQueueGet", queue);
            }
        }
Esempio n. 13
0
        public void RegisterCaps(UUID agentID, Caps caps)
        {
            if (!m_scene.RegionInfo.EstateSettings.IsEstateManager(agentID))
                return;

            UUID capID = UUID.Random();

            //            m_log.DebugFormat("[REGION CONSOLE]: /CAPS/{0} in region {1}", capID, m_scene.RegionInfo.RegionName);
            caps.RegisterHandler(
                "SimConsoleAsync",
                new ConsoleHandler("/CAPS/" + capID + "/", "SimConsoleAsync", agentID, this, m_scene));
        }
Esempio n. 14
0
        public void OnRegisterCaps(UUID agentID, Caps caps)
        {
            // Register an event queue for the client

            //m_log.DebugFormat(
            //    "[EVENTQUEUE]: OnRegisterCaps: agentID {0} caps {1} region {2}",
            //    agentID, caps, m_scene.RegionInfo.RegionName);

            // Let's instantiate a Queue for this agent right now
            TryGetQueue(agentID);

            string capsBase          = "/CAPS/EQG/";
            UUID   EventQueueGetUUID = UUID.Zero;

            lock (m_AvatarQueueUUIDMapping)
            {
                // Reuse open queues.  The client does!
                if (m_AvatarQueueUUIDMapping.ContainsKey(agentID))
                {
                    m_log.DebugFormat("[EVENTQUEUE]: Found Existing UUID!");
                    EventQueueGetUUID = m_AvatarQueueUUIDMapping[agentID];
                }
                else
                {
                    EventQueueGetUUID = UUID.Random();
                    //m_log.DebugFormat("[EVENTQUEUE]: Using random UUID!");
                }
            }

            lock (m_QueueUUIDAvatarMapping)
            {
                if (!m_QueueUUIDAvatarMapping.ContainsKey(EventQueueGetUUID))
                {
                    m_QueueUUIDAvatarMapping.Add(EventQueueGetUUID, agentID);
                }
            }

            lock (m_AvatarQueueUUIDMapping)
            {
                if (!m_AvatarQueueUUIDMapping.ContainsKey(agentID))
                {
                    m_AvatarQueueUUIDMapping.Add(agentID, EventQueueGetUUID);
                }
            }

            // Register this as a caps handler
            caps.RegisterHandler("EventQueueGet",
                                 new RestHTTPHandler("POST", capsBase + EventQueueGetUUID.ToString() + "/",
                                                     delegate(Hashtable m_dhttpMethod)
            {
                return(ProcessQueue(m_dhttpMethod, agentID, caps));
            }));

            // This will persist this beyond the expiry of the caps handlers
            m_scene.CommsManager.HttpServer.AddHTTPHandler(
                capsBase + EventQueueGetUUID.ToString() + "/", EventQueuePath2);

            Random rnd = new Random(Environment.TickCount);

            lock (m_ids)
            {
                if (!m_ids.ContainsKey(agentID))
                {
                    m_ids.Add(agentID, rnd.Next(30000000));
                }
            }
        }
        public void RegisterCaps(UUID agentID, Caps caps)
        {
            if(!m_enabled)
                return;

            UUID capID = UUID.Random();

//            m_log.Debug("[NEW FILE AGENT INVENTORY VARIABLE PRICE]: /CAPS/" + capID);
            caps.RegisterHandler(
                "NewFileAgentInventoryVariablePrice",
                new LLSDStreamhandler<LLSDAssetUploadRequest, LLSDNewFileAngentInventoryVariablePriceReplyResponse>(
                    "POST",
                    "/CAPS/" + capID.ToString(),
                    req => NewAgentInventoryRequest(req, agentID),
                    "NewFileAgentInventoryVariablePrice",
                    agentID.ToString()));         
        }
Esempio n. 16
0
 public void RegisterCaps(UUID agentID, Caps caps)
 {
     MeshUploadHandler handler = new MeshUploadHandler(m_scene, agentID, caps);
     IRequestHandler reqHandler = new RestHTTPHandler("GET", "/CAPS/" + UUID.Random(), handler.MeshUploadFlag);
     caps.RegisterHandler("MeshUploadFlag", reqHandler);
 }
Esempio n. 17
0
 public void RegisterCaps(UUID agentID, Caps caps)
 {
     UUID capID = UUID.Random();
     GroupMemberDataHandler handler = 
         new GroupMemberDataHandler("/CAPS/" + capID + "/", "GroupMemberData", agentID, m_scene);
     caps.RegisterHandler("GroupMemberData", handler);
 }
Esempio n. 18
0
        public void RegisterCaps(UUID agentID, Caps caps)
        {
            string homeLocationCap = CapsUtil.CreateCAPS("HomeLocation", String.Empty);

            // OpenSimulator CAPs infrastructure seems to be somewhat hostile towards any CAP that requires both GET
            // and POST handlers, so we first set up a POST handler normally and then add a GET/PUT handler via MainServer

            IRequestHandler homeLocationRequestHandler
                = new RestStreamHandler(
                    "POST", homeLocationCap,
                    (request, path, param, httpRequest, httpResponse) => HomeLocation(request, agentID),
                    "HomeLocation", null);

            MainServer.Instance.AddStreamHandler(homeLocationRequestHandler);
            caps.RegisterHandler("HomeLocation", homeLocationRequestHandler);
        }