Merge branch 'master' into careminster-presence-refactor

avinationmerge
Melanie 2010-10-04 04:49:54 +01:00
commit da6816c805
23 changed files with 28045 additions and 27994 deletions

View File

@ -108,10 +108,30 @@ namespace OpenSim.Framework
public string ServiceSessionID = string.Empty; public string ServiceSessionID = string.Empty;
/// <summary> /// <summary>
/// Viewer's version string /// The client's IP address, as captured by the login service
/// </summary>
public string IPAddress;
/// <summary>
/// Viewer's version string as reported by the viewer at login
/// </summary> /// </summary>
public string Viewer; public string Viewer;
/// <summary>
/// The channel strinf sent by the viewer at login
/// </summary>
public string Channel;
/// <summary>
/// The Mac address as reported by the viewer at login
/// </summary>
public string Mac;
/// <summary>
/// The id0 as reported by the viewer at login
/// </summary>
public string Id0;
/// <summary> /// <summary>
/// Position the Agent's Avatar starts in the region /// Position the Agent's Avatar starts in the region
/// </summary> /// </summary>
@ -179,7 +199,11 @@ namespace OpenSim.Framework
args["service_session_id"] = OSD.FromString(ServiceSessionID); args["service_session_id"] = OSD.FromString(ServiceSessionID);
args["start_pos"] = OSD.FromString(startpos.ToString()); args["start_pos"] = OSD.FromString(startpos.ToString());
args["appearance_serial"] = OSD.FromInteger(Appearance.Serial); args["appearance_serial"] = OSD.FromInteger(Appearance.Serial);
args["client_ip"] = OSD.FromString(IPAddress);
args["viewer"] = OSD.FromString(Viewer); args["viewer"] = OSD.FromString(Viewer);
args["channel"] = OSD.FromString(Channel);
args["mac"] = OSD.FromString(Mac);
args["id0"] = OSD.FromString(Id0);
if (Appearance != null) if (Appearance != null)
{ {
@ -279,8 +303,16 @@ namespace OpenSim.Framework
SessionID = args["session_id"].AsUUID(); SessionID = args["session_id"].AsUUID();
if (args["service_session_id"] != null) if (args["service_session_id"] != null)
ServiceSessionID = args["service_session_id"].AsString(); ServiceSessionID = args["service_session_id"].AsString();
if (args["client_ip"] != null)
IPAddress = args["client_ip"].AsString();
if (args["viewer"] != null) if (args["viewer"] != null)
Viewer = args["viewer"].AsString(); Viewer = args["viewer"].AsString();
if (args["channel"] != null)
Channel = args["channel"].AsString();
if (args["mac"] != null)
Mac = args["mac"].AsString();
if (args["id0"] != null)
Id0 = args["id0"].AsString();
if (args["start_pos"] != null) if (args["start_pos"] != null)
Vector3.TryParse(args["start_pos"].AsString(), out startpos); Vector3.TryParse(args["start_pos"].AsString(), out startpos);
@ -349,6 +381,9 @@ namespace OpenSim.Framework
public float startposy; public float startposy;
public float startposz; public float startposz;
public string Viewer; public string Viewer;
public string Channel;
public string Mac;
public string Id0;
public sAgentCircuitData() public sAgentCircuitData()
{ {

View File

@ -301,7 +301,11 @@ namespace OpenSim.Region.CoreModules.Framework.EntityTransfer
if (currentAgentCircuit != null) if (currentAgentCircuit != null)
{ {
agentCircuit.ServiceURLs = currentAgentCircuit.ServiceURLs; agentCircuit.ServiceURLs = currentAgentCircuit.ServiceURLs;
agentCircuit.IPAddress = currentAgentCircuit.IPAddress;
agentCircuit.Viewer = currentAgentCircuit.Viewer; agentCircuit.Viewer = currentAgentCircuit.Viewer;
agentCircuit.Channel = currentAgentCircuit.Channel;
agentCircuit.Mac = currentAgentCircuit.Mac;
agentCircuit.Id0 = currentAgentCircuit.Id0;
} }
if (NeedsNewAgent(oldRegionX, newRegionX, oldRegionY, newRegionY)) if (NeedsNewAgent(oldRegionX, newRegionX, oldRegionY, newRegionY))
@ -979,16 +983,16 @@ namespace OpenSim.Region.CoreModules.Framework.EntityTransfer
agent.CapsPath = CapsUtil.GetRandomCapsObjectPath(); agent.CapsPath = CapsUtil.GetRandomCapsObjectPath();
agent.ChildrenCapSeeds = new Dictionary<ulong, string>(sp.Scene.CapsModule.GetChildrenSeeds(sp.UUID)); agent.ChildrenCapSeeds = new Dictionary<ulong, string>(sp.Scene.CapsModule.GetChildrenSeeds(sp.UUID));
m_log.DebugFormat("[XXX] Seeds 1 {0}", agent.ChildrenCapSeeds.Count); //m_log.DebugFormat("[XXX] Seeds 1 {0}", agent.ChildrenCapSeeds.Count);
if (!agent.ChildrenCapSeeds.ContainsKey(sp.Scene.RegionInfo.RegionHandle)) if (!agent.ChildrenCapSeeds.ContainsKey(sp.Scene.RegionInfo.RegionHandle))
agent.ChildrenCapSeeds.Add(sp.Scene.RegionInfo.RegionHandle, sp.ControllingClient.RequestClientInfo().CapsPath); agent.ChildrenCapSeeds.Add(sp.Scene.RegionInfo.RegionHandle, sp.ControllingClient.RequestClientInfo().CapsPath);
m_log.DebugFormat("[XXX] Seeds 2 {0}", agent.ChildrenCapSeeds.Count); //m_log.DebugFormat("[XXX] Seeds 2 {0}", agent.ChildrenCapSeeds.Count);
sp.AddNeighbourRegion(region.RegionHandle, agent.CapsPath); sp.AddNeighbourRegion(region.RegionHandle, agent.CapsPath);
foreach (ulong h in agent.ChildrenCapSeeds.Keys) //foreach (ulong h in agent.ChildrenCapSeeds.Keys)
m_log.DebugFormat("[XXX] --> {0}", h); // m_log.DebugFormat("[XXX] --> {0}", h);
m_log.DebugFormat("[XXX] Adding {0}", region.RegionHandle); //m_log.DebugFormat("[XXX] Adding {0}", region.RegionHandle);
agent.ChildrenCapSeeds.Add(region.RegionHandle, agent.CapsPath); agent.ChildrenCapSeeds.Add(region.RegionHandle, agent.CapsPath);
if (sp.Scene.CapsModule != null) if (sp.Scene.CapsModule != null)
@ -999,7 +1003,11 @@ namespace OpenSim.Region.CoreModules.Framework.EntityTransfer
if (currentAgentCircuit != null) if (currentAgentCircuit != null)
{ {
agent.ServiceURLs = currentAgentCircuit.ServiceURLs; agent.ServiceURLs = currentAgentCircuit.ServiceURLs;
agent.IPAddress = currentAgentCircuit.IPAddress;
agent.Viewer = currentAgentCircuit.Viewer; agent.Viewer = currentAgentCircuit.Viewer;
agent.Channel = currentAgentCircuit.Channel;
agent.Mac = currentAgentCircuit.Mac;
agent.Id0 = currentAgentCircuit.Id0;
} }
IPEndPoint external = region.ExternalEndPoint; IPEndPoint external = region.ExternalEndPoint;
@ -1092,7 +1100,11 @@ namespace OpenSim.Region.CoreModules.Framework.EntityTransfer
if (currentAgentCircuit != null) if (currentAgentCircuit != null)
{ {
agent.ServiceURLs = currentAgentCircuit.ServiceURLs; agent.ServiceURLs = currentAgentCircuit.ServiceURLs;
agent.IPAddress = currentAgentCircuit.IPAddress;
agent.Viewer = currentAgentCircuit.Viewer; agent.Viewer = currentAgentCircuit.Viewer;
agent.Channel = currentAgentCircuit.Channel;
agent.Mac = currentAgentCircuit.Mac;
agent.Id0 = currentAgentCircuit.Id0;
} }
if (newRegions.Contains(neighbour.RegionHandle)) if (newRegions.Contains(neighbour.RegionHandle))

View File

@ -54,9 +54,10 @@ namespace OpenSim.Server.Handlers.Hypergrid
private static readonly ILog m_log = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType); private static readonly ILog m_log = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType);
private IGatekeeperService m_GatekeeperService; private IGatekeeperService m_GatekeeperService;
public GatekeeperAgentHandler(IGatekeeperService gatekeeper) public GatekeeperAgentHandler(IGatekeeperService gatekeeper, bool proxy)
{ {
m_GatekeeperService = gatekeeper; m_GatekeeperService = gatekeeper;
m_Proxy = proxy;
} }
protected override bool CreateAgent(GridRegion destination, AgentCircuitData aCircuit, uint teleportFlags, out string reason) protected override bool CreateAgent(GridRegion destination, AgentCircuitData aCircuit, uint teleportFlags, out string reason)

View File

@ -51,6 +51,8 @@ namespace OpenSim.Server.Handlers.Hypergrid
get { return m_GatekeeperService; } get { return m_GatekeeperService; }
} }
bool m_Proxy = false;
public GatekeeperServiceInConnector(IConfigSource config, IHttpServer server, ISimulationService simService) : public GatekeeperServiceInConnector(IConfigSource config, IHttpServer server, ISimulationService simService) :
base(config, server, String.Empty) base(config, server, String.Empty)
{ {
@ -65,11 +67,13 @@ namespace OpenSim.Server.Handlers.Hypergrid
if (m_GatekeeperService == null) if (m_GatekeeperService == null)
throw new Exception("Gatekeeper server connector cannot proceed because of missing service"); throw new Exception("Gatekeeper server connector cannot proceed because of missing service");
m_Proxy = gridConfig.GetBoolean("HasProxy", false);
HypergridHandlers hghandlers = new HypergridHandlers(m_GatekeeperService); HypergridHandlers hghandlers = new HypergridHandlers(m_GatekeeperService);
server.AddXmlRPCHandler("link_region", hghandlers.LinkRegionRequest, false); server.AddXmlRPCHandler("link_region", hghandlers.LinkRegionRequest, false);
server.AddXmlRPCHandler("get_region", hghandlers.GetRegion, false); server.AddXmlRPCHandler("get_region", hghandlers.GetRegion, false);
server.AddHTTPHandler("/foreignagent/", new GatekeeperAgentHandler(m_GatekeeperService).Handler); server.AddHTTPHandler("/foreignagent/", new GatekeeperAgentHandler(m_GatekeeperService, m_Proxy).Handler);
} }
public GatekeeperServiceInConnector(IConfigSource config, IHttpServer server) public GatekeeperServiceInConnector(IConfigSource config, IHttpServer server)

