aboutsummaryrefslogtreecommitdiffstatshomepage
diff options
context:
space:
mode:
authorMelanie Thielker2010-05-06 00:34:49 +0200
committerMelanie2010-05-05 22:15:32 +0100
commit2ebe1482664533bb9b9040134fe4a23fbc939d51 (patch)
tree41c7c99c6da6ecd1ff217730e1dd95dd680ec5da
parentAdd a XMLRPC method to remotely set the login level for the LLLoginService. (diff)
downloadopensim-SC-2ebe1482664533bb9b9040134fe4a23fbc939d51.zip
opensim-SC-2ebe1482664533bb9b9040134fe4a23fbc939d51.tar.gz
opensim-SC-2ebe1482664533bb9b9040134fe4a23fbc939d51.tar.bz2
opensim-SC-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.
Diffstat (limited to '')
-rw-r--r--OpenSim/Framework/AgentCircuitData.cs11
-rw-r--r--OpenSim/Region/Framework/Scenes/ScenePresence.cs6
-rw-r--r--OpenSim/Server/Handlers/Login/LLLoginHandlers.cs4
-rw-r--r--OpenSim/Services/Interfaces/ILoginService.cs2
-rw-r--r--OpenSim/Services/LLLoginService/LLLoginService.cs13
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;