diff options
author | Melanie Thielker | 2010-05-06 00:34:49 +0200 |
---|---|---|
committer | Melanie | 2010-05-05 22:15:32 +0100 |
commit | 2ebe1482664533bb9b9040134fe4a23fbc939d51 (patch) | |
tree | 41c7c99c6da6ecd1ff217730e1dd95dd680ec5da | |
parent | Add a XMLRPC method to remotely set the login level for the LLLoginService. (diff) | |
download | opensim-SC_OLD-2ebe1482664533bb9b9040134fe4a23fbc939d51.zip opensim-SC_OLD-2ebe1482664533bb9b9040134fe4a23fbc939d51.tar.gz opensim-SC_OLD-2ebe1482664533bb9b9040134fe4a23fbc939d51.tar.bz2 opensim-SC_OLD-2ebe1482664533bb9b9040134fe4a23fbc939d51.tar.xz |
Plumb the viewer version string through into AgentCircuitData. Now all that
is left os to figure out what black magic turns AgentCircuitData into
AgentData and then copy that into the ScenePresence, where m_Viewer is
already added with this commit and waits for the data.
-rw-r--r-- | OpenSim/Framework/AgentCircuitData.cs | 11 | ||||
-rw-r--r-- | OpenSim/Region/Framework/Scenes/ScenePresence.cs | 6 | ||||
-rw-r--r-- | OpenSim/Server/Handlers/Login/LLLoginHandlers.cs | 4 | ||||
-rw-r--r-- | OpenSim/Services/Interfaces/ILoginService.cs | 2 | ||||
-rw-r--r-- | OpenSim/Services/LLLoginService/LLLoginService.cs | 13 |
5 files changed, 27 insertions, 9 deletions
diff --git a/OpenSim/Framework/AgentCircuitData.cs b/OpenSim/Framework/AgentCircuitData.cs index 353e5bf..783a833 100644 --- a/OpenSim/Framework/AgentCircuitData.cs +++ b/OpenSim/Framework/AgentCircuitData.cs | |||
@@ -108,6 +108,11 @@ namespace OpenSim.Framework | |||
108 | public string ServiceSessionID = string.Empty; | 108 | public string ServiceSessionID = string.Empty; |
109 | 109 | ||
110 | /// <summary> | 110 | /// <summary> |
111 | /// Viewer's version string | ||
112 | /// </summary> | ||
113 | public string Viewer; | ||
114 | |||
115 | /// <summary> | ||
111 | /// Position the Agent's Avatar starts in the region | 116 | /// Position the Agent's Avatar starts in the region |
112 | /// </summary> | 117 | /// </summary> |
113 | public Vector3 startpos; | 118 | public Vector3 startpos; |
@@ -136,6 +141,7 @@ namespace OpenSim.Framework | |||
136 | BaseFolder = new UUID(cAgent.BaseFolder); | 141 | BaseFolder = new UUID(cAgent.BaseFolder); |
137 | CapsPath = cAgent.CapsPath; | 142 | CapsPath = cAgent.CapsPath; |
138 | ChildrenCapSeeds = cAgent.ChildrenCapSeeds; | 143 | ChildrenCapSeeds = cAgent.ChildrenCapSeeds; |
144 | Viewer = cAgent.Viewer; | ||
139 | } | 145 | } |
140 | 146 | ||
141 | /// <summary> | 147 | /// <summary> |
@@ -173,6 +179,7 @@ namespace OpenSim.Framework | |||
173 | args["service_session_id"] = OSD.FromString(ServiceSessionID); | 179 | args["service_session_id"] = OSD.FromString(ServiceSessionID); |
174 | args["start_pos"] = OSD.FromString(startpos.ToString()); | 180 | args["start_pos"] = OSD.FromString(startpos.ToString()); |
175 | args["appearance_serial"] = OSD.FromInteger(Appearance.Serial); | 181 | args["appearance_serial"] = OSD.FromInteger(Appearance.Serial); |
182 | args["viewer"] = OSD.FromString(Viewer); | ||
176 | 183 | ||
177 | if (Appearance != null) | 184 | if (Appearance != null) |
178 | { | 185 | { |
@@ -272,6 +279,8 @@ namespace OpenSim.Framework | |||
272 | SessionID = args["session_id"].AsUUID(); | 279 | SessionID = args["session_id"].AsUUID(); |
273 | if (args["service_session_id"] != null) | 280 | if (args["service_session_id"] != null) |
274 | ServiceSessionID = args["service_session_id"].AsString(); | 281 | ServiceSessionID = args["service_session_id"].AsString(); |
282 | if (args["viewer"] != null) | ||
283 | Viewer = args["viewer"].AsString(); | ||
275 | 284 | ||
276 | if (args["start_pos"] != null) | 285 | if (args["start_pos"] != null) |
277 | Vector3.TryParse(args["start_pos"].AsString(), out startpos); | 286 | Vector3.TryParse(args["start_pos"].AsString(), out startpos); |
@@ -339,6 +348,7 @@ namespace OpenSim.Framework | |||
339 | public float startposx; | 348 | public float startposx; |
340 | public float startposy; | 349 | public float startposy; |
341 | public float startposz; | 350 | public float startposz; |
351 | public string Viewer; | ||
342 | 352 | ||
343 | public sAgentCircuitData() | 353 | public sAgentCircuitData() |
344 | { | 354 | { |
@@ -360,6 +370,7 @@ namespace OpenSim.Framework | |||
360 | BaseFolder = cAgent.BaseFolder.Guid; | 370 | BaseFolder = cAgent.BaseFolder.Guid; |
361 | CapsPath = cAgent.CapsPath; | 371 | CapsPath = cAgent.CapsPath; |
362 | ChildrenCapSeeds = cAgent.ChildrenCapSeeds; | 372 | ChildrenCapSeeds = cAgent.ChildrenCapSeeds; |
373 | Viewer = cAgent.Viewer; | ||
363 | } | 374 | } |
364 | } | 375 | } |
365 | } | 376 | } |
diff --git a/OpenSim/Region/Framework/Scenes/ScenePresence.cs b/OpenSim/Region/Framework/Scenes/ScenePresence.cs index 3efb45f..b4bbbe3 100644 --- a/OpenSim/Region/Framework/Scenes/ScenePresence.cs +++ b/OpenSim/Region/Framework/Scenes/ScenePresence.cs | |||
@@ -218,6 +218,7 @@ namespace OpenSim.Region.Framework.Scenes | |||
218 | private bool m_followCamAuto; | 218 | private bool m_followCamAuto; |
219 | 219 | ||
220 | private int m_movementUpdateCount; | 220 | private int m_movementUpdateCount; |
221 | private string m_Viewer = String.Empty; | ||
221 | 222 | ||
222 | private const int NumMovementsBetweenRayCast = 5; | 223 | private const int NumMovementsBetweenRayCast = 5; |
223 | 224 | ||
@@ -651,6 +652,11 @@ namespace OpenSim.Region.Framework.Scenes | |||
651 | set { m_flyDisabled = value; } | 652 | set { m_flyDisabled = value; } |
652 | } | 653 | } |
653 | 654 | ||
655 | public string Viewer | ||
656 | { | ||
657 | get { return m_Viewer; } | ||
658 | } | ||
659 | |||
654 | #endregion | 660 | #endregion |
655 | 661 | ||
656 | #region Constructor(s) | 662 | #region Constructor(s) |
diff --git a/OpenSim/Server/Handlers/Login/LLLoginHandlers.cs b/OpenSim/Server/Handlers/Login/LLLoginHandlers.cs index 83b3e31..c9bf996 100644 --- a/OpenSim/Server/Handlers/Login/LLLoginHandlers.cs +++ b/OpenSim/Server/Handlers/Login/LLLoginHandlers.cs | |||
@@ -86,7 +86,7 @@ namespace OpenSim.Server.Handlers.Login | |||
86 | m_log.InfoFormat("[LOGIN]: XMLRPC Login Requested for {0} {1}, starting in {2}, using {3}", first, last, startLocation, clientVersion); | 86 | m_log.InfoFormat("[LOGIN]: XMLRPC Login Requested for {0} {1}, starting in {2}, using {3}", first, last, startLocation, clientVersion); |
87 | 87 | ||
88 | LoginResponse reply = null; | 88 | LoginResponse reply = null; |
89 | reply = m_LocalService.Login(first, last, passwd, startLocation, scopeID, remoteClient); | 89 | reply = m_LocalService.Login(first, last, passwd, startLocation, scopeID, clientVersion, remoteClient); |
90 | 90 | ||
91 | XmlRpcResponse response = new XmlRpcResponse(); | 91 | XmlRpcResponse response = new XmlRpcResponse(); |
92 | response.Value = reply.ToHashtable(); | 92 | response.Value = reply.ToHashtable(); |
@@ -157,7 +157,7 @@ namespace OpenSim.Server.Handlers.Login | |||
157 | m_log.Info("[LOGIN]: LLSD Login Requested for: '" + map["first"].AsString() + "' '" + map["last"].AsString() + "' / " + startLocation); | 157 | m_log.Info("[LOGIN]: LLSD Login Requested for: '" + map["first"].AsString() + "' '" + map["last"].AsString() + "' / " + startLocation); |
158 | 158 | ||
159 | LoginResponse reply = null; | 159 | LoginResponse reply = null; |
160 | reply = m_LocalService.Login(map["first"].AsString(), map["last"].AsString(), map["passwd"].AsString(), startLocation, scopeID, remoteClient); | 160 | reply = m_LocalService.Login(map["first"].AsString(), map["last"].AsString(), map["passwd"].AsString(), startLocation, scopeID, String.Empty, remoteClient); |
161 | return reply.ToOSDMap(); | 161 | return reply.ToOSDMap(); |
162 | 162 | ||
163 | } | 163 | } |
diff --git a/OpenSim/Services/Interfaces/ILoginService.cs b/OpenSim/Services/Interfaces/ILoginService.cs index 513ab4a..9e57339 100644 --- a/OpenSim/Services/Interfaces/ILoginService.cs +++ b/OpenSim/Services/Interfaces/ILoginService.cs | |||
@@ -47,7 +47,7 @@ namespace OpenSim.Services.Interfaces | |||
47 | 47 | ||
48 | public interface ILoginService | 48 | public interface ILoginService |
49 | { | 49 | { |
50 | LoginResponse Login(string firstName, string lastName, string passwd, string startLocation, UUID scopeID, IPEndPoint clientIP); | 50 | LoginResponse Login(string firstName, string lastName, string passwd, string startLocation, UUID scopeID, string clientVersion, IPEndPoint clientIP); |
51 | Hashtable SetLevel(string firstName, string lastName, string passwd, int level, IPEndPoint clientIP); | 51 | Hashtable SetLevel(string firstName, string lastName, string passwd, int level, IPEndPoint clientIP); |
52 | } | 52 | } |
53 | 53 | ||
diff --git a/OpenSim/Services/LLLoginService/LLLoginService.cs b/OpenSim/Services/LLLoginService/LLLoginService.cs index 95127d2..be90d38 100644 --- a/OpenSim/Services/LLLoginService/LLLoginService.cs +++ b/OpenSim/Services/LLLoginService/LLLoginService.cs | |||
@@ -200,7 +200,7 @@ namespace OpenSim.Services.LLLoginService | |||
200 | return response; | 200 | return response; |
201 | } | 201 | } |
202 | 202 | ||
203 | public LoginResponse Login(string firstName, string lastName, string passwd, string startLocation, UUID scopeID, IPEndPoint clientIP) | 203 | public LoginResponse Login(string firstName, string lastName, string passwd, string startLocation, UUID scopeID, string clientVersion, IPEndPoint clientIP) |
204 | { | 204 | { |
205 | bool success = false; | 205 | bool success = false; |
206 | UUID session = UUID.Random(); | 206 | UUID session = UUID.Random(); |
@@ -320,7 +320,7 @@ namespace OpenSim.Services.LLLoginService | |||
320 | // Instantiate/get the simulation interface and launch an agent at the destination | 320 | // Instantiate/get the simulation interface and launch an agent at the destination |
321 | // | 321 | // |
322 | string reason = string.Empty; | 322 | string reason = string.Empty; |
323 | AgentCircuitData aCircuit = LaunchAgentAtGrid(gatekeeper, destination, account, avatar, session, secureSession, position, where, out where, out reason); | 323 | AgentCircuitData aCircuit = LaunchAgentAtGrid(gatekeeper, destination, account, avatar, session, secureSession, position, where, clientVersion, out where, out reason); |
324 | 324 | ||
325 | if (aCircuit == null) | 325 | if (aCircuit == null) |
326 | { | 326 | { |
@@ -586,7 +586,7 @@ namespace OpenSim.Services.LLLoginService | |||
586 | } | 586 | } |
587 | 587 | ||
588 | protected AgentCircuitData LaunchAgentAtGrid(GridRegion gatekeeper, GridRegion destination, UserAccount account, AvatarData avatar, | 588 | protected AgentCircuitData LaunchAgentAtGrid(GridRegion gatekeeper, GridRegion destination, UserAccount account, AvatarData avatar, |
589 | UUID session, UUID secureSession, Vector3 position, string currentWhere, out string where, out string reason) | 589 | UUID session, UUID secureSession, Vector3 position, string currentWhere, string viewer, out string where, out string reason) |
590 | { | 590 | { |
591 | where = currentWhere; | 591 | where = currentWhere; |
592 | ISimulationService simConnector = null; | 592 | ISimulationService simConnector = null; |
@@ -626,7 +626,7 @@ namespace OpenSim.Services.LLLoginService | |||
626 | if (m_UserAgentService == null && simConnector != null) | 626 | if (m_UserAgentService == null && simConnector != null) |
627 | { | 627 | { |
628 | circuitCode = (uint)Util.RandomClass.Next(); ; | 628 | circuitCode = (uint)Util.RandomClass.Next(); ; |
629 | aCircuit = MakeAgent(destination, account, avatar, session, secureSession, circuitCode, position); | 629 | aCircuit = MakeAgent(destination, account, avatar, session, secureSession, circuitCode, position, viewer); |
630 | success = LaunchAgentDirectly(simConnector, destination, aCircuit, out reason); | 630 | success = LaunchAgentDirectly(simConnector, destination, aCircuit, out reason); |
631 | if (!success && m_GridService != null) | 631 | if (!success && m_GridService != null) |
632 | { | 632 | { |
@@ -651,7 +651,7 @@ namespace OpenSim.Services.LLLoginService | |||
651 | if (m_UserAgentService != null) | 651 | if (m_UserAgentService != null) |
652 | { | 652 | { |
653 | circuitCode = (uint)Util.RandomClass.Next(); ; | 653 | circuitCode = (uint)Util.RandomClass.Next(); ; |
654 | aCircuit = MakeAgent(destination, account, avatar, session, secureSession, circuitCode, position); | 654 | aCircuit = MakeAgent(destination, account, avatar, session, secureSession, circuitCode, position, viewer); |
655 | success = LaunchAgentIndirectly(gatekeeper, destination, aCircuit, out reason); | 655 | success = LaunchAgentIndirectly(gatekeeper, destination, aCircuit, out reason); |
656 | if (!success && m_GridService != null) | 656 | if (!success && m_GridService != null) |
657 | { | 657 | { |
@@ -680,7 +680,7 @@ namespace OpenSim.Services.LLLoginService | |||
680 | } | 680 | } |
681 | 681 | ||
682 | private AgentCircuitData MakeAgent(GridRegion region, UserAccount account, | 682 | private AgentCircuitData MakeAgent(GridRegion region, UserAccount account, |
683 | AvatarData avatar, UUID session, UUID secureSession, uint circuit, Vector3 position) | 683 | AvatarData avatar, UUID session, UUID secureSession, uint circuit, Vector3 position, string viewer) |
684 | { | 684 | { |
685 | AgentCircuitData aCircuit = new AgentCircuitData(); | 685 | AgentCircuitData aCircuit = new AgentCircuitData(); |
686 | 686 | ||
@@ -701,6 +701,7 @@ namespace OpenSim.Services.LLLoginService | |||
701 | aCircuit.SecureSessionID = secureSession; | 701 | aCircuit.SecureSessionID = secureSession; |
702 | aCircuit.SessionID = session; | 702 | aCircuit.SessionID = session; |
703 | aCircuit.startpos = position; | 703 | aCircuit.startpos = position; |
704 | aCircuit.Viewer = viewer; | ||
704 | SetServiceURLs(aCircuit, account); | 705 | SetServiceURLs(aCircuit, account); |
705 | 706 | ||
706 | return aCircuit; | 707 | return aCircuit; |