View File

@ -55,11 +55,13 @@ namespace OpenSim.Server.Handlers.Hypergrid
private IUserAgentService m_UserAgentService; private IUserAgentService m_UserAgentService;
private string m_LoginServerIP; private string m_LoginServerIP;
private bool m_Proxy = false;
public HomeAgentHandler(IUserAgentService userAgentService, string loginServerIP) public HomeAgentHandler(IUserAgentService userAgentService, string loginServerIP, bool proxy)
{ {
m_UserAgentService = userAgentService; m_UserAgentService = userAgentService;
m_LoginServerIP = loginServerIP; m_LoginServerIP = loginServerIP;
m_Proxy = proxy;
} }
public Hashtable Handler(Hashtable request) public Hashtable Handler(Hashtable request)
@ -153,11 +155,11 @@ namespace OpenSim.Server.Handlers.Hypergrid
string ip_str = args["client_ip"].ToString(); string ip_str = args["client_ip"].ToString();
try try
{ {
string callerIP = Util.GetCallerIP(request); string callerIP = GetCallerIP(request);
// Verify if this caller has authority to send the client IP // Verify if this caller has authority to send the client IP
if (callerIP == m_LoginServerIP) if (callerIP == m_LoginServerIP)
client_ipaddress = new IPEndPoint(IPAddress.Parse(ip_str), 0); client_ipaddress = new IPEndPoint(IPAddress.Parse(ip_str), 0);
else else // leaving this for now, but this warning should be removed
m_log.WarnFormat("[HOME AGENT HANDLER]: Unauthorized machine {0} tried to set client ip to {1}", callerIP, ip_str); m_log.WarnFormat("[HOME AGENT HANDLER]: Unauthorized machine {0} tried to set client ip to {1}", callerIP, ip_str);
} }
catch catch
@ -198,6 +200,23 @@ namespace OpenSim.Server.Handlers.Hypergrid
responsedata["str_response_string"] = OSDParser.SerializeJsonString(resp); responsedata["str_response_string"] = OSDParser.SerializeJsonString(resp);
} }
private string GetCallerIP(Hashtable request)
{
if (!m_Proxy)
return Util.GetCallerIP(request);
// We're behind a proxy
Hashtable headers = (Hashtable)request["headers"];
if (headers.ContainsKey("X-Forwarded-For") && headers["X-Forwarded-For"] != null)
{
IPEndPoint ep = Util.GetClientIPFromXFF((string)headers["X-Forwarded-For"]);
if (ep != null)
return ep.Address.ToString();
}
// Oops
return Util.GetCallerIP(request);
}
} }
} }

