aboutsummaryrefslogtreecommitdiffstatshomepage
diff options
context:
space:
mode:
-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 562232c..987180b 100644
--- a/OpenSim/Region/Framework/Scenes/ScenePresence.cs
+++ b/OpenSim/Region/Framework/Scenes/ScenePresence.cs
@@ -227,6 +227,7 @@ namespace OpenSim.Region.Framework.Scenes
227 private int m_lastColCount = -1; //KF: Look for Collision chnages 227 private int m_lastColCount = -1; //KF: Look for Collision chnages
228 private int m_updateCount = 0; //KF: Update Anims for a while 228 private int m_updateCount = 0; //KF: Update Anims for a while
229 private static readonly int UPDATE_COUNT = 10; // how many frames to update for 229 private static readonly int UPDATE_COUNT = 10; // how many frames to update for
230 private string m_Viewer = String.Empty;
230 231
231 private const int NumMovementsBetweenRayCast = 5; 232 private const int NumMovementsBetweenRayCast = 5;
232 233
@@ -664,6 +665,11 @@ namespace OpenSim.Region.Framework.Scenes
664 set { m_flyDisabled = value; } 665 set { m_flyDisabled = value; }
665 } 666 }
666 667
668 public string Viewer
669 {
670 get { return m_Viewer; }
671 }
672
667 #endregion 673 #endregion
668 674
669 #region Constructor(s) 675 #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 5b950e0..9efdd11 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();
@@ -326,7 +326,7 @@ namespace OpenSim.Services.LLLoginService
326 // Instantiate/get the simulation interface and launch an agent at the destination 326 // Instantiate/get the simulation interface and launch an agent at the destination
327 // 327 //
328 string reason = string.Empty; 328 string reason = string.Empty;
329 AgentCircuitData aCircuit = LaunchAgentAtGrid(gatekeeper, destination, account, avatar, session, secureSession, position, where, out where, out reason); 329 AgentCircuitData aCircuit = LaunchAgentAtGrid(gatekeeper, destination, account, avatar, session, secureSession, position, where, clientVersion, out where, out reason);
330 330
331 if (aCircuit == null) 331 if (aCircuit == null)
332 { 332 {
@@ -592,7 +592,7 @@ namespace OpenSim.Services.LLLoginService
592 } 592 }
593 593
594 protected AgentCircuitData LaunchAgentAtGrid(GridRegion gatekeeper, GridRegion destination, UserAccount account, AvatarData avatar, 594 protected AgentCircuitData LaunchAgentAtGrid(GridRegion gatekeeper, GridRegion destination, UserAccount account, AvatarData avatar,
595 UUID session, UUID secureSession, Vector3 position, string currentWhere, out string where, out string reason) 595 UUID session, UUID secureSession, Vector3 position, string currentWhere, string viewer, out string where, out string reason)
596 { 596 {
597 where = currentWhere; 597 where = currentWhere;
598 ISimulationService simConnector = null; 598 ISimulationService simConnector = null;
@@ -632,7 +632,7 @@ namespace OpenSim.Services.LLLoginService
632 if (m_UserAgentService == null && simConnector != null) 632 if (m_UserAgentService == null && simConnector != null)
633 { 633 {
634 circuitCode = (uint)Util.RandomClass.Next(); ; 634 circuitCode = (uint)Util.RandomClass.Next(); ;
635 aCircuit = MakeAgent(destination, account, avatar, session, secureSession, circuitCode, position); 635 aCircuit = MakeAgent(destination, account, avatar, session, secureSession, circuitCode, position, viewer);
636 success = LaunchAgentDirectly(simConnector, destination, aCircuit, out reason); 636 success = LaunchAgentDirectly(simConnector, destination, aCircuit, out reason);
637 if (!success && m_GridService != null) 637 if (!success && m_GridService != null)
638 { 638 {
@@ -657,7 +657,7 @@ namespace OpenSim.Services.LLLoginService
657 if (m_UserAgentService != null) 657 if (m_UserAgentService != null)
658 { 658 {
659 circuitCode = (uint)Util.RandomClass.Next(); ; 659 circuitCode = (uint)Util.RandomClass.Next(); ;
660 aCircuit = MakeAgent(destination, account, avatar, session, secureSession, circuitCode, position); 660 aCircuit = MakeAgent(destination, account, avatar, session, secureSession, circuitCode, position, viewer);
661 success = LaunchAgentIndirectly(gatekeeper, destination, aCircuit, out reason); 661 success = LaunchAgentIndirectly(gatekeeper, destination, aCircuit, out reason);
662 if (!success && m_GridService != null) 662 if (!success && m_GridService != null)
663 { 663 {
@@ -686,7 +686,7 @@ namespace OpenSim.Services.LLLoginService
686 } 686 }
687 687
688 private AgentCircuitData MakeAgent(GridRegion region, UserAccount account, 688 private AgentCircuitData MakeAgent(GridRegion region, UserAccount account,
689 AvatarData avatar, UUID session, UUID secureSession, uint circuit, Vector3 position) 689 AvatarData avatar, UUID session, UUID secureSession, uint circuit, Vector3 position, string viewer)
690 { 690 {
691 AgentCircuitData aCircuit = new AgentCircuitData(); 691 AgentCircuitData aCircuit = new AgentCircuitData();
692 692
@@ -707,6 +707,7 @@ namespace OpenSim.Services.LLLoginService
707 aCircuit.SecureSessionID = secureSession; 707 aCircuit.SecureSessionID = secureSession;
708 aCircuit.SessionID = session; 708 aCircuit.SessionID = session;
709 aCircuit.startpos = position; 709 aCircuit.startpos = position;
710 aCircuit.Viewer = viewer;
710 SetServiceURLs(aCircuit, account); 711 SetServiceURLs(aCircuit, account);
711 712
712 return aCircuit; 713 return aCircuit;