aboutsummaryrefslogtreecommitdiffstatshomepage
diff options
context:
space:
mode:
authorDiva Canto2010-10-03 20:01:59 -0700
committerDiva Canto2010-10-03 20:01:59 -0700
commit0772e19af25b8524fa2527a4d5f3bac496d07811 (patch)
tree1106f2145d5218e0c4ebf453b213e2d70c822a72
parentReplaced OpenMetaverse dlls with ones compiled in Windows. (diff)
downloadopensim-SC_OLD-0772e19af25b8524fa2527a4d5f3bac496d07811.zip
opensim-SC_OLD-0772e19af25b8524fa2527a4d5f3bac496d07811.tar.gz
opensim-SC_OLD-0772e19af25b8524fa2527a4d5f3bac496d07811.tar.bz2
opensim-SC_OLD-0772e19af25b8524fa2527a4d5f3bac496d07811.tar.xz
Added viewer's channel, mac, and id0 to agent circuit data. Also moved client ip address to agent circuit data, so that it's always there.
Diffstat (limited to '')
-rw-r--r--OpenSim/Framework/AgentCircuitData.cs37
-rw-r--r--OpenSim/Region/CoreModules/Framework/EntityTransfer/EntityTransferModule.cs22
-rw-r--r--OpenSim/Server/Handlers/Hypergrid/HomeAgentHandlers.cs2
-rw-r--r--OpenSim/Server/Handlers/Login/LLLoginHandlers.cs19
-rw-r--r--OpenSim/Services/Connectors/Hypergrid/UserAgentServiceConnector.cs8
-rw-r--r--OpenSim/Services/HypergridService/UserAgentService.cs6
-rw-r--r--OpenSim/Services/Interfaces/ILoginService.cs3
-rw-r--r--OpenSim/Services/LLLoginService/LLLoginService.cs20
8 files changed, 97 insertions, 20 deletions
diff --git a/OpenSim/Framework/AgentCircuitData.cs b/OpenSim/Framework/AgentCircuitData.cs
index 783a833..4f89d78 100644
--- a/OpenSim/Framework/AgentCircuitData.cs
+++ b/OpenSim/Framework/AgentCircuitData.cs
@@ -108,11 +108,31 @@ 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 111 /// The client's IP address, as captured by the login service
112 /// </summary>
113 public string IPAddress;
114
115 /// <summary>
116 /// Viewer's version string as reported by the viewer at login
112 /// </summary> 117 /// </summary>
113 public string Viewer; 118 public string Viewer;
114 119
115 /// <summary> 120 /// <summary>
121 /// The channel strinf sent by the viewer at login
122 /// </summary>
123 public string Channel;
124
125 /// <summary>
126 /// The Mac address as reported by the viewer at login
127 /// </summary>
128 public string Mac;
129
130 /// <summary>
131 /// The id0 as reported by the viewer at login
132 /// </summary>
133 public string Id0;
134
135 /// <summary>
116 /// Position the Agent's Avatar starts in the region 136 /// Position the Agent's Avatar starts in the region
117 /// </summary> 137 /// </summary>
118 public Vector3 startpos; 138 public Vector3 startpos;
@@ -179,7 +199,11 @@ namespace OpenSim.Framework
179 args["service_session_id"] = OSD.FromString(ServiceSessionID); 199 args["service_session_id"] = OSD.FromString(ServiceSessionID);
180 args["start_pos"] = OSD.FromString(startpos.ToString()); 200 args["start_pos"] = OSD.FromString(startpos.ToString());
181 args["appearance_serial"] = OSD.FromInteger(Appearance.Serial); 201 args["appearance_serial"] = OSD.FromInteger(Appearance.Serial);
202 args["client_ip"] = OSD.FromString(IPAddress);
182 args["viewer"] = OSD.FromString(Viewer); 203 args["viewer"] = OSD.FromString(Viewer);
204 args["channel"] = OSD.FromString(Channel);
205 args["mac"] = OSD.FromString(Mac);
206 args["id0"] = OSD.FromString(Id0);
183 207
184 if (Appearance != null) 208 if (Appearance != null)
185 { 209 {
@@ -279,8 +303,16 @@ namespace OpenSim.Framework
279 SessionID = args["session_id"].AsUUID(); 303 SessionID = args["session_id"].AsUUID();
280 if (args["service_session_id"] != null) 304 if (args["service_session_id"] != null)
281 ServiceSessionID = args["service_session_id"].AsString(); 305 ServiceSessionID = args["service_session_id"].AsString();
306 if (args["client_ip"] != null)
307 IPAddress = args["client_ip"].AsString();
282 if (args["viewer"] != null) 308 if (args["viewer"] != null)
283 Viewer = args["viewer"].AsString(); 309 Viewer = args["viewer"].AsString();
310 if (args["channel"] != null)
311 Channel = args["channel"].AsString();
312 if (args["mac"] != null)
313 Mac = args["mac"].AsString();
314 if (args["id0"] != null)
315 Id0 = args["id0"].AsString();
284 316
285 if (args["start_pos"] != null) 317 if (args["start_pos"] != null)
286 Vector3.TryParse(args["start_pos"].AsString(), out startpos); 318 Vector3.TryParse(args["start_pos"].AsString(), out startpos);
@@ -349,6 +381,9 @@ namespace OpenSim.Framework
349 public float startposy; 381 public float startposy;
350 public float startposz; 382 public float startposz;
351 public string Viewer; 383 public string Viewer;
384 public string Channel;
385 public string Mac;
386 public string Id0;
352 387
353 public sAgentCircuitData() 388 public sAgentCircuitData()
354 { 389 {
diff --git a/OpenSim/Region/CoreModules/Framework/EntityTransfer/EntityTransferModule.cs b/OpenSim/Region/CoreModules/Framework/EntityTransfer/EntityTransferModule.cs
index 81f49b6..38fff1c 100644
--- a/OpenSim/Region/CoreModules/Framework/EntityTransfer/EntityTransferModule.cs
+++ b/OpenSim/Region/CoreModules/Framework/EntityTransfer/EntityTransferModule.cs
@@ -301,7 +301,11 @@ namespace OpenSim.Region.CoreModules.Framework.EntityTransfer
301 if (currentAgentCircuit != null) 301 if (currentAgentCircuit != null)
302 { 302 {
303 agentCircuit.ServiceURLs = currentAgentCircuit.ServiceURLs; 303 agentCircuit.ServiceURLs = currentAgentCircuit.ServiceURLs;
304 agentCircuit.IPAddress = currentAgentCircuit.IPAddress;
304 agentCircuit.Viewer = currentAgentCircuit.Viewer; 305 agentCircuit.Viewer = currentAgentCircuit.Viewer;
306 agentCircuit.Channel = currentAgentCircuit.Channel;
307 agentCircuit.Mac = currentAgentCircuit.Mac;
308 agentCircuit.Id0 = currentAgentCircuit.Id0;
305 } 309 }
306 310
307 if (NeedsNewAgent(oldRegionX, newRegionX, oldRegionY, newRegionY)) 311 if (NeedsNewAgent(oldRegionX, newRegionX, oldRegionY, newRegionY))
@@ -955,16 +959,16 @@ namespace OpenSim.Region.CoreModules.Framework.EntityTransfer
955 agent.CapsPath = CapsUtil.GetRandomCapsObjectPath(); 959 agent.CapsPath = CapsUtil.GetRandomCapsObjectPath();
956 960
957 agent.ChildrenCapSeeds = new Dictionary<ulong, string>(sp.Scene.CapsModule.GetChildrenSeeds(sp.UUID)); 961 agent.ChildrenCapSeeds = new Dictionary<ulong, string>(sp.Scene.CapsModule.GetChildrenSeeds(sp.UUID));
958 m_log.DebugFormat("[XXX] Seeds 1 {0}", agent.ChildrenCapSeeds.Count); 962 //m_log.DebugFormat("[XXX] Seeds 1 {0}", agent.ChildrenCapSeeds.Count);
959 963
960 if (!agent.ChildrenCapSeeds.ContainsKey(sp.Scene.RegionInfo.RegionHandle)) 964 if (!agent.ChildrenCapSeeds.ContainsKey(sp.Scene.RegionInfo.RegionHandle))
961 agent.ChildrenCapSeeds.Add(sp.Scene.RegionInfo.RegionHandle, sp.ControllingClient.RequestClientInfo().CapsPath); 965 agent.ChildrenCapSeeds.Add(sp.Scene.RegionInfo.RegionHandle, sp.ControllingClient.RequestClientInfo().CapsPath);
962 m_log.DebugFormat("[XXX] Seeds 2 {0}", agent.ChildrenCapSeeds.Count); 966 //m_log.DebugFormat("[XXX] Seeds 2 {0}", agent.ChildrenCapSeeds.Count);
963 967
964 sp.AddNeighbourRegion(region.RegionHandle, agent.CapsPath); 968 sp.AddNeighbourRegion(region.RegionHandle, agent.CapsPath);
965 foreach (ulong h in agent.ChildrenCapSeeds.Keys) 969 //foreach (ulong h in agent.ChildrenCapSeeds.Keys)
966 m_log.DebugFormat("[XXX] --> {0}", h); 970 // m_log.DebugFormat("[XXX] --> {0}", h);
967 m_log.DebugFormat("[XXX] Adding {0}", region.RegionHandle); 971 //m_log.DebugFormat("[XXX] Adding {0}", region.RegionHandle);
968 agent.ChildrenCapSeeds.Add(region.RegionHandle, agent.CapsPath); 972 agent.ChildrenCapSeeds.Add(region.RegionHandle, agent.CapsPath);
969 973
970 if (sp.Scene.CapsModule != null) 974 if (sp.Scene.CapsModule != null)
@@ -975,7 +979,11 @@ namespace OpenSim.Region.CoreModules.Framework.EntityTransfer
975 if (currentAgentCircuit != null) 979 if (currentAgentCircuit != null)
976 { 980 {
977 agent.ServiceURLs = currentAgentCircuit.ServiceURLs; 981 agent.ServiceURLs = currentAgentCircuit.ServiceURLs;
982 agent.IPAddress = currentAgentCircuit.IPAddress;
978 agent.Viewer = currentAgentCircuit.Viewer; 983 agent.Viewer = currentAgentCircuit.Viewer;
984 agent.Channel = currentAgentCircuit.Channel;
985 agent.Mac = currentAgentCircuit.Mac;
986 agent.Id0 = currentAgentCircuit.Id0;
979 } 987 }
980 988
981 InformClientOfNeighbourDelegate d = InformClientOfNeighbourAsync; 989 InformClientOfNeighbourDelegate d = InformClientOfNeighbourAsync;
@@ -1064,7 +1072,11 @@ namespace OpenSim.Region.CoreModules.Framework.EntityTransfer
1064 if (currentAgentCircuit != null) 1072 if (currentAgentCircuit != null)
1065 { 1073 {
1066 agent.ServiceURLs = currentAgentCircuit.ServiceURLs; 1074 agent.ServiceURLs = currentAgentCircuit.ServiceURLs;
1075 agent.IPAddress = currentAgentCircuit.IPAddress;
1067 agent.Viewer = currentAgentCircuit.Viewer; 1076 agent.Viewer = currentAgentCircuit.Viewer;
1077 agent.Channel = currentAgentCircuit.Channel;
1078 agent.Mac = currentAgentCircuit.Mac;
1079 agent.Id0 = currentAgentCircuit.Id0;
1068 } 1080 }
1069 1081
1070 if (newRegions.Contains(neighbour.RegionHandle)) 1082 if (newRegions.Contains(neighbour.RegionHandle))
diff --git a/OpenSim/Server/Handlers/Hypergrid/HomeAgentHandlers.cs b/OpenSim/Server/Handlers/Hypergrid/HomeAgentHandlers.cs
index d10d6fc..21f4f3d 100644
--- a/OpenSim/Server/Handlers/Hypergrid/HomeAgentHandlers.cs
+++ b/OpenSim/Server/Handlers/Hypergrid/HomeAgentHandlers.cs
@@ -157,7 +157,7 @@ namespace OpenSim.Server.Handlers.Hypergrid
157 // Verify if this caller has authority to send the client IP 157 // Verify if this caller has authority to send the client IP
158 if (callerIP == m_LoginServerIP) 158 if (callerIP == m_LoginServerIP)
159 client_ipaddress = new IPEndPoint(IPAddress.Parse(ip_str), 0); 159 client_ipaddress = new IPEndPoint(IPAddress.Parse(ip_str), 0);
160 else 160 else // leaving this for now, but this warning should be removed
161 m_log.WarnFormat("[HOME AGENT HANDLER]: Unauthorized machine {0} tried to set client ip to {1}", callerIP, ip_str); 161 m_log.WarnFormat("[HOME AGENT HANDLER]: Unauthorized machine {0} tried to set client ip to {1}", callerIP, ip_str);
162 } 162 }
163 catch 163 catch
diff --git a/OpenSim/Server/Handlers/Login/LLLoginHandlers.cs b/OpenSim/Server/Handlers/Login/LLLoginHandlers.cs
index 30dc65e..48f5f99 100644
--- a/OpenSim/Server/Handlers/Login/LLLoginHandlers.cs
+++ b/OpenSim/Server/Handlers/Login/LLLoginHandlers.cs
@@ -88,14 +88,26 @@ namespace OpenSim.Server.Handlers.Login
88 startLocation = requestData["start"].ToString(); 88 startLocation = requestData["start"].ToString();
89 89
90 string clientVersion = "Unknown"; 90 string clientVersion = "Unknown";
91 if (requestData.Contains("version")) 91 if (requestData.Contains("version") && requestData["version"] != null)
92 clientVersion = requestData["version"].ToString(); 92 clientVersion = requestData["version"].ToString();
93 // We should do something interesting with the client version... 93 // We should do something interesting with the client version...
94 94
95 string channel = "Unknown";
96 if (requestData.Contains("channel") && requestData["channel"] != null)
97 channel = requestData["channel"].ToString();
98
99 string mac = "Unknown";
100 if (requestData.Contains("mac") && requestData["mac"] != null)
101 mac = requestData["mac"].ToString();
102
103 string id0 = "Unknown";
104 if (requestData.Contains("id0") && requestData["id0"] != null)
105 id0 = requestData["id0"].ToString();
106
95 //m_log.InfoFormat("[LOGIN]: XMLRPC Login Requested for {0} {1}, starting in {2}, using {3}", first, last, startLocation, clientVersion); 107 //m_log.InfoFormat("[LOGIN]: XMLRPC Login Requested for {0} {1}, starting in {2}, using {3}", first, last, startLocation, clientVersion);
96 108
97 LoginResponse reply = null; 109 LoginResponse reply = null;
98 reply = m_LocalService.Login(first, last, passwd, startLocation, scopeID, clientVersion, remoteClient); 110 reply = m_LocalService.Login(first, last, passwd, startLocation, scopeID, clientVersion, channel, mac, id0, remoteClient);
99 111
100 XmlRpcResponse response = new XmlRpcResponse(); 112 XmlRpcResponse response = new XmlRpcResponse();
101 response.Value = reply.ToHashtable(); 113 response.Value = reply.ToHashtable();
@@ -166,7 +178,8 @@ namespace OpenSim.Server.Handlers.Login
166 m_log.Info("[LOGIN]: LLSD Login Requested for: '" + map["first"].AsString() + "' '" + map["last"].AsString() + "' / " + startLocation); 178 m_log.Info("[LOGIN]: LLSD Login Requested for: '" + map["first"].AsString() + "' '" + map["last"].AsString() + "' / " + startLocation);
167 179
168 LoginResponse reply = null; 180 LoginResponse reply = null;
169 reply = m_LocalService.Login(map["first"].AsString(), map["last"].AsString(), map["passwd"].AsString(), startLocation, scopeID, String.Empty, remoteClient); 181 reply = m_LocalService.Login(map["first"].AsString(), map["last"].AsString(), map["passwd"].AsString(), startLocation, scopeID,
182 map["version"].AsString(), map["channel"].AsString(), map["mac"].AsString(), map["id0"].AsString(), remoteClient);
170 return reply.ToOSDMap(); 183 return reply.ToOSDMap();
171 184
172 } 185 }
diff --git a/OpenSim/Services/Connectors/Hypergrid/UserAgentServiceConnector.cs b/OpenSim/Services/Connectors/Hypergrid/UserAgentServiceConnector.cs
index 6d3c64a..247dd7e 100644
--- a/OpenSim/Services/Connectors/Hypergrid/UserAgentServiceConnector.cs
+++ b/OpenSim/Services/Connectors/Hypergrid/UserAgentServiceConnector.cs
@@ -238,8 +238,12 @@ namespace OpenSim.Services.Connectors.Hypergrid
238 args["destination_y"] = OSD.FromString(destination.RegionLocY.ToString()); 238 args["destination_y"] = OSD.FromString(destination.RegionLocY.ToString());
239 args["destination_name"] = OSD.FromString(destination.RegionName); 239 args["destination_name"] = OSD.FromString(destination.RegionName);
240 args["destination_uuid"] = OSD.FromString(destination.RegionID.ToString()); 240 args["destination_uuid"] = OSD.FromString(destination.RegionID.ToString());
241 if (ipaddress != null) 241
242 args["client_ip"] = OSD.FromString(ipaddress.Address.ToString()); 242 // 10/3/2010
243 // I added the client_ip up to the regular AgentCircuitData, so this doesn't need to be here.
244 // This need cleaning elsewhere...
245 //if (ipaddress != null)
246 // args["client_ip"] = OSD.FromString(ipaddress.Address.ToString());
243 247
244 return args; 248 return args;
245 } 249 }
diff --git a/OpenSim/Services/HypergridService/UserAgentService.cs b/OpenSim/Services/HypergridService/UserAgentService.cs
index 8acd618..eb6433c 100644
--- a/OpenSim/Services/HypergridService/UserAgentService.cs
+++ b/OpenSim/Services/HypergridService/UserAgentService.cs
@@ -148,7 +148,6 @@ namespace OpenSim.Services.HypergridService
148 agentCircuit.ServiceSessionID = "http://" + region.ExternalHostName + ":" + region.HttpPort + ";" + UUID.Random(); 148 agentCircuit.ServiceSessionID = "http://" + region.ExternalHostName + ":" + region.HttpPort + ";" + UUID.Random();
149 TravelingAgentInfo old = UpdateTravelInfo(agentCircuit, region); 149 TravelingAgentInfo old = UpdateTravelInfo(agentCircuit, region);
150 150
151 //bool success = m_GatekeeperConnector.CreateAgent(region, agentCircuit, (uint)Constants.TeleportFlags.ViaLogin, out reason);
152 bool success = false; 151 bool success = false;
153 string myExternalIP = string.Empty; 152 string myExternalIP = string.Empty;
154 string gridName = "http://" + gatekeeper.ExternalHostName + ":" + gatekeeper.HttpPort; 153 string gridName = "http://" + gatekeeper.ExternalHostName + ":" + gatekeeper.HttpPort;
@@ -200,6 +199,11 @@ namespace OpenSim.Services.HypergridService
200 { 199 {
201 if (m_TravelingAgents.ContainsKey(agentCircuit.SessionID)) 200 if (m_TravelingAgents.ContainsKey(agentCircuit.SessionID))
202 { 201 {
202 // Very important! Override whatever this agent comes with.
203 // UserAgentService always sets the IP for every new agent
204 // with the original IP address.
205 agentCircuit.IPAddress = m_TravelingAgents[agentCircuit.SessionID].ClientIPAddress;
206
203 old = m_TravelingAgents[agentCircuit.SessionID]; 207 old = m_TravelingAgents[agentCircuit.SessionID];
204 } 208 }
205 209
diff --git a/OpenSim/Services/Interfaces/ILoginService.cs b/OpenSim/Services/Interfaces/ILoginService.cs
index 9e57339..ee9b0b1 100644
--- a/OpenSim/Services/Interfaces/ILoginService.cs
+++ b/OpenSim/Services/Interfaces/ILoginService.cs
@@ -47,7 +47,8 @@ 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, string clientVersion, IPEndPoint clientIP); 50 LoginResponse Login(string firstName, string lastName, string passwd, string startLocation, UUID scopeID,
51 string clientVersion, string channel, string mac, string id0, IPEndPoint clientIP);
51 Hashtable SetLevel(string firstName, string lastName, string passwd, int level, IPEndPoint clientIP); 52 Hashtable SetLevel(string firstName, string lastName, string passwd, int level, IPEndPoint clientIP);
52 } 53 }
53 54
diff --git a/OpenSim/Services/LLLoginService/LLLoginService.cs b/OpenSim/Services/LLLoginService/LLLoginService.cs
index d30c149..127c4b2 100644
--- a/OpenSim/Services/LLLoginService/LLLoginService.cs
+++ b/OpenSim/Services/LLLoginService/LLLoginService.cs
@@ -208,7 +208,8 @@ namespace OpenSim.Services.LLLoginService
208 return response; 208 return response;
209 } 209 }
210 210
211 public LoginResponse Login(string firstName, string lastName, string passwd, string startLocation, UUID scopeID, string clientVersion, IPEndPoint clientIP) 211 public LoginResponse Login(string firstName, string lastName, string passwd, string startLocation, UUID scopeID,
212 string clientVersion, string channel, string mac, string id0, IPEndPoint clientIP)
212 { 213 {
213 bool success = false; 214 bool success = false;
214 UUID session = UUID.Random(); 215 UUID session = UUID.Random();
@@ -340,7 +341,8 @@ namespace OpenSim.Services.LLLoginService
340 // 341 //
341 string reason = string.Empty; 342 string reason = string.Empty;
342 GridRegion dest; 343 GridRegion dest;
343 AgentCircuitData aCircuit = LaunchAgentAtGrid(gatekeeper, destination, account, avatar, session, secureSession, position, where, clientVersion, clientIP, out where, out reason, out dest); 344 AgentCircuitData aCircuit = LaunchAgentAtGrid(gatekeeper, destination, account, avatar, session, secureSession, position, where,
345 clientVersion, channel, mac, id0, clientIP, out where, out reason, out dest);
344 destination = dest; 346 destination = dest;
345 if (aCircuit == null) 347 if (aCircuit == null)
346 { 348 {
@@ -600,7 +602,8 @@ namespace OpenSim.Services.LLLoginService
600 } 602 }
601 603
602 protected AgentCircuitData LaunchAgentAtGrid(GridRegion gatekeeper, GridRegion destination, UserAccount account, AvatarData avatar, 604 protected AgentCircuitData LaunchAgentAtGrid(GridRegion gatekeeper, GridRegion destination, UserAccount account, AvatarData avatar,
603 UUID session, UUID secureSession, Vector3 position, string currentWhere, string viewer, IPEndPoint clientIP, out string where, out string reason, out GridRegion dest) 605 UUID session, UUID secureSession, Vector3 position, string currentWhere, string viewer, string channel, string mac, string id0,
606 IPEndPoint clientIP, out string where, out string reason, out GridRegion dest)
604 { 607 {
605 where = currentWhere; 608 where = currentWhere;
606 ISimulationService simConnector = null; 609 ISimulationService simConnector = null;
@@ -640,7 +643,7 @@ namespace OpenSim.Services.LLLoginService
640 if (m_UserAgentService == null && simConnector != null) 643 if (m_UserAgentService == null && simConnector != null)
641 { 644 {
642 circuitCode = (uint)Util.RandomClass.Next(); ; 645 circuitCode = (uint)Util.RandomClass.Next(); ;
643 aCircuit = MakeAgent(destination, account, avatar, session, secureSession, circuitCode, position, viewer); 646 aCircuit = MakeAgent(destination, account, avatar, session, secureSession, circuitCode, position, clientIP.Address.ToString(), viewer, channel, mac, id0);
644 success = LaunchAgentDirectly(simConnector, destination, aCircuit, out reason); 647 success = LaunchAgentDirectly(simConnector, destination, aCircuit, out reason);
645 if (!success && m_GridService != null) 648 if (!success && m_GridService != null)
646 { 649 {
@@ -665,7 +668,7 @@ namespace OpenSim.Services.LLLoginService
665 if (m_UserAgentService != null) 668 if (m_UserAgentService != null)
666 { 669 {
667 circuitCode = (uint)Util.RandomClass.Next(); ; 670 circuitCode = (uint)Util.RandomClass.Next(); ;
668 aCircuit = MakeAgent(destination, account, avatar, session, secureSession, circuitCode, position, viewer); 671 aCircuit = MakeAgent(destination, account, avatar, session, secureSession, circuitCode, position, clientIP.Address.ToString(), viewer, channel, mac, id0);
669 success = LaunchAgentIndirectly(gatekeeper, destination, aCircuit, clientIP, out reason); 672 success = LaunchAgentIndirectly(gatekeeper, destination, aCircuit, clientIP, out reason);
670 if (!success && m_GridService != null) 673 if (!success && m_GridService != null)
671 { 674 {
@@ -694,7 +697,8 @@ namespace OpenSim.Services.LLLoginService
694 } 697 }
695 698
696 private AgentCircuitData MakeAgent(GridRegion region, UserAccount account, 699 private AgentCircuitData MakeAgent(GridRegion region, UserAccount account,
697 AvatarData avatar, UUID session, UUID secureSession, uint circuit, Vector3 position, string viewer) 700 AvatarData avatar, UUID session, UUID secureSession, uint circuit, Vector3 position,
701 string ipaddress, string viewer, string channel, string mac, string id0)
698 { 702 {
699 AgentCircuitData aCircuit = new AgentCircuitData(); 703 AgentCircuitData aCircuit = new AgentCircuitData();
700 704
@@ -715,7 +719,11 @@ namespace OpenSim.Services.LLLoginService
715 aCircuit.SecureSessionID = secureSession; 719 aCircuit.SecureSessionID = secureSession;
716 aCircuit.SessionID = session; 720 aCircuit.SessionID = session;
717 aCircuit.startpos = position; 721 aCircuit.startpos = position;
722 aCircuit.IPAddress = ipaddress;
718 aCircuit.Viewer = viewer; 723 aCircuit.Viewer = viewer;
724 aCircuit.Channel = channel;
725 aCircuit.Mac = mac;
726 aCircuit.Id0 = id0;
719 SetServiceURLs(aCircuit, account); 727 SetServiceURLs(aCircuit, account);
720 728
721 return aCircuit; 729 return aCircuit;