View File

@ -67,6 +67,7 @@ namespace OpenSim.Server.Handlers.Hypergrid
throw new Exception("UserAgent server connector cannot proceed because of missing service"); throw new Exception("UserAgent server connector cannot proceed because of missing service");
string loginServerIP = gridConfig.GetString("LoginServerIP", "127.0.0.1"); string loginServerIP = gridConfig.GetString("LoginServerIP", "127.0.0.1");
bool proxy = gridConfig.GetBoolean("HasProxy", false);
server.AddXmlRPCHandler("agent_is_coming_home", AgentIsComingHome, false); server.AddXmlRPCHandler("agent_is_coming_home", AgentIsComingHome, false);
server.AddXmlRPCHandler("get_home_region", GetHomeRegion, false); server.AddXmlRPCHandler("get_home_region", GetHomeRegion, false);
@ -74,7 +75,7 @@ namespace OpenSim.Server.Handlers.Hypergrid
server.AddXmlRPCHandler("verify_client", VerifyClient, false); server.AddXmlRPCHandler("verify_client", VerifyClient, false);
server.AddXmlRPCHandler("logout_agent", LogoutAgent, false); server.AddXmlRPCHandler("logout_agent", LogoutAgent, false);
server.AddHTTPHandler("/homeagent/", new HomeAgentHandler(m_HomeUsersService, loginServerIP).Handler); server.AddHTTPHandler("/homeagent/", new HomeAgentHandler(m_HomeUsersService, loginServerIP, proxy).Handler);
} }
public XmlRpcResponse GetHomeRegion(XmlRpcRequest request, IPEndPoint remoteClient) public XmlRpcResponse GetHomeRegion(XmlRpcRequest request, IPEndPoint remoteClient)

View File

@ -88,14 +88,26 @@ namespace OpenSim.Server.Handlers.Login
startLocation = requestData["start"].ToString(); startLocation = requestData["start"].ToString();
string clientVersion = "Unknown"; string clientVersion = "Unknown";
if (requestData.Contains("version")) if (requestData.Contains("version") && requestData["version"] != null)
clientVersion = requestData["version"].ToString(); clientVersion = requestData["version"].ToString();
// We should do something interesting with the client version... // We should do something interesting with the client version...
string channel = "Unknown";
if (requestData.Contains("channel") && requestData["channel"] != null)
channel = requestData["channel"].ToString();
string mac = "Unknown";
if (requestData.Contains("mac") && requestData["mac"] != null)
mac = requestData["mac"].ToString();
string id0 = "Unknown";
if (requestData.Contains("id0") && requestData["id0"] != null)
id0 = requestData["id0"].ToString();
//m_log.InfoFormat("[LOGIN]: XMLRPC Login Requested for {0} {1}, starting in {2}, using {3}", first, last, startLocation, clientVersion); //m_log.InfoFormat("[LOGIN]: XMLRPC Login Requested for {0} {1}, starting in {2}, using {3}", first, last, startLocation, clientVersion);
LoginResponse reply = null; LoginResponse reply = null;
reply = m_LocalService.Login(first, last, passwd, startLocation, scopeID, clientVersion, remoteClient); reply = m_LocalService.Login(first, last, passwd, startLocation, scopeID, clientVersion, channel, mac, id0, remoteClient);
XmlRpcResponse response = new XmlRpcResponse(); XmlRpcResponse response = new XmlRpcResponse();
response.Value = reply.ToHashtable(); response.Value = reply.ToHashtable();
@ -166,7 +178,8 @@ namespace OpenSim.Server.Handlers.Login
m_log.Info("[LOGIN]: LLSD Login Requested for: '" + map["first"].AsString() + "' '" + map["last"].AsString() + "' / " + startLocation); m_log.Info("[LOGIN]: LLSD Login Requested for: '" + map["first"].AsString() + "' '" + map["last"].AsString() + "' / " + startLocation);
LoginResponse reply = null; LoginResponse reply = null;
reply = m_LocalService.Login(map["first"].AsString(), map["last"].AsString(), map["passwd"].AsString(), startLocation, scopeID, String.Empty, remoteClient); reply = m_LocalService.Login(map["first"].AsString(), map["last"].AsString(), map["passwd"].AsString(), startLocation, scopeID,
map["version"].AsString(), map["channel"].AsString(), map["mac"].AsString(), map["id0"].AsString(), remoteClient);
return reply.ToOSDMap(); return reply.ToOSDMap();
} }

View File

