public void EstablishAgentCommunicationMessage() { EstablishAgentCommunicationMessage s = new EstablishAgentCommunicationMessage(); s.Address = testIP; s.AgentID = UUID.Random(); s.Port = 3000; s.SeedCapability = testURI; OSDMap map = s.Serialize(); EstablishAgentCommunicationMessage t = new EstablishAgentCommunicationMessage(); t.Deserialize(map); Assert.AreEqual(s.Address, t.Address); Assert.AreEqual(s.AgentID, t.AgentID); Assert.AreEqual(s.Port, t.Port); Assert.AreEqual(s.SeedCapability, t.SeedCapability); }
private bool RezChildAgentReplyHandler(LLAgent agent, OSDMap map, out IPAddress simHost, out int simPort, out Uri seedCapability) { simHost = null; simPort = 0; seedCapability = null; if (map["connect"].AsBoolean()) { #region Response Parsing string simHostStr = map["sim_host"].AsString(); if (!IPAddress.TryParse(simHostStr, out simHost)) { m_log.Warn("rez_avatar/response had an invalid sim_host: " + simHostStr); return false; } simPort = map["sim_port"].AsInteger(); UUID regionID = map["region_id"].AsUUID(); uint regionX = map["region_x"].AsUInteger(); uint regionY = map["region_y"].AsUInteger(); ulong regionHandle = Utils.UIntsToLong(regionX, regionY); seedCapability = map["region_seed_capability"].AsUri(); if (seedCapability == null) { m_log.Warn("rez_avatar/response had an invalid region_seed_capability: " + map["region_seed_capability"].AsString()); return false; } #endregion Response Parsing #region EnableSimulator EnableSimulatorMessage.SimulatorInfoBlock block = new EnableSimulatorMessage.SimulatorInfoBlock(); block.IP = simHost; block.Port = simPort; block.RegionHandle = regionHandle; EnableSimulatorMessage enable = new EnableSimulatorMessage(); enable.Simulators = new EnableSimulatorMessage.SimulatorInfoBlock[1]; enable.Simulators[0] = block; m_log.Debug("Sending EnableSimulator message for scene " + regionID + " to " + agent.Name); agent.EventQueue.QueueEvent("EnableSimulator", enable.Serialize()); #endregion EnableSimulator #region EstablishAgentCommunication // Send an EstablishAgentCommunication event down to the client to get the neighbor event queue established EstablishAgentCommunicationMessage eacMessage = new EstablishAgentCommunicationMessage(); eacMessage.AgentID = regionID; eacMessage.Address = simHost; eacMessage.Port = simPort; eacMessage.SeedCapability = seedCapability; m_log.Debug("Sending EstablishAgentCommunication message for seedcap " + seedCapability + " to " + agent.Name); agent.EventQueue.QueueEvent("EstablishAgentCommunication", eacMessage.Serialize()); #endregion EstablishAgentCommunication return true; } else { m_log.Warn("rez_avatar/request from " + m_scene.Name + " for child agent " + agent.Name + " failed: " + map["message"].AsString()); return false; } }