@ -52,6 +52,8 @@ namespace OpenSim.Server.Handlers.Simulation
private static readonly ILog m_log = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType); private static readonly ILog m_log = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType);
private ISimulationService m_SimulationService; private ISimulationService m_SimulationService;
protected bool m_Proxy = false;
public AgentHandler() { } public AgentHandler() { }
public AgentHandler(ISimulationService sim) public AgentHandler(ISimulationService sim)
@ -184,13 +186,31 @@ namespace OpenSim.Server.Handlers.Simulation
resp["reason"] = OSD.FromString(reason); resp["reason"] = OSD.FromString(reason);
resp["success"] = OSD.FromBoolean(result); resp["success"] = OSD.FromBoolean(result);
// Let's also send out the IP address of the caller back to the caller (HG 1.5) // Let's also send out the IP address of the caller back to the caller (HG 1.5)
resp["your_ip"] = OSD.FromString(Util.GetCallerIP(request)); resp["your_ip"] = OSD.FromString(GetCallerIP(request));
// TODO: add reason if not String.Empty? // TODO: add reason if not String.Empty?
responsedata["int_response_code"] = HttpStatusCode.OK; responsedata["int_response_code"] = HttpStatusCode.OK;
responsedata["str_response_string"] = OSDParser.SerializeJsonString(resp); responsedata["str_response_string"] = OSDParser.SerializeJsonString(resp);
} }
private string GetCallerIP(Hashtable request)
{
if (!m_Proxy)
return Util.GetCallerIP(request);
// We're behind a proxy
Hashtable headers = (Hashtable)request["headers"];
if (headers.ContainsKey("X-Forwarded-For") && headers["X-Forwarded-For"] != null)
{
IPEndPoint ep = Util.GetClientIPFromXFF((string)headers["X-Forwarded-For"]);
if (ep != null)
return ep.Address.ToString();
}
// Oops
return Util.GetCallerIP(request);
}
// subclasses can override this // subclasses can override this
protected virtual bool CreateAgent(GridRegion destination, AgentCircuitData aCircuit, uint teleportFlags, out string reason) protected virtual bool CreateAgent(GridRegion destination, AgentCircuitData aCircuit, uint teleportFlags, out string reason)
{ {

View File

@ -238,8 +238,12 @@ namespace OpenSim.Services.Connectors.Hypergrid
args["destination_y"] = OSD.FromString(destination.RegionLocY.ToString()); args["destination_y"] = OSD.FromString(destination.RegionLocY.ToString());
args["destination_name"] = OSD.FromString(destination.RegionName); args["destination_name"] = OSD.FromString(destination.RegionName);
args["destination_uuid"] = OSD.FromString(destination.RegionID.ToString()); args["destination_uuid"] = OSD.FromString(destination.RegionID.ToString());
if (ipaddress != null)
args["client_ip"] = OSD.FromString(ipaddress.Address.ToString()); // 10/3/2010
// I added the client_ip up to the regular AgentCircuitData, so this doesn't need to be here.
// This need cleaning elsewhere...
//if (ipaddress != null)
// args["client_ip"] = OSD.FromString(ipaddress.Address.ToString());
return args; return args;
} }

View File

@ -148,7 +148,6 @@ namespace OpenSim.Services.HypergridService
agentCircuit.ServiceSessionID = "http://" + region.ExternalHostName + ":" + region.HttpPort + ";" + UUID.Random(); agentCircuit.ServiceSessionID = "http://" + region.ExternalHostName + ":" + region.HttpPort + ";" + UUID.Random();
TravelingAgentInfo old = UpdateTravelInfo(agentCircuit, region); TravelingAgentInfo old = UpdateTravelInfo(agentCircuit, region);
//bool success = m_GatekeeperConnector.CreateAgent(region, agentCircuit, (uint)Constants.TeleportFlags.ViaLogin, out reason);
bool success = false; bool success = false;
string myExternalIP = string.Empty; string myExternalIP = string.Empty;
string gridName = "http://" + gatekeeper.ExternalHostName + ":" + gatekeeper.HttpPort; string gridName = "http://" + gatekeeper.ExternalHostName + ":" + gatekeeper.HttpPort;
@ -200,6 +199,11 @@ namespace OpenSim.Services.HypergridService
{ {
if (m_TravelingAgents.ContainsKey(agentCircuit.SessionID)) if (m_TravelingAgents.ContainsKey(agentCircuit.SessionID))
{ {
// Very important! Override whatever this agent comes with.
// UserAgentService always sets the IP for every new agent
// with the original IP address.
agentCircuit.IPAddress = m_TravelingAgents[agentCircuit.SessionID].ClientIPAddress;
old = m_TravelingAgents[agentCircuit.SessionID]; old = m_TravelingAgents[agentCircuit.SessionID];
} }

View File

@ -47,7 +47,8 @@ namespace OpenSim.Services.Interfaces
public interface ILoginService public interface ILoginService
{ {
LoginResponse Login(string firstName, string lastName, string passwd, string startLocation, UUID scopeID, string clientVersion, IPEndPoint clientIP); LoginResponse Login(string firstName, string lastName, string passwd, string startLocation, UUID scopeID,
string clientVersion, string channel, string mac, string id0, IPEndPoint clientIP);
Hashtable SetLevel(string firstName, string lastName, string passwd, int level, IPEndPoint clientIP); Hashtable SetLevel(string firstName, string lastName, string passwd, int level, IPEndPoint clientIP);
} }

View File

@ -208,7 +208,8 @@ namespace OpenSim.Services.LLLoginService
return response; return response;
} }
public LoginResponse Login(string firstName, string lastName, string passwd, string startLocation, UUID scopeID, string clientVersion, IPEndPoint clientIP) public LoginResponse Login(string firstName, string lastName, string passwd, string startLocation, UUID scopeID,
string clientVersion, string channel, string mac, string id0, IPEndPoint clientIP)
{ {
bool success = false; bool success = false;
UUID session = UUID.Random(); UUID session = UUID.Random();
@ -346,7 +347,8 @@ namespace OpenSim.Services.LLLoginService
// //
string reason = string.Empty; string reason = string.Empty;
GridRegion dest; GridRegion dest;
AgentCircuitData aCircuit = LaunchAgentAtGrid(gatekeeper, destination, account, avatar, session, secureSession, position, where, clientVersion, clientIP, out where, out reason, out dest); AgentCircuitData aCircuit = LaunchAgentAtGrid(gatekeeper, destination, account, avatar, session, secureSession, position, where,
clientVersion, channel, mac, id0, clientIP, out where, out reason, out dest);
destination = dest; destination = dest;
if (aCircuit == null) if (aCircuit == null)
{ {
@ -606,7 +608,8 @@ namespace OpenSim.Services.LLLoginService
} }
protected AgentCircuitData LaunchAgentAtGrid(GridRegion gatekeeper, GridRegion destination, UserAccount account, AvatarData avatar, protected AgentCircuitData LaunchAgentAtGrid(GridRegion gatekeeper, GridRegion destination, UserAccount account, AvatarData avatar,
UUID session, UUID secureSession, Vector3 position, string currentWhere, string viewer, IPEndPoint clientIP, out string where, out string reason, out GridRegion dest) UUID session, UUID secureSession, Vector3 position, string currentWhere, string viewer, string channel, string mac, string id0,
IPEndPoint clientIP, out string where, out string reason, out GridRegion dest)
{ {
where = currentWhere; where = currentWhere;
ISimulationService simConnector = null; ISimulationService simConnector = null;
@ -646,7 +649,7 @@ namespace OpenSim.Services.LLLoginService
if (m_UserAgentService == null && simConnector != null) if (m_UserAgentService == null && simConnector != null)
{ {
circuitCode = (uint)Util.RandomClass.Next(); ; circuitCode = (uint)Util.RandomClass.Next(); ;
aCircuit = MakeAgent(destination, account, avatar, session, secureSession, circuitCode, position, viewer); aCircuit = MakeAgent(destination, account, avatar, session, secureSession, circuitCode, position, clientIP.Address.ToString(), viewer, channel, mac, id0);
success = LaunchAgentDirectly(simConnector, destination, aCircuit, out reason); success = LaunchAgentDirectly(simConnector, destination, aCircuit, out reason);
if (!success && m_GridService != null) if (!success && m_GridService != null)
{ {
@ -671,7 +674,7 @@ namespace OpenSim.Services.LLLoginService
if (m_UserAgentService != null) if (m_UserAgentService != null)
{ {
circuitCode = (uint)Util.RandomClass.Next(); ; circuitCode = (uint)Util.RandomClass.Next(); ;
aCircuit = MakeAgent(destination, account, avatar, session, secureSession, circuitCode, position, viewer); aCircuit = MakeAgent(destination, account, avatar, session, secureSession, circuitCode, position, clientIP.Address.ToString(), viewer, channel, mac, id0);
success = LaunchAgentIndirectly(gatekeeper, destination, aCircuit, clientIP, out reason); success = LaunchAgentIndirectly(gatekeeper, destination, aCircuit, clientIP, out reason);
if (!success && m_GridService != null) if (!success && m_GridService != null)
{ {
@ -700,7 +703,8 @@ namespace OpenSim.Services.LLLoginService
} }
private AgentCircuitData MakeAgent(GridRegion region, UserAccount account, private AgentCircuitData MakeAgent(GridRegion region, UserAccount account,
AvatarData avatar, UUID session, UUID secureSession, uint circuit, Vector3 position, string viewer) AvatarData avatar, UUID session, UUID secureSession, uint circuit, Vector3 position,
string ipaddress, string viewer, string channel, string mac, string id0)
{ {
AgentCircuitData aCircuit = new AgentCircuitData(); AgentCircuitData aCircuit = new AgentCircuitData();
@ -721,7 +725,11 @@ namespace OpenSim.Services.LLLoginService
aCircuit.SecureSessionID = secureSession; aCircuit.SecureSessionID = secureSession;
aCircuit.SessionID = session; aCircuit.SessionID = session;
aCircuit.startpos = position; aCircuit.startpos = position;
aCircuit.IPAddress = ipaddress;
aCircuit.Viewer = viewer; aCircuit.Viewer = viewer;
aCircuit.Channel = channel;
aCircuit.Mac = mac;
aCircuit.Id0 = id0;
SetServiceURLs(aCircuit, account); SetServiceURLs(aCircuit, account);
return aCircuit; return aCircuit;

Binary file not shown.

View File

@ -1,333 +1,333 @@
<?xml version="1.0"?> <?xml version="1.0"?>
<doc> <doc>
<assembly> <assembly>
<name>OpenMetaverse.StructuredData</name> <name>OpenMetaverse.StructuredData</name>
</assembly> </assembly>
<members> <members>
<member name="T:OpenMetaverse.StructuredData.OSDParser"> <member name="T:OpenMetaverse.StructuredData.OSDParser">
<summary> <summary>
</summary> </summary>
<summary> <summary>
</summary> </summary>
<summary> <summary>
</summary> </summary>
</member> </member>
<member name="M:OpenMetaverse.StructuredData.OSDParser.DeserializeLLSDBinary(System.Byte[])"> <member name="M:OpenMetaverse.StructuredData.OSDParser.DeserializeLLSDXml(System.Byte[])">
<summary> <summary>
</summary> </summary>
<param name="binaryData"></param> <param name="xmlData"></param>
<returns></returns> <returns></returns>
</member> </member>
<member name="M:OpenMetaverse.StructuredData.OSDParser.DeserializeLLSDBinary(System.IO.Stream)"> <member name="M:OpenMetaverse.StructuredData.OSDParser.DeserializeLLSDXml(System.String)">
<summary> <summary>
</summary> </summary>
<param name="stream"></param> <param name="xmlData"></param>
<returns></returns> <returns></returns>
</member> </member>
<member name="M:OpenMetaverse.StructuredData.OSDParser.SerializeLLSDBinary(OpenMetaverse.StructuredData.OSD)"> <member name="M:OpenMetaverse.StructuredData.OSDParser.DeserializeLLSDXml(System.Xml.XmlTextReader)">
<summary> <summary>
</summary> </summary>
<param name="osd"></param> <param name="xmlData"></param>
<returns></returns> <returns></returns>
</member> </member>
<member name="M:OpenMetaverse.StructuredData.OSDParser.SerializeLLSDBinaryStream(OpenMetaverse.StructuredData.OSD)"> <member name="M:OpenMetaverse.StructuredData.OSDParser.SerializeLLSDXmlBytes(OpenMetaverse.StructuredData.OSD)">
<summary> <summary>
</summary> </summary>
<param name="data"></param> <param name="data"></param>
<returns></returns> <returns></returns>
</member> </member>
<member name="M:OpenMetaverse.StructuredData.OSDParser.SkipWhiteSpace(System.IO.Stream)"> <member name="M:OpenMetaverse.StructuredData.OSDParser.SerializeLLSDXmlString(OpenMetaverse.StructuredData.OSD)">
<summary> <summary>
</summary> </summary>
<param name="stream"></param> <param name="data"></param>
</member> <returns></returns>
<member name="M:OpenMetaverse.StructuredData.OSDParser.FindByte(System.IO.Stream,System.Byte)"> </member>
<summary> <member name="M:OpenMetaverse.StructuredData.OSDParser.SerializeLLSDXmlElement(System.Xml.XmlTextWriter,OpenMetaverse.StructuredData.OSD)">
<summary>
</summary>
<param name="stream"></param> </summary>
<param name="toFind"></param> <param name="writer"></param>
<returns></returns> <param name="data"></param>
</member> </member>
<member name="M:OpenMetaverse.StructuredData.OSDParser.FindString(System.IO.Stream,System.String)"> <member name="M:OpenMetaverse.StructuredData.OSDParser.TryValidateLLSDXml(System.Xml.XmlTextReader,System.String@)">
<summary> <summary>
</summary> </summary>
<param name="stream"></param> <param name="xmlData"></param>
<param name="toFind"></param> <param name="error"></param>
<returns></returns> <returns></returns>
</member> </member>
<member name="M:OpenMetaverse.StructuredData.OSDParser.ConsumeBytes(System.IO.Stream,System.Int32)"> <member name="M:OpenMetaverse.StructuredData.OSDParser.ParseLLSDXmlElement(System.Xml.XmlTextReader)">
<summary> <summary>
</summary> </summary>
<param name="stream"></param> <param name="reader"></param>
<param name="consumeBytes"></param> <returns></returns>
<returns></returns> </member>
</member> <member name="M:OpenMetaverse.StructuredData.OSDParser.DeserializeLLSDNotationElement(System.IO.StringReader)">
<member name="M:OpenMetaverse.StructuredData.OSDParser.NetworkToHostInt(System.Byte[])"> <summary>
<summary>
</summary>
</summary> <param name="reader"></param>
<param name="binaryNetEnd"></param> <returns></returns>
<returns></returns> </member>
</member> <member name="M:OpenMetaverse.StructuredData.OSDParser.PeekAndSkipWhitespace(System.IO.StringReader)">
<member name="M:OpenMetaverse.StructuredData.OSDParser.NetworkToHostDouble(System.Byte[])"> <summary>
<summary>
</summary>
</summary> <param name="reader"></param>
<param name="binaryNetEnd"></param> <returns></returns>
<returns></returns> </member>
</member> <member name="M:OpenMetaverse.StructuredData.OSDParser.ReadAndSkipWhitespace(System.IO.StringReader)">
<member name="M:OpenMetaverse.StructuredData.OSDParser.HostToNetworkIntBytes(System.Int32)"> <summary>
<summary>
</summary>
</summary> <param name="reader"></param>
<param name="intHostEnd"></param> <returns></returns>
<returns></returns> </member>
</member> <member name="M:OpenMetaverse.StructuredData.OSDParser.GetLengthInBrackets(System.IO.StringReader)">
<member name="M:OpenMetaverse.StructuredData.OSDParser.DeserializeLLSDXml(System.Byte[])"> <summary>
<summary>
</summary>
</summary> <param name="reader"></param>
<param name="xmlData"></param> <returns></returns>
<returns></returns> </member>
</member> <member name="M:OpenMetaverse.StructuredData.OSDParser.GetStringDelimitedBy(System.IO.StringReader,System.Char)">
<member name="M:OpenMetaverse.StructuredData.OSDParser.DeserializeLLSDXml(System.String)"> <summary>
<summary>
</summary>
</summary> <param name="reader"></param>
<param name="xmlData"></param> <param name="delimiter"></param>
<returns></returns> <returns></returns>
</member> </member>
<member name="M:OpenMetaverse.StructuredData.OSDParser.DeserializeLLSDXml(System.Xml.XmlTextReader)"> <member name="M:OpenMetaverse.StructuredData.OSDParser.BufferCharactersEqual(System.IO.StringReader,System.Char[],System.Int32)">
<summary> <summary>
</summary> </summary>
<param name="xmlData"></param> <param name="reader"></param>
<returns></returns> <param name="buffer"></param>
</member> <param name="offset"></param>
<member name="M:OpenMetaverse.StructuredData.OSDParser.SerializeLLSDXmlBytes(OpenMetaverse.StructuredData.OSD)"> <returns></returns>
<summary> </member>
<member name="M:OpenMetaverse.StructuredData.OSDParser.UnescapeCharacter(System.String,System.Char)">
</summary> <summary>
<param name="data"></param>
<returns></returns> </summary>
</member> <param name="s"></param>
<member name="M:OpenMetaverse.StructuredData.OSDParser.SerializeLLSDXmlString(OpenMetaverse.StructuredData.OSD)"> <param name="c"></param>
<summary> <returns></returns>
</member>
</summary> <member name="M:OpenMetaverse.StructuredData.OSDParser.EscapeCharacter(System.String,System.Char)">
<param name="data"></param> <summary>
<returns></returns>
</member> </summary>
<member name="M:OpenMetaverse.StructuredData.OSDParser.SerializeLLSDXmlElement(System.Xml.XmlTextWriter,OpenMetaverse.StructuredData.OSD)"> <param name="s"></param>
<summary> <param name="c"></param>
<returns></returns>
</summary> </member>
<param name="writer"></param> <member name="M:OpenMetaverse.StructuredData.OSDParser.DeserializeLLSDBinary(System.Byte[])">
<param name="data"></param> <summary>
</member>
<member name="M:OpenMetaverse.StructuredData.OSDParser.TryValidateLLSDXml(System.Xml.XmlTextReader,System.String@)"> </summary>
<summary> <param name="binaryData"></param>
<returns></returns>
</summary> </member>
<param name="xmlData"></param> <member name="M:OpenMetaverse.StructuredData.OSDParser.DeserializeLLSDBinary(System.IO.Stream)">
<param name="error"></param> <summary>
<returns></returns>
</member> </summary>
<member name="M:OpenMetaverse.StructuredData.OSDParser.ParseLLSDXmlElement(System.Xml.XmlTextReader)"> <param name="stream"></param>
<summary> <returns></returns>
</member>
</summary> <member name="M:OpenMetaverse.StructuredData.OSDParser.SerializeLLSDBinary(OpenMetaverse.StructuredData.OSD)">
<param name="reader"></param> <summary>
<returns></returns>
</member> </summary>
<member name="M:OpenMetaverse.StructuredData.OSDParser.DeserializeLLSDNotationElement(System.IO.StringReader)"> <param name="osd"></param>
<summary> <returns></returns>
</member>
</summary> <member name="M:OpenMetaverse.StructuredData.OSDParser.SerializeLLSDBinaryStream(OpenMetaverse.StructuredData.OSD)">
<param name="reader"></param> <summary>
<returns></returns>
</member> </summary>
<member name="M:OpenMetaverse.StructuredData.OSDParser.PeekAndSkipWhitespace(System.IO.StringReader)"> <param name="data"></param>
<summary> <returns></returns>
</member>
</summary> <member name="M:OpenMetaverse.StructuredData.OSDParser.SkipWhiteSpace(System.IO.Stream)">
<param name="reader"></param> <summary>
<returns></returns>
</member> </summary>
<member name="M:OpenMetaverse.StructuredData.OSDParser.ReadAndSkipWhitespace(System.IO.StringReader)"> <param name="stream"></param>
<summary> </member>
<member name="M:OpenMetaverse.StructuredData.OSDParser.FindByte(System.IO.Stream,System.Byte)">
</summary> <summary>
<param name="reader"></param>
<returns></returns> </summary>
</member> <param name="stream"></param>
<member name="M:OpenMetaverse.StructuredData.OSDParser.GetLengthInBrackets(System.IO.StringReader)"> <param name="toFind"></param>
<summary> <returns></returns>
</member>
</summary> <member name="M:OpenMetaverse.StructuredData.OSDParser.FindByteArray(System.IO.Stream,System.Byte[])">
<param name="reader"></param> <summary>
<returns></returns>
</member> </summary>
<member name="M:OpenMetaverse.StructuredData.OSDParser.GetStringDelimitedBy(System.IO.StringReader,System.Char)"> <param name="stream"></param>
<summary> <param name="toFind"></param>
<returns></returns>
</summary> </member>
<param name="reader"></param> <member name="M:OpenMetaverse.StructuredData.OSDParser.ConsumeBytes(System.IO.Stream,System.Int32)">
<param name="delimiter"></param> <summary>
<returns></returns>
</member> </summary>
<member name="M:OpenMetaverse.StructuredData.OSDParser.BufferCharactersEqual(System.IO.StringReader,System.Char[],System.Int32)"> <param name="stream"></param>
<summary> <param name="consumeBytes"></param>
<returns></returns>
</summary> </member>
<param name="reader"></param> <member name="M:OpenMetaverse.StructuredData.OSDParser.NetworkToHostInt(System.Byte[])">
<param name="buffer"></param> <summary>
<param name="offset"></param>
<returns></returns> </summary>
</member> <param name="binaryNetEnd"></param>
<member name="M:OpenMetaverse.StructuredData.OSDParser.UnescapeCharacter(System.String,System.Char)"> <returns></returns>
<summary> </member>
<member name="M:OpenMetaverse.StructuredData.OSDParser.NetworkToHostDouble(System.Byte[])">
</summary> <summary>
<param name="s"></param>
<param name="c"></param> </summary>
<returns></returns> <param name="binaryNetEnd"></param>
</member> <returns></returns>
<member name="M:OpenMetaverse.StructuredData.OSDParser.EscapeCharacter(System.String,System.Char)"> </member>
<summary> <member name="M:OpenMetaverse.StructuredData.OSDParser.HostToNetworkIntBytes(System.Int32)">
<summary>
</summary>
<param name="s"></param> </summary>
<param name="c"></param> <param name="intHostEnd"></param>
<returns></returns> <returns></returns>
</member> </member>
<member name="T:OpenMetaverse.StructuredData.OSDType"> <member name="T:OpenMetaverse.StructuredData.OSDType">
<summary> <summary>
</summary> </summary>
</member> </member>
<member name="F:OpenMetaverse.StructuredData.OSDType.Unknown"> <member name="F:OpenMetaverse.StructuredData.OSDType.Unknown">
<summary></summary> <summary></summary>
</member> </member>
<member name="F:OpenMetaverse.StructuredData.OSDType.Boolean"> <member name="F:OpenMetaverse.StructuredData.OSDType.Boolean">
<summary></summary> <summary></summary>
</member> </member>
<member name="F:OpenMetaverse.StructuredData.OSDType.Integer"> <member name="F:OpenMetaverse.StructuredData.OSDType.Integer">
<summary></summary> <summary></summary>
</member> </member>
<member name="F:OpenMetaverse.StructuredData.OSDType.Real"> <member name="F:OpenMetaverse.StructuredData.OSDType.Real">
<summary></summary> <summary></summary>
</member> </member>
<member name="F:OpenMetaverse.StructuredData.OSDType.String"> <member name="F:OpenMetaverse.StructuredData.OSDType.String">
<summary></summary> <summary></summary>
</member> </member>
<member name="F:OpenMetaverse.StructuredData.OSDType.UUID"> <member name="F:OpenMetaverse.StructuredData.OSDType.UUID">
<summary></summary> <summary></summary>
</member> </member>
<member name="F:OpenMetaverse.StructuredData.OSDType.Date"> <member name="F:OpenMetaverse.StructuredData.OSDType.Date">
<summary></summary> <summary></summary>
</member> </member>
<member name="F:OpenMetaverse.StructuredData.OSDType.URI"> <member name="F:OpenMetaverse.StructuredData.OSDType.URI">
<summary></summary> <summary></summary>
</member> </member>
<member name="F:OpenMetaverse.StructuredData.OSDType.Binary"> <member name="F:OpenMetaverse.StructuredData.OSDType.Binary">
<summary></summary> <summary></summary>
</member> </member>
<member name="F:OpenMetaverse.StructuredData.OSDType.Map"> <member name="F:OpenMetaverse.StructuredData.OSDType.Map">
<summary></summary> <summary></summary>
</member> </member>
<member name="F:OpenMetaverse.StructuredData.OSDType.Array"> <member name="F:OpenMetaverse.StructuredData.OSDType.Array">
<summary></summary> <summary></summary>
</member> </member>
<member name="T:OpenMetaverse.StructuredData.OSDException"> <member name="T:OpenMetaverse.StructuredData.OSDException">
<summary> <summary>
</summary> </summary>
</member> </member>
<member name="T:OpenMetaverse.StructuredData.OSD"> <member name="T:OpenMetaverse.StructuredData.OSD">
<summary> <summary>
</summary> </summary>
</member> </member>
<member name="M:OpenMetaverse.StructuredData.OSD.SerializeMembers(System.Object)"> <member name="M:OpenMetaverse.StructuredData.OSD.SerializeMembers(System.Object)">
<summary> <summary>
Uses reflection to create an SDMap from all of the SD Uses reflection to create an SDMap from all of the SD
serializable types in an object serializable types in an object
</summary> </summary>
<param name="obj">Class or struct containing serializable types</param> <param name="obj">Class or struct containing serializable types</param>
<returns>An SDMap holding the serialized values from the <returns>An SDMap holding the serialized values from the
container object</returns> container object</returns>
</member> </member>
<member name="M:OpenMetaverse.StructuredData.OSD.DeserializeMembers(System.Object@,OpenMetaverse.StructuredData.OSDMap)"> <member name="M:OpenMetaverse.StructuredData.OSD.DeserializeMembers(System.Object@,OpenMetaverse.StructuredData.OSDMap)">
<summary> <summary>
Uses reflection to deserialize member variables in an object from Uses reflection to deserialize member variables in an object from
an SDMap an SDMap
</summary> </summary>
<param name="obj">Reference to an object to fill with deserialized <param name="obj">Reference to an object to fill with deserialized
values</param> values</param>
<param name="serialized">Serialized values to put in the target <param name="serialized">Serialized values to put in the target
object</param> object</param>
</member> </member>
<member name="T:OpenMetaverse.StructuredData.OSDBoolean"> <member name="T:OpenMetaverse.StructuredData.OSDBoolean">
<summary> <summary>
</summary> </summary>
</member> </member>
<member name="T:OpenMetaverse.StructuredData.OSDInteger"> <member name="T:OpenMetaverse.StructuredData.OSDInteger">
<summary> <summary>
</summary> </summary>
</member> </member>
<member name="T:OpenMetaverse.StructuredData.OSDReal"> <member name="T:OpenMetaverse.StructuredData.OSDReal">
<summary> <summary>
</summary> </summary>
</member> </member>
<member name="T:OpenMetaverse.StructuredData.OSDString"> <member name="T:OpenMetaverse.StructuredData.OSDString">
<summary> <summary>
</summary> </summary>
</member> </member>
<member name="T:OpenMetaverse.StructuredData.OSDUUID"> <member name="T:OpenMetaverse.StructuredData.OSDUUID">
<summary> <summary>
</summary> </summary>
</member> </member>
<member name="T:OpenMetaverse.StructuredData.OSDDate"> <member name="T:OpenMetaverse.StructuredData.OSDDate">
<summary> <summary>
</summary> </summary>
</member> </member>
<member name="T:OpenMetaverse.StructuredData.OSDUri"> <member name="T:OpenMetaverse.StructuredData.OSDUri">
<summary> <summary>
</summary> </summary>
</member> </member>
<member name="T:OpenMetaverse.StructuredData.OSDBinary"> <member name="T:OpenMetaverse.StructuredData.OSDBinary">
<summary> <summary>
</summary> </summary>
</member> </member>
<member name="T:OpenMetaverse.StructuredData.OSDMap"> <member name="T:OpenMetaverse.StructuredData.OSDMap">
<summary> <summary>
</summary> </summary>
</member> </member>
<member name="T:OpenMetaverse.StructuredData.OSDArray"> <member name="T:OpenMetaverse.StructuredData.OSDArray">
<summary> <summary>
</summary> </summary>
</member> </member>
</members> </members>
</doc> </doc>

Binary file not shown.

File diff suppressed because it is too large Load Diff

Binary file not shown.

View File

@ -1,7 +1,7 @@
<configuration> <configuration>
<dllmap os="osx" dll="openjpeg-dotnet.dll" target="libopenjpeg-dotnet-2.1.3.0-dotnet-1.dylib" /> <dllmap os="osx" dll="openjpeg-dotnet.dll" target="libopenjpeg-dotnet-2.1.3.0-dotnet-1.dylib" />
<dllmap os="!windows,osx" cpu="x86-64,ia64" dll="openjpeg-dotnet.dll" target="libopenjpeg-dotnet-2.1.3.0-dotnet-1-x86_64" /> <dllmap os="!windows,osx" cpu="x86-64,ia64" dll="openjpeg-dotnet.dll" target="libopenjpeg-dotnet-2.1.3.0-dotnet-1-x86_64" />
<dllmap os="!windows,osx" cpu="x86-64,ia64" dll="openjpeg-dotnet-x86_64.dll" target="libopenjpeg-dotnet-2.1.3.0-dotnet-1-x86_64" /> <dllmap os="!windows,osx" cpu="x86-64,ia64" dll="openjpeg-dotnet-x86_64.dll" target="libopenjpeg-dotnet-2.1.3.0-dotnet-1-x86_64" />
<dllmap os="!windows,osx" cpu="x86" dll="openjpeg-dotnet.dll" target="libopenjpeg-dotnet-2.1.3.0-dotnet-1-i686" /> <dllmap os="!windows,osx" cpu="x86" dll="openjpeg-dotnet.dll" target="libopenjpeg-dotnet-2.1.3.0-dotnet-1-i686" />
<dllmap os="!windows,osx" cpu="x86" dll="openjpeg-dotnet-x86_64.dll" target="libopenjpeg-dotnet-2.1.3.0-dotnet-1-i686" /> <dllmap os="!windows,osx" cpu="x86" dll="openjpeg-dotnet-x86_64.dll" target="libopenjpeg-dotnet-2.1.3.0-dotnet-1-i686" />
</configuration> </configuration>

File diff suppressed because it is too large Load Diff

Binary file not shown.

View File

@ -212,6 +212,10 @@ ServiceConnectors = "8003/OpenSim.Server.Handlers.dll:AssetServiceConnector,8003
; Does this grid allow incoming links to any region in it? ; Does this grid allow incoming links to any region in it?
; If false, HG TPs happen only to the Default regions specified in [GridService] section ; If false, HG TPs happen only to the Default regions specified in [GridService] section
AllowTeleportsToAnyRegion = true AllowTeleportsToAnyRegion = true
; If you run this gatekeeper server behind a proxy, set this to true
; HasProxy = true
[UserAgentService] [UserAgentService]
LocalServiceModule = "OpenSim.Services.HypergridService.dll:UserAgentService" LocalServiceModule = "OpenSim.Services.HypergridService.dll:UserAgentService"
@ -220,6 +224,9 @@ ServiceConnectors = "8003/OpenSim.Server.Handlers.dll:AssetServiceConnector,8003
GridService = "OpenSim.Services.GridService.dll:GridService" GridService = "OpenSim.Services.GridService.dll:GridService"
GatekeeperService = "OpenSim.Services.HypergridService.dll:GatekeeperService" GatekeeperService = "OpenSim.Services.HypergridService.dll:GatekeeperService"
; If you run this user agent server behind a proxy, set this to true
; HasProxy = true
;; If you separate the UserAgentService from the LoginService, set this to ;; If you separate the UserAgentService from the LoginService, set this to
;; the IP address of the machine where your LoginService is ;; the IP address of the machine where your LoginService is
;LoginServerIP = "127.0.0.1" ;LoginServerIP = "127.0.0.1"

View File

@ -141,6 +141,9 @@ ServiceConnectors = "8003/OpenSim.Server.Handlers.dll:AssetServiceConnector,8003
; For snowglobe's web map ; For snowglobe's web map
; MapTileURL = ""; ; MapTileURL = "";
; If you run this login server behind a proxy, set this to true
; HasProxy = true
[GridInfoService] [GridInfoService]
; These settings are used to return information on a get_grid_info call. ; These settings are used to return information on a get_grid_info call.