Update svn properties, add copyright header, formatting cleanup.
parent
c266df0dfe
commit
54ccca1e2c
|
@ -227,7 +227,7 @@ namespace OpenSim.ApplicationPlugins.Rest.Inventory
|
|||
// them easy to reach from anywhere in the assembly.
|
||||
|
||||
Rest.main = openSim;
|
||||
if(Rest.main == null)
|
||||
if (Rest.main == null)
|
||||
throw new Exception("OpenSim base pointer is null");
|
||||
|
||||
Rest.Plugin = this;
|
||||
|
|
|
@ -503,7 +503,7 @@ namespace OpenSim.Framework.Communications.Cache
|
|||
req.Params = transferRequest.TransferInfo.Params;
|
||||
req.AssetInf = new AssetInfo(asset);
|
||||
req.NumPackets = CalculateNumPackets(asset.Data);
|
||||
lock(AssetRequests) AssetRequests.Add(req);
|
||||
lock (AssetRequests) AssetRequests.Add(req);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
|
@ -526,7 +526,7 @@ namespace OpenSim.Framework.Communications.Cache
|
|||
|
||||
for (int i = 0; i < num; i++)
|
||||
{
|
||||
lock(AssetRequests)
|
||||
lock (AssetRequests)
|
||||
{
|
||||
req = AssetRequests[0];
|
||||
AssetRequests.RemoveAt(0);
|
||||
|
|
|
@ -1,13 +1,38 @@
|
|||
using System;
|
||||
|
||||
using OpenMetaverse;
|
||||
|
||||
|
||||
namespace OpenSim.Framework.Communications
|
||||
{
|
||||
public interface IAuthentication
|
||||
{
|
||||
string GetNewKey(string url, UUID userID, UUID authToken);
|
||||
bool VerifyKey(UUID userID, string key);
|
||||
}
|
||||
}
|
||||
/*
|
||||
* Copyright (c) Contributors, http://opensimulator.org/
|
||||
* See CONTRIBUTORS.TXT for a full list of copyright holders.
|
||||
*
|
||||
* Redistribution and use in source and binary forms, with or without
|
||||
* modification, are permitted provided that the following conditions are met:
|
||||
* * Redistributions of source code must retain the above copyright
|
||||
* notice, this list of conditions and the following disclaimer.
|
||||
* * Redistributions in binary form must reproduce the above copyright
|
||||
* notice, this list of conditions and the following disclaimer in the
|
||||
* documentation and/or other materials provided with the distribution.
|
||||
* * Neither the name of the OpenSimulator Project nor the
|
||||
* names of its contributors may be used to endorse or promote products
|
||||
* derived from this software without specific prior written permission.
|
||||
*
|
||||
* THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS'' AND ANY
|
||||
* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
|
||||
* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
|
||||
* DISCLAIMED. IN NO EVENT SHALL THE CONTRIBUTORS BE LIABLE FOR ANY
|
||||
* DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
|
||||
* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
|
||||
* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
|
||||
* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
||||
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
|
||||
* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
*/
|
||||
|
||||
using System;
|
||||
using OpenMetaverse;
|
||||
|
||||
namespace OpenSim.Framework.Communications
|
||||
{
|
||||
public interface IAuthentication
|
||||
{
|
||||
string GetNewKey(string url, UUID userID, UUID authToken);
|
||||
bool VerifyKey(UUID userID, string key);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -1,172 +1,172 @@
|
|||
/*
|
||||
* Copyright (c) Contributors, http://opensimulator.org/
|
||||
* See CONTRIBUTORS.TXT for a full list of copyright holders.
|
||||
*
|
||||
* Redistribution and use in source and binary forms, with or without
|
||||
* modification, are permitted provided that the following conditions are met:
|
||||
* * Redistributions of source code must retain the above copyright
|
||||
* notice, this list of conditions and the following disclaimer.
|
||||
* * Redistributions in binary form must reproduce the above copyright
|
||||
* notice, this list of conditions and the following disclaimer in the
|
||||
* documentation and/or other materials provided with the distribution.
|
||||
* * Neither the name of the OpenSim Project nor the
|
||||
* names of its contributors may be used to endorse or promote products
|
||||
* derived from this software without specific prior written permission.
|
||||
*
|
||||
* THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS'' AND ANY
|
||||
* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
|
||||
* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
|
||||
* DISCLAIMED. IN NO EVENT SHALL THE CONTRIBUTORS BE LIABLE FOR ANY
|
||||
* DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
|
||||
* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
|
||||
* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
|
||||
* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
||||
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
|
||||
* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
*/
|
||||
|
||||
using System;
|
||||
using System.Collections;
|
||||
using System.IO;
|
||||
using System.Reflection;
|
||||
using System.Text;
|
||||
using log4net;
|
||||
using Nini.Config;
|
||||
using Nwc.XmlRpc;
|
||||
using OpenSim.Framework.Servers;
|
||||
|
||||
namespace OpenSim.Framework.Communications.Services
|
||||
{
|
||||
public class GridInfoService
|
||||
{
|
||||
private static readonly ILog _log = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType);
|
||||
|
||||
private Hashtable _info = new Hashtable();
|
||||
|
||||
/// <summary>
|
||||
/// Instantiate a GridInfoService object.
|
||||
/// </summary>
|
||||
/// <param name="configPath">path to config path containing
|
||||
/// grid information</param>
|
||||
/// <remarks>
|
||||
/// GridInfoService uses the [GridInfo] section of the
|
||||
/// standard OpenSim.ini file --- which is not optimal, but
|
||||
/// anything else requires a general redesign of the config
|
||||
/// system.
|
||||
/// </remarks>
|
||||
public GridInfoService(IConfigSource configSource)
|
||||
{
|
||||
loadGridInfo(configSource);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Default constructor, uses OpenSim.ini.
|
||||
/// </summary>
|
||||
public GridInfoService()
|
||||
{
|
||||
try
|
||||
{
|
||||
IConfigSource configSource = new IniConfigSource(Path.Combine(Util.configDir(), "OpenSim.ini"));
|
||||
loadGridInfo(configSource);
|
||||
}
|
||||
catch (FileNotFoundException)
|
||||
{
|
||||
_log.Warn("[GridInfoService] no OpenSim.ini file found --- GridInfoServices WILL NOT BE AVAILABLE to your users");
|
||||
}
|
||||
}
|
||||
|
||||
private void loadGridInfo(IConfigSource configSource)
|
||||
{
|
||||
_info["platform"] = "OpenSim";
|
||||
try
|
||||
{
|
||||
IConfig startupCfg = configSource.Configs["Startup"];
|
||||
IConfig gridCfg = configSource.Configs["GridInfo"];
|
||||
IConfig netCfg = configSource.Configs["Network"];
|
||||
|
||||
bool grid = startupCfg.GetBoolean("gridmode", false);
|
||||
|
||||
if (grid)
|
||||
_info["mode"] = "grid";
|
||||
else
|
||||
_info["mode"] = "standalone";
|
||||
|
||||
|
||||
if (null != gridCfg)
|
||||
{
|
||||
foreach (string k in gridCfg.GetKeys())
|
||||
{
|
||||
_info[k] = gridCfg.GetString(k);
|
||||
}
|
||||
}
|
||||
else if (null != netCfg)
|
||||
{
|
||||
if (grid)
|
||||
_info["login"]
|
||||
= netCfg.GetString(
|
||||
"user_server_url", "http://127.0.0.1:" + UserConfig.DefaultHttpPort.ToString());
|
||||
else
|
||||
_info["login"]
|
||||
= String.Format(
|
||||
"http://127.0.0.1:{0}/",
|
||||
netCfg.GetString(
|
||||
"http_listener_port", NetworkServersInfo.DefaultHttpListenerPort.ToString()));
|
||||
|
||||
IssueWarning();
|
||||
}
|
||||
else
|
||||
{
|
||||
_info["login"] = "http://127.0.0.1:9000/";
|
||||
IssueWarning();
|
||||
}
|
||||
}
|
||||
catch (Exception)
|
||||
{
|
||||
_log.Debug("[GridInfoService] cannot get grid info from config source, using minimal defaults");
|
||||
}
|
||||
_log.InfoFormat("[GridInfoService] Grid info service initialized with {0} keys", _info.Count);
|
||||
|
||||
}
|
||||
|
||||
private void IssueWarning()
|
||||
{
|
||||
_log.Warn("[GridInfoService] found no [GridInfo] section in your OpenSim.ini");
|
||||
_log.Warn("[GridInfoService] trying to guess sensible defaults, you might want to provide better ones:");
|
||||
foreach (string k in _info.Keys)
|
||||
{
|
||||
_log.WarnFormat("[GridInfoService] {0}: {1}", k, _info[k]);
|
||||
}
|
||||
}
|
||||
|
||||
public XmlRpcResponse XmlRpcGridInfoMethod(XmlRpcRequest request)
|
||||
{
|
||||
XmlRpcResponse response = new XmlRpcResponse();
|
||||
Hashtable responseData = new Hashtable();
|
||||
|
||||
_log.Info("[GridInfo]: Request for grid info");
|
||||
|
||||
foreach (string k in _info.Keys)
|
||||
{
|
||||
responseData[k] = _info[k];
|
||||
}
|
||||
response.Value = responseData;
|
||||
|
||||
return response;
|
||||
}
|
||||
|
||||
public string RestGetGridInfoMethod(string request, string path, string param,
|
||||
OSHttpRequest httpRequest, OSHttpResponse httpResponse)
|
||||
{
|
||||
StringBuilder sb = new StringBuilder();
|
||||
|
||||
sb.Append("<gridinfo>\n");
|
||||
foreach (string k in _info.Keys)
|
||||
{
|
||||
sb.AppendFormat("<{0}>{1}</{0}>\n", k, _info[k]);
|
||||
}
|
||||
sb.Append("</gridinfo>\n");
|
||||
|
||||
return sb.ToString();
|
||||
}
|
||||
}
|
||||
}
|
||||
/*
|
||||
* Copyright (c) Contributors, http://opensimulator.org/
|
||||
* See CONTRIBUTORS.TXT for a full list of copyright holders.
|
||||
*
|
||||
* Redistribution and use in source and binary forms, with or without
|
||||
* modification, are permitted provided that the following conditions are met:
|
||||
* * Redistributions of source code must retain the above copyright
|
||||
* notice, this list of conditions and the following disclaimer.
|
||||
* * Redistributions in binary form must reproduce the above copyright
|
||||
* notice, this list of conditions and the following disclaimer in the
|
||||
* documentation and/or other materials provided with the distribution.
|
||||
* * Neither the name of the OpenSim Project nor the
|
||||
* names of its contributors may be used to endorse or promote products
|
||||
* derived from this software without specific prior written permission.
|
||||
*
|
||||
* THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS'' AND ANY
|
||||
* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
|
||||
* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
|
||||
* DISCLAIMED. IN NO EVENT SHALL THE CONTRIBUTORS BE LIABLE FOR ANY
|
||||
* DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
|
||||
* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
|
||||
* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
|
||||
* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
||||
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
|
||||
* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
*/
|
||||
|
||||
using System;
|
||||
using System.Collections;
|
||||
using System.IO;
|
||||
using System.Reflection;
|
||||
using System.Text;
|
||||
using log4net;
|
||||
using Nini.Config;
|
||||
using Nwc.XmlRpc;
|
||||
using OpenSim.Framework.Servers;
|
||||
|
||||
namespace OpenSim.Framework.Communications.Services
|
||||
{
|
||||
public class GridInfoService
|
||||
{
|
||||
private static readonly ILog _log = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType);
|
||||
|
||||
private Hashtable _info = new Hashtable();
|
||||
|
||||
/// <summary>
|
||||
/// Instantiate a GridInfoService object.
|
||||
/// </summary>
|
||||
/// <param name="configPath">path to config path containing
|
||||
/// grid information</param>
|
||||
/// <remarks>
|
||||
/// GridInfoService uses the [GridInfo] section of the
|
||||
/// standard OpenSim.ini file --- which is not optimal, but
|
||||
/// anything else requires a general redesign of the config
|
||||
/// system.
|
||||
/// </remarks>
|
||||
public GridInfoService(IConfigSource configSource)
|
||||
{
|
||||
loadGridInfo(configSource);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Default constructor, uses OpenSim.ini.
|
||||
/// </summary>
|
||||
public GridInfoService()
|
||||
{
|
||||
try
|
||||
{
|
||||
IConfigSource configSource = new IniConfigSource(Path.Combine(Util.configDir(), "OpenSim.ini"));
|
||||
loadGridInfo(configSource);
|
||||
}
|
||||
catch (FileNotFoundException)
|
||||
{
|
||||
_log.Warn("[GridInfoService] no OpenSim.ini file found --- GridInfoServices WILL NOT BE AVAILABLE to your users");
|
||||
}
|
||||
}
|
||||
|
||||
private void loadGridInfo(IConfigSource configSource)
|
||||
{
|
||||
_info["platform"] = "OpenSim";
|
||||
try
|
||||
{
|
||||
IConfig startupCfg = configSource.Configs["Startup"];
|
||||
IConfig gridCfg = configSource.Configs["GridInfo"];
|
||||
IConfig netCfg = configSource.Configs["Network"];
|
||||
|
||||
bool grid = startupCfg.GetBoolean("gridmode", false);
|
||||
|
||||
if (grid)
|
||||
_info["mode"] = "grid";
|
||||
else
|
||||
_info["mode"] = "standalone";
|
||||
|
||||
|
||||
if (null != gridCfg)
|
||||
{
|
||||
foreach (string k in gridCfg.GetKeys())
|
||||
{
|
||||
_info[k] = gridCfg.GetString(k);
|
||||
}
|
||||
}
|
||||
else if (null != netCfg)
|
||||
{
|
||||
if (grid)
|
||||
_info["login"]
|
||||
= netCfg.GetString(
|
||||
"user_server_url", "http://127.0.0.1:" + UserConfig.DefaultHttpPort.ToString());
|
||||
else
|
||||
_info["login"]
|
||||
= String.Format(
|
||||
"http://127.0.0.1:{0}/",
|
||||
netCfg.GetString(
|
||||
"http_listener_port", NetworkServersInfo.DefaultHttpListenerPort.ToString()));
|
||||
|
||||
IssueWarning();
|
||||
}
|
||||
else
|
||||
{
|
||||
_info["login"] = "http://127.0.0.1:9000/";
|
||||
IssueWarning();
|
||||
}
|
||||
}
|
||||
catch (Exception)
|
||||
{
|
||||
_log.Debug("[GridInfoService] cannot get grid info from config source, using minimal defaults");
|
||||
}
|
||||
_log.InfoFormat("[GridInfoService] Grid info service initialized with {0} keys", _info.Count);
|
||||
|
||||
}
|
||||
|
||||
private void IssueWarning()
|
||||
{
|
||||
_log.Warn("[GridInfoService] found no [GridInfo] section in your OpenSim.ini");
|
||||
_log.Warn("[GridInfoService] trying to guess sensible defaults, you might want to provide better ones:");
|
||||
foreach (string k in _info.Keys)
|
||||
{
|
||||
_log.WarnFormat("[GridInfoService] {0}: {1}", k, _info[k]);
|
||||
}
|
||||
}
|
||||
|
||||
public XmlRpcResponse XmlRpcGridInfoMethod(XmlRpcRequest request)
|
||||
{
|
||||
XmlRpcResponse response = new XmlRpcResponse();
|
||||
Hashtable responseData = new Hashtable();
|
||||
|
||||
_log.Info("[GridInfo]: Request for grid info");
|
||||
|
||||
foreach (string k in _info.Keys)
|
||||
{
|
||||
responseData[k] = _info[k];
|
||||
}
|
||||
response.Value = responseData;
|
||||
|
||||
return response;
|
||||
}
|
||||
|
||||
public string RestGetGridInfoMethod(string request, string path, string param,
|
||||
OSHttpRequest httpRequest, OSHttpResponse httpResponse)
|
||||
{
|
||||
StringBuilder sb = new StringBuilder();
|
||||
|
||||
sb.Append("<gridinfo>\n");
|
||||
foreach (string k in _info.Keys)
|
||||
{
|
||||
sb.AppendFormat("<{0}>{1}</{0}>\n", k, _info[k]);
|
||||
}
|
||||
sb.Append("</gridinfo>\n");
|
||||
|
||||
return sb.ToString();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
|
@ -1,224 +1,224 @@
|
|||
/*
|
||||
* Copyright (c) Contributors, http://opensimulator.org/
|
||||
* See CONTRIBUTORS.TXT for a full list of copyright holders.
|
||||
*
|
||||
* Redistribution and use in source and binary forms, with or without
|
||||
* modification, are permitted provided that the following conditions are met:
|
||||
* * Redistributions of source code must retain the above copyright
|
||||
* notice, this list of conditions and the following disclaimer.
|
||||
* * Redistributions in binary form must reproduce the above copyright
|
||||
* notice, this list of conditions and the following disclaimer in the
|
||||
* documentation and/or other materials provided with the distribution.
|
||||
* * Neither the name of the OpenSim Project nor the
|
||||
* names of its contributors may be used to endorse or promote products
|
||||
* derived from this software without specific prior written permission.
|
||||
*
|
||||
* THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS'' AND ANY
|
||||
* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
|
||||
* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
|
||||
* DISCLAIMED. IN NO EVENT SHALL THE CONTRIBUTORS BE LIABLE FOR ANY
|
||||
* DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
|
||||
* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
|
||||
* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
|
||||
* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
||||
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
|
||||
* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
*/
|
||||
|
||||
using System;
|
||||
using System.Collections;
|
||||
using System.Collections.Generic;
|
||||
using System.Reflection;
|
||||
using System.Text.RegularExpressions;
|
||||
using log4net;
|
||||
using Nwc.XmlRpc;
|
||||
using OpenMetaverse;
|
||||
using OpenSim.Data;
|
||||
using OpenSim.Framework;
|
||||
using OpenSim.Framework.Communications;
|
||||
using OpenSim.Framework.Communications.Services;
|
||||
using OpenSim.Framework.Communications.Cache;
|
||||
using OpenSim.Framework.Communications.Capabilities;
|
||||
using OpenSim.Framework.Servers;
|
||||
|
||||
namespace OpenSim.Grid.UserServer.Modules
|
||||
{
|
||||
|
||||
/// <summary>
|
||||
/// Hypergrid login service used in grid mode.
|
||||
/// </summary>
|
||||
public class UserLoginAuthService : HGLoginAuthService
|
||||
{
|
||||
private static readonly ILog m_log = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType);
|
||||
|
||||
public UserConfig m_config;
|
||||
private readonly IRegionProfileRouter m_regionProfileService;
|
||||
|
||||
protected BaseHttpServer m_httpServer;
|
||||
|
||||
public UserLoginAuthService(
|
||||
UserManagerBase userManager, IInterServiceInventoryServices inventoryService,
|
||||
LibraryRootFolder libraryRootFolder,
|
||||
UserConfig config, string welcomeMess, IRegionProfileRouter regionProfileService)
|
||||
: base(userManager, welcomeMess, inventoryService, null, true, libraryRootFolder, null)
|
||||
{
|
||||
m_config = config;
|
||||
m_defaultHomeX = m_config.DefaultX;
|
||||
m_defaultHomeY = m_config.DefaultY;
|
||||
m_inventoryService = inventoryService;
|
||||
m_regionProfileService = regionProfileService;
|
||||
|
||||
NetworkServersInfo serversinfo = new NetworkServersInfo(1000, 1000);
|
||||
serversinfo.GridRecvKey = m_config.GridRecvKey;
|
||||
serversinfo.GridSendKey = m_config.GridSendKey;
|
||||
serversinfo.GridURL = m_config.GridServerURL.ToString();
|
||||
serversinfo.InventoryURL = m_config.InventoryUrl.ToString();
|
||||
serversinfo.UserURL = m_config.AuthUrl.ToString();
|
||||
SetServersInfo(serversinfo);
|
||||
}
|
||||
|
||||
public void RegisterHandlers(BaseHttpServer httpServer)
|
||||
{
|
||||
m_httpServer = httpServer;
|
||||
|
||||
httpServer.AddXmlRPCHandler("hg_login", XmlRpcLoginMethod);
|
||||
httpServer.AddXmlRPCHandler("hg_new_auth_key", XmlRpcGenerateKeyMethod);
|
||||
httpServer.AddXmlRPCHandler("hg_verify_auth_key", XmlRpcVerifyKeyMethod);
|
||||
}
|
||||
|
||||
|
||||
public override void LogOffUser(UserProfileData theUser, string message)
|
||||
{
|
||||
RegionProfileData SimInfo;
|
||||
try
|
||||
{
|
||||
SimInfo = m_regionProfileService.RequestSimProfileData(
|
||||
theUser.CurrentAgent.Handle, m_config.GridServerURL,
|
||||
m_config.GridSendKey, m_config.GridRecvKey);
|
||||
|
||||
if (SimInfo == null)
|
||||
{
|
||||
m_log.Error("[GRID]: Region user was in isn't currently logged in");
|
||||
return;
|
||||
}
|
||||
}
|
||||
catch (Exception)
|
||||
{
|
||||
m_log.Error("[GRID]: Unable to look up region to log user off");
|
||||
return;
|
||||
}
|
||||
|
||||
// Prepare notification
|
||||
Hashtable SimParams = new Hashtable();
|
||||
SimParams["agent_id"] = theUser.ID.ToString();
|
||||
SimParams["region_secret"] = theUser.CurrentAgent.SecureSessionID.ToString();
|
||||
SimParams["region_secret2"] = SimInfo.regionSecret;
|
||||
//m_log.Info(SimInfo.regionSecret);
|
||||
SimParams["regionhandle"] = theUser.CurrentAgent.Handle.ToString();
|
||||
SimParams["message"] = message;
|
||||
ArrayList SendParams = new ArrayList();
|
||||
SendParams.Add(SimParams);
|
||||
|
||||
m_log.InfoFormat(
|
||||
"[ASSUMED CRASH]: Telling region {0} @ {1},{2} ({3}) that their agent is dead: {4}",
|
||||
SimInfo.regionName, SimInfo.regionLocX, SimInfo.regionLocY, SimInfo.httpServerURI,
|
||||
theUser.FirstName + " " + theUser.SurName);
|
||||
|
||||
try
|
||||
{
|
||||
XmlRpcRequest GridReq = new XmlRpcRequest("logoff_user", SendParams);
|
||||
XmlRpcResponse GridResp = GridReq.Send(SimInfo.httpServerURI, 6000);
|
||||
|
||||
if (GridResp.IsFault)
|
||||
{
|
||||
m_log.ErrorFormat(
|
||||
"[LOGIN]: XMLRPC request for {0} failed, fault code: {1}, reason: {2}, This is likely an old region revision.",
|
||||
SimInfo.httpServerURI, GridResp.FaultCode, GridResp.FaultString);
|
||||
}
|
||||
}
|
||||
catch (Exception)
|
||||
{
|
||||
m_log.Error("[LOGIN]: Error telling region to logout user!");
|
||||
}
|
||||
|
||||
// Prepare notification
|
||||
SimParams = new Hashtable();
|
||||
SimParams["agent_id"] = theUser.ID.ToString();
|
||||
SimParams["region_secret"] = SimInfo.regionSecret;
|
||||
//m_log.Info(SimInfo.regionSecret);
|
||||
SimParams["regionhandle"] = theUser.CurrentAgent.Handle.ToString();
|
||||
SimParams["message"] = message;
|
||||
SendParams = new ArrayList();
|
||||
SendParams.Add(SimParams);
|
||||
|
||||
m_log.InfoFormat(
|
||||
"[ASSUMED CRASH]: Telling region {0} @ {1},{2} ({3}) that their agent is dead: {4}",
|
||||
SimInfo.regionName, SimInfo.regionLocX, SimInfo.regionLocY, SimInfo.httpServerURI,
|
||||
theUser.FirstName + " " + theUser.SurName);
|
||||
|
||||
try
|
||||
{
|
||||
XmlRpcRequest GridReq = new XmlRpcRequest("logoff_user", SendParams);
|
||||
XmlRpcResponse GridResp = GridReq.Send(SimInfo.httpServerURI, 6000);
|
||||
|
||||
if (GridResp.IsFault)
|
||||
{
|
||||
m_log.ErrorFormat(
|
||||
"[LOGIN]: XMLRPC request for {0} failed, fault code: {1}, reason: {2}, This is likely an old region revision.",
|
||||
SimInfo.httpServerURI, GridResp.FaultCode, GridResp.FaultString);
|
||||
}
|
||||
}
|
||||
catch (Exception)
|
||||
{
|
||||
m_log.Error("[LOGIN]: Error telling region to logout user!");
|
||||
}
|
||||
//base.LogOffUser(theUser);
|
||||
}
|
||||
|
||||
protected override RegionInfo RequestClosestRegion(string region)
|
||||
{
|
||||
RegionProfileData profileData = m_regionProfileService.RequestSimProfileData(region,
|
||||
m_config.GridServerURL, m_config.GridSendKey, m_config.GridRecvKey);
|
||||
|
||||
if (profileData != null)
|
||||
{
|
||||
return profileData.ToRegionInfo();
|
||||
}
|
||||
else
|
||||
{
|
||||
return null;
|
||||
}
|
||||
}
|
||||
|
||||
protected override RegionInfo GetRegionInfo(ulong homeRegionHandle)
|
||||
{
|
||||
RegionProfileData profileData = m_regionProfileService.RequestSimProfileData(homeRegionHandle,
|
||||
m_config.GridServerURL, m_config.GridSendKey,
|
||||
m_config.GridRecvKey);
|
||||
if (profileData != null)
|
||||
{
|
||||
return profileData.ToRegionInfo();
|
||||
}
|
||||
else
|
||||
{
|
||||
return null;
|
||||
}
|
||||
}
|
||||
|
||||
protected override RegionInfo GetRegionInfo(UUID homeRegionId)
|
||||
{
|
||||
RegionProfileData profileData = m_regionProfileService.RequestSimProfileData(homeRegionId,
|
||||
m_config.GridServerURL, m_config.GridSendKey,
|
||||
m_config.GridRecvKey);
|
||||
if (profileData != null)
|
||||
{
|
||||
return profileData.ToRegionInfo();
|
||||
}
|
||||
else
|
||||
{
|
||||
return null;
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
/*
|
||||
* Copyright (c) Contributors, http://opensimulator.org/
|
||||
* See CONTRIBUTORS.TXT for a full list of copyright holders.
|
||||
*
|
||||
* Redistribution and use in source and binary forms, with or without
|
||||
* modification, are permitted provided that the following conditions are met:
|
||||
* * Redistributions of source code must retain the above copyright
|
||||
* notice, this list of conditions and the following disclaimer.
|
||||
* * Redistributions in binary form must reproduce the above copyright
|
||||
* notice, this list of conditions and the following disclaimer in the
|
||||
* documentation and/or other materials provided with the distribution.
|
||||
* * Neither the name of the OpenSim Project nor the
|
||||
* names of its contributors may be used to endorse or promote products
|
||||
* derived from this software without specific prior written permission.
|
||||
*
|
||||
* THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS'' AND ANY
|
||||
* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
|
||||
* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
|
||||
* DISCLAIMED. IN NO EVENT SHALL THE CONTRIBUTORS BE LIABLE FOR ANY
|
||||
* DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
|
||||
* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
|
||||
* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
|
||||
* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
||||
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
|
||||
* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
*/
|
||||
|
||||
using System;
|
||||
using System.Collections;
|
||||
using System.Collections.Generic;
|
||||
using System.Reflection;
|
||||
using System.Text.RegularExpressions;
|
||||
using log4net;
|
||||
using Nwc.XmlRpc;
|
||||
using OpenMetaverse;
|
||||
using OpenSim.Data;
|
||||
using OpenSim.Framework;
|
||||
using OpenSim.Framework.Communications;
|
||||
using OpenSim.Framework.Communications.Services;
|
||||
using OpenSim.Framework.Communications.Cache;
|
||||
using OpenSim.Framework.Communications.Capabilities;
|
||||
using OpenSim.Framework.Servers;
|
||||
|
||||
namespace OpenSim.Grid.UserServer.Modules
|
||||
{
|
||||
|
||||
/// <summary>
|
||||
/// Hypergrid login service used in grid mode.
|
||||
/// </summary>
|
||||
public class UserLoginAuthService : HGLoginAuthService
|
||||
{
|
||||
private static readonly ILog m_log = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType);
|
||||
|
||||
public UserConfig m_config;
|
||||
private readonly IRegionProfileRouter m_regionProfileService;
|
||||
|
||||
protected BaseHttpServer m_httpServer;
|
||||
|
||||
public UserLoginAuthService(
|
||||
UserManagerBase userManager, IInterServiceInventoryServices inventoryService,
|
||||
LibraryRootFolder libraryRootFolder,
|
||||
UserConfig config, string welcomeMess, IRegionProfileRouter regionProfileService)
|
||||
: base(userManager, welcomeMess, inventoryService, null, true, libraryRootFolder, null)
|
||||
{
|
||||
m_config = config;
|
||||
m_defaultHomeX = m_config.DefaultX;
|
||||
m_defaultHomeY = m_config.DefaultY;
|
||||
m_inventoryService = inventoryService;
|
||||
m_regionProfileService = regionProfileService;
|
||||
|
||||
NetworkServersInfo serversinfo = new NetworkServersInfo(1000, 1000);
|
||||
serversinfo.GridRecvKey = m_config.GridRecvKey;
|
||||
serversinfo.GridSendKey = m_config.GridSendKey;
|
||||
serversinfo.GridURL = m_config.GridServerURL.ToString();
|
||||
serversinfo.InventoryURL = m_config.InventoryUrl.ToString();
|
||||
serversinfo.UserURL = m_config.AuthUrl.ToString();
|
||||
SetServersInfo(serversinfo);
|
||||
}
|
||||
|
||||
public void RegisterHandlers(BaseHttpServer httpServer)
|
||||
{
|
||||
m_httpServer = httpServer;
|
||||
|
||||
httpServer.AddXmlRPCHandler("hg_login", XmlRpcLoginMethod);
|
||||
httpServer.AddXmlRPCHandler("hg_new_auth_key", XmlRpcGenerateKeyMethod);
|
||||
httpServer.AddXmlRPCHandler("hg_verify_auth_key", XmlRpcVerifyKeyMethod);
|
||||
}
|
||||
|
||||
|
||||
public override void LogOffUser(UserProfileData theUser, string message)
|
||||
{
|
||||
RegionProfileData SimInfo;
|
||||
try
|
||||
{
|
||||
SimInfo = m_regionProfileService.RequestSimProfileData(
|
||||
theUser.CurrentAgent.Handle, m_config.GridServerURL,
|
||||
m_config.GridSendKey, m_config.GridRecvKey);
|
||||
|
||||
if (SimInfo == null)
|
||||
{
|
||||
m_log.Error("[GRID]: Region user was in isn't currently logged in");
|
||||
return;
|
||||
}
|
||||
}
|
||||
catch (Exception)
|
||||
{
|
||||
m_log.Error("[GRID]: Unable to look up region to log user off");
|
||||
return;
|
||||
}
|
||||
|
||||
// Prepare notification
|
||||
Hashtable SimParams = new Hashtable();
|
||||
SimParams["agent_id"] = theUser.ID.ToString();
|
||||
SimParams["region_secret"] = theUser.CurrentAgent.SecureSessionID.ToString();
|
||||
SimParams["region_secret2"] = SimInfo.regionSecret;
|
||||
//m_log.Info(SimInfo.regionSecret);
|
||||
SimParams["regionhandle"] = theUser.CurrentAgent.Handle.ToString();
|
||||
SimParams["message"] = message;
|
||||
ArrayList SendParams = new ArrayList();
|
||||
SendParams.Add(SimParams);
|
||||
|
||||
m_log.InfoFormat(
|
||||
"[ASSUMED CRASH]: Telling region {0} @ {1},{2} ({3}) that their agent is dead: {4}",
|
||||
SimInfo.regionName, SimInfo.regionLocX, SimInfo.regionLocY, SimInfo.httpServerURI,
|
||||
theUser.FirstName + " " + theUser.SurName);
|
||||
|
||||
try
|
||||
{
|
||||
XmlRpcRequest GridReq = new XmlRpcRequest("logoff_user", SendParams);
|
||||
XmlRpcResponse GridResp = GridReq.Send(SimInfo.httpServerURI, 6000);
|
||||
|
||||
if (GridResp.IsFault)
|
||||
{
|
||||
m_log.ErrorFormat(
|
||||
"[LOGIN]: XMLRPC request for {0} failed, fault code: {1}, reason: {2}, This is likely an old region revision.",
|
||||
SimInfo.httpServerURI, GridResp.FaultCode, GridResp.FaultString);
|
||||
}
|
||||
}
|
||||
catch (Exception)
|
||||
{
|
||||
m_log.Error("[LOGIN]: Error telling region to logout user!");
|
||||
}
|
||||
|
||||
// Prepare notification
|
||||
SimParams = new Hashtable();
|
||||
SimParams["agent_id"] = theUser.ID.ToString();
|
||||
SimParams["region_secret"] = SimInfo.regionSecret;
|
||||
//m_log.Info(SimInfo.regionSecret);
|
||||
SimParams["regionhandle"] = theUser.CurrentAgent.Handle.ToString();
|
||||
SimParams["message"] = message;
|
||||
SendParams = new ArrayList();
|
||||
SendParams.Add(SimParams);
|
||||
|
||||
m_log.InfoFormat(
|
||||
"[ASSUMED CRASH]: Telling region {0} @ {1},{2} ({3}) that their agent is dead: {4}",
|
||||
SimInfo.regionName, SimInfo.regionLocX, SimInfo.regionLocY, SimInfo.httpServerURI,
|
||||
theUser.FirstName + " " + theUser.SurName);
|
||||
|
||||
try
|
||||
{
|
||||
XmlRpcRequest GridReq = new XmlRpcRequest("logoff_user", SendParams);
|
||||
XmlRpcResponse GridResp = GridReq.Send(SimInfo.httpServerURI, 6000);
|
||||
|
||||
if (GridResp.IsFault)
|
||||
{
|
||||
m_log.ErrorFormat(
|
||||
"[LOGIN]: XMLRPC request for {0} failed, fault code: {1}, reason: {2}, This is likely an old region revision.",
|
||||
SimInfo.httpServerURI, GridResp.FaultCode, GridResp.FaultString);
|
||||
}
|
||||
}
|
||||
catch (Exception)
|
||||
{
|
||||
m_log.Error("[LOGIN]: Error telling region to logout user!");
|
||||
}
|
||||
//base.LogOffUser(theUser);
|
||||
}
|
||||
|
||||
protected override RegionInfo RequestClosestRegion(string region)
|
||||
{
|
||||
RegionProfileData profileData = m_regionProfileService.RequestSimProfileData(region,
|
||||
m_config.GridServerURL, m_config.GridSendKey, m_config.GridRecvKey);
|
||||
|
||||
if (profileData != null)
|
||||
{
|
||||
return profileData.ToRegionInfo();
|
||||
}
|
||||
else
|
||||
{
|
||||
return null;
|
||||
}
|
||||
}
|
||||
|
||||
protected override RegionInfo GetRegionInfo(ulong homeRegionHandle)
|
||||
{
|
||||
RegionProfileData profileData = m_regionProfileService.RequestSimProfileData(homeRegionHandle,
|
||||
m_config.GridServerURL, m_config.GridSendKey,
|
||||
m_config.GridRecvKey);
|
||||
if (profileData != null)
|
||||
{
|
||||
return profileData.ToRegionInfo();
|
||||
}
|
||||
else
|
||||
{
|
||||
return null;
|
||||
}
|
||||
}
|
||||
|
||||
protected override RegionInfo GetRegionInfo(UUID homeRegionId)
|
||||
{
|
||||
RegionProfileData profileData = m_regionProfileService.RequestSimProfileData(homeRegionId,
|
||||
m_config.GridServerURL, m_config.GridSendKey,
|
||||
m_config.GridRecvKey);
|
||||
if (profileData != null)
|
||||
{
|
||||
return profileData.ToRegionInfo();
|
||||
}
|
||||
else
|
||||
{
|
||||
return null;
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
|
|
@ -184,7 +184,7 @@ namespace OpenSim.Region.CoreModules.Avatar.InstantMessage
|
|||
bool success = SynchronousRestObjectPoster.BeginPostObject<GridInstantMessage, bool>(
|
||||
"POST", m_RestURL+"/SaveMessage/", im);
|
||||
|
||||
if(im.dialog == (byte)InstantMessageDialog.MessageFromAgent)
|
||||
if (im.dialog == (byte)InstantMessageDialog.MessageFromAgent)
|
||||
{
|
||||
IClientAPI client = FindClient(new UUID(im.fromAgentID));
|
||||
if (client == null)
|
||||
|
|
|
@ -1,165 +1,165 @@
|
|||
/**
|
||||
* Copyright (c) 2008, Contributors. All rights reserved.
|
||||
* See CONTRIBUTORS.TXT for a full list of copyright holders.
|
||||
*
|
||||
* Redistribution and use in source and binary forms, with or without modification,
|
||||
* are permitted provided that the following conditions are met:
|
||||
*
|
||||
* * Redistributions of source code must retain the above copyright notice,
|
||||
* this list of conditions and the following disclaimer.
|
||||
* * Redistributions in binary form must reproduce the above copyright notice,
|
||||
* this list of conditions and the following disclaimer in the documentation
|
||||
* and/or other materials provided with the distribution.
|
||||
* * Neither the name of the Organizations nor the names of Individual
|
||||
* Contributors may be used to endorse or promote products derived from
|
||||
* this software without specific prior written permission.
|
||||
*
|
||||
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
|
||||
* ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
|
||||
* OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL
|
||||
* THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
|
||||
* EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE
|
||||
* GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
|
||||
* AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
|
||||
* NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
|
||||
* OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
*
|
||||
*/
|
||||
|
||||
using System;
|
||||
using System.Collections;
|
||||
using System.Collections.Generic;
|
||||
using System.Reflection;
|
||||
using log4net;
|
||||
using Nini.Config;
|
||||
using OpenMetaverse;
|
||||
using OpenSim.Data;
|
||||
using OpenSim.Framework;
|
||||
using OpenSim.Framework.Communications;
|
||||
using OpenSim.Framework.Communications.Cache;
|
||||
using OpenSim.Framework.Communications.Services;
|
||||
using Caps = OpenSim.Framework.Communications.Capabilities.Caps;
|
||||
using LLSDHelpers = OpenSim.Framework.Communications.Capabilities.LLSDHelpers;
|
||||
using OpenSim.Framework.Servers;
|
||||
using OpenSim.Framework.Servers.Interfaces;
|
||||
using OpenSim.Region.Framework.Interfaces;
|
||||
using OpenSim.Region.Framework.Scenes;
|
||||
using OpenSim.Region.CoreModules.Communications.REST;
|
||||
|
||||
using OpenMetaverse.StructuredData;
|
||||
|
||||
namespace OpenSim.Region.CoreModules.Hypergrid
|
||||
{
|
||||
public class HGStandaloneInventoryModule : IRegionModule
|
||||
{
|
||||
private static readonly ILog m_log = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType);
|
||||
private static bool initialized = false;
|
||||
private static bool enabled = false;
|
||||
|
||||
private bool m_doLookup = false;
|
||||
Scene m_scene;
|
||||
HGInventoryService m_inventoryService;
|
||||
InventoryServiceBase m_inventoryBase;
|
||||
|
||||
public bool DoLookup
|
||||
{
|
||||
get { return m_doLookup; }
|
||||
set { m_doLookup = value; }
|
||||
}
|
||||
|
||||
#region IRegionModule interface
|
||||
|
||||
public void Initialise(Scene scene, IConfigSource config)
|
||||
{
|
||||
if (!initialized)
|
||||
{
|
||||
initialized = true;
|
||||
m_scene = scene;
|
||||
|
||||
// This module is only on for standalones
|
||||
enabled = !config.Configs["Startup"].GetBoolean("gridmode", true) && config.Configs["Startup"].GetBoolean("hypergrid", false);
|
||||
}
|
||||
}
|
||||
|
||||
public void PostInitialise()
|
||||
{
|
||||
if (enabled)
|
||||
{
|
||||
m_log.Info("[HGStandaloneInvModule]: Starting...");
|
||||
//m_inventoryService = new InventoryService(m_scene);
|
||||
m_inventoryBase = (InventoryServiceBase)m_scene.CommsManager.SecureInventoryService;
|
||||
|
||||
m_inventoryService = new HGInventoryService(m_inventoryBase,
|
||||
((AssetServerBase)m_scene.CommsManager.AssetCache.AssetServer).AssetProviderPlugin,
|
||||
(UserManagerBase)m_scene.CommsManager.UserService, m_scene.CommsManager.HttpServer,
|
||||
m_scene.CommsManager.NetworkServersInfo.InventoryURL);
|
||||
|
||||
AddHttpHandlers(m_scene.CommsManager.HttpServer);
|
||||
m_inventoryService.AddHttpHandlers();
|
||||
}
|
||||
}
|
||||
|
||||
public void Close()
|
||||
{
|
||||
}
|
||||
|
||||
public string Name
|
||||
{
|
||||
get { return "HGStandaloneInventoryModule"; }
|
||||
}
|
||||
|
||||
public bool IsSharedModule
|
||||
{
|
||||
get { return true; }
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
public virtual void AddHttpHandlers(IHttpServer httpServer)
|
||||
{
|
||||
|
||||
httpServer.AddStreamHandler(
|
||||
new RestDeserialiseSecureHandler<Guid, InventoryCollection>(
|
||||
"POST", "/GetInventory/", m_inventoryService.GetUserInventory, CheckAuthSession));
|
||||
|
||||
httpServer.AddStreamHandler(
|
||||
new RestDeserialiseSecureHandler<InventoryFolderBase, bool>(
|
||||
"POST", "/NewFolder/", m_inventoryBase.AddFolder, CheckAuthSession));
|
||||
|
||||
httpServer.AddStreamHandler(
|
||||
new RestDeserialiseSecureHandler<InventoryFolderBase, bool>(
|
||||
"POST", "/UpdateFolder/", m_inventoryBase.UpdateFolder, CheckAuthSession));
|
||||
|
||||
httpServer.AddStreamHandler(
|
||||
new RestDeserialiseSecureHandler<InventoryFolderBase, bool>(
|
||||
"POST", "/MoveFolder/", m_inventoryBase.MoveFolder, CheckAuthSession));
|
||||
|
||||
httpServer.AddStreamHandler(
|
||||
new RestDeserialiseSecureHandler<InventoryFolderBase, bool>(
|
||||
"POST", "/PurgeFolder/", m_inventoryBase.PurgeFolder, CheckAuthSession));
|
||||
|
||||
httpServer.AddStreamHandler(
|
||||
new RestDeserialiseSecureHandler<InventoryItemBase, bool>(
|
||||
"POST", "/NewItem/", m_inventoryBase.AddItem, CheckAuthSession));
|
||||
|
||||
httpServer.AddStreamHandler(
|
||||
new RestDeserialiseSecureHandler<InventoryItemBase, bool>(
|
||||
"POST", "/DeleteItem/", m_inventoryBase.DeleteItem, CheckAuthSession));
|
||||
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Check that the source of an inventory request for a particular agent is a current session belonging to
|
||||
/// that agent.
|
||||
/// </summary>
|
||||
/// <param name="session_id"></param>
|
||||
/// <param name="avatar_id"></param>
|
||||
/// <returns></returns>
|
||||
public bool CheckAuthSession(string session_id, string avatar_id)
|
||||
{
|
||||
return true;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
/**
|
||||
* Copyright (c) 2008, Contributors. All rights reserved.
|
||||
* See CONTRIBUTORS.TXT for a full list of copyright holders.
|
||||
*
|
||||
* Redistribution and use in source and binary forms, with or without modification,
|
||||
* are permitted provided that the following conditions are met:
|
||||
*
|
||||
* * Redistributions of source code must retain the above copyright notice,
|
||||
* this list of conditions and the following disclaimer.
|
||||
* * Redistributions in binary form must reproduce the above copyright notice,
|
||||
* this list of conditions and the following disclaimer in the documentation
|
||||
* and/or other materials provided with the distribution.
|
||||
* * Neither the name of the Organizations nor the names of Individual
|
||||
* Contributors may be used to endorse or promote products derived from
|
||||
* this software without specific prior written permission.
|
||||
*
|
||||
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
|
||||
* ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
|
||||
* OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL
|
||||
* THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
|
||||
* EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE
|
||||
* GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
|
||||
* AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
|
||||
* NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
|
||||
* OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
*
|
||||
*/
|
||||
|
||||
using System;
|
||||
using System.Collections;
|
||||
using System.Collections.Generic;
|
||||
using System.Reflection;
|
||||
using log4net;
|
||||
using Nini.Config;
|
||||
using OpenMetaverse;
|
||||
using OpenSim.Data;
|
||||
using OpenSim.Framework;
|
||||
using OpenSim.Framework.Communications;
|
||||
using OpenSim.Framework.Communications.Cache;
|
||||
using OpenSim.Framework.Communications.Services;
|
||||
using Caps = OpenSim.Framework.Communications.Capabilities.Caps;
|
||||
using LLSDHelpers = OpenSim.Framework.Communications.Capabilities.LLSDHelpers;
|
||||
using OpenSim.Framework.Servers;
|
||||
using OpenSim.Framework.Servers.Interfaces;
|
||||
using OpenSim.Region.Framework.Interfaces;
|
||||
using OpenSim.Region.Framework.Scenes;
|
||||
using OpenSim.Region.CoreModules.Communications.REST;
|
||||
|
||||
using OpenMetaverse.StructuredData;
|
||||
|
||||
namespace OpenSim.Region.CoreModules.Hypergrid
|
||||
{
|
||||
public class HGStandaloneInventoryModule : IRegionModule
|
||||
{
|
||||
private static readonly ILog m_log = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType);
|
||||
private static bool initialized = false;
|
||||
private static bool enabled = false;
|
||||
|
||||
private bool m_doLookup = false;
|
||||
Scene m_scene;
|
||||
HGInventoryService m_inventoryService;
|
||||
InventoryServiceBase m_inventoryBase;
|
||||
|
||||
public bool DoLookup
|
||||
{
|
||||
get { return m_doLookup; }
|
||||
set { m_doLookup = value; }
|
||||
}
|
||||
|
||||
#region IRegionModule interface
|
||||
|
||||
public void Initialise(Scene scene, IConfigSource config)
|
||||
{
|
||||
if (!initialized)
|
||||
{
|
||||
initialized = true;
|
||||
m_scene = scene;
|
||||
|
||||
// This module is only on for standalones
|
||||
enabled = !config.Configs["Startup"].GetBoolean("gridmode", true) && config.Configs["Startup"].GetBoolean("hypergrid", false);
|
||||
}
|
||||
}
|
||||
|
||||
public void PostInitialise()
|
||||
{
|
||||
if (enabled)
|
||||
{
|
||||
m_log.Info("[HGStandaloneInvModule]: Starting...");
|
||||
//m_inventoryService = new InventoryService(m_scene);
|
||||
m_inventoryBase = (InventoryServiceBase)m_scene.CommsManager.SecureInventoryService;
|
||||
|
||||
m_inventoryService = new HGInventoryService(m_inventoryBase,
|
||||
((AssetServerBase)m_scene.CommsManager.AssetCache.AssetServer).AssetProviderPlugin,
|
||||
(UserManagerBase)m_scene.CommsManager.UserService, m_scene.CommsManager.HttpServer,
|
||||
m_scene.CommsManager.NetworkServersInfo.InventoryURL);
|
||||
|
||||
AddHttpHandlers(m_scene.CommsManager.HttpServer);
|
||||
m_inventoryService.AddHttpHandlers();
|
||||
}
|
||||
}
|
||||
|
||||
public void Close()
|
||||
{
|
||||
}
|
||||
|
||||
public string Name
|
||||
{
|
||||
get { return "HGStandaloneInventoryModule"; }
|
||||
}
|
||||
|
||||
public bool IsSharedModule
|
||||
{
|
||||
get { return true; }
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
public virtual void AddHttpHandlers(IHttpServer httpServer)
|
||||
{
|
||||
|
||||
httpServer.AddStreamHandler(
|
||||
new RestDeserialiseSecureHandler<Guid, InventoryCollection>(
|
||||
"POST", "/GetInventory/", m_inventoryService.GetUserInventory, CheckAuthSession));
|
||||
|
||||
httpServer.AddStreamHandler(
|
||||
new RestDeserialiseSecureHandler<InventoryFolderBase, bool>(
|
||||
"POST", "/NewFolder/", m_inventoryBase.AddFolder, CheckAuthSession));
|
||||
|
||||
httpServer.AddStreamHandler(
|
||||
new RestDeserialiseSecureHandler<InventoryFolderBase, bool>(
|
||||
"POST", "/UpdateFolder/", m_inventoryBase.UpdateFolder, CheckAuthSession));
|
||||
|
||||
httpServer.AddStreamHandler(
|
||||
new RestDeserialiseSecureHandler<InventoryFolderBase, bool>(
|
||||
"POST", "/MoveFolder/", m_inventoryBase.MoveFolder, CheckAuthSession));
|
||||
|
||||
httpServer.AddStreamHandler(
|
||||
new RestDeserialiseSecureHandler<InventoryFolderBase, bool>(
|
||||
"POST", "/PurgeFolder/", m_inventoryBase.PurgeFolder, CheckAuthSession));
|
||||
|
||||
httpServer.AddStreamHandler(
|
||||
new RestDeserialiseSecureHandler<InventoryItemBase, bool>(
|
||||
"POST", "/NewItem/", m_inventoryBase.AddItem, CheckAuthSession));
|
||||
|
||||
httpServer.AddStreamHandler(
|
||||
new RestDeserialiseSecureHandler<InventoryItemBase, bool>(
|
||||
"POST", "/DeleteItem/", m_inventoryBase.DeleteItem, CheckAuthSession));
|
||||
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Check that the source of an inventory request for a particular agent is a current session belonging to
|
||||
/// that agent.
|
||||
/// </summary>
|
||||
/// <param name="session_id"></param>
|
||||
/// <param name="avatar_id"></param>
|
||||
/// <returns></returns>
|
||||
public bool CheckAuthSession(string session_id, string avatar_id)
|
||||
{
|
||||
return true;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
@ -1,253 +1,253 @@
|
|||
/*
|
||||
* Copyright (c) Contributors, http://opensimulator.org/
|
||||
* See CONTRIBUTORS.TXT for a full list of copyright holders.
|
||||
*
|
||||
* Redistribution and use in source and binary forms, with or without
|
||||
* modification, are permitted provided that the following conditions are met:
|
||||
* * Redistributions of source code must retain the above copyright
|
||||
* notice, this list of conditions and the following disclaimer.
|
||||
* * Redistributions in binary form must reproduce the above copyright
|
||||
* notice, this list of conditions and the following disclaimer in the
|
||||
* documentation and/or other materials provided with the distribution.
|
||||
* * Neither the name of the OpenSimulator Project nor the
|
||||
* names of its contributors may be used to endorse or promote products
|
||||
* derived from this software without specific prior written permission.
|
||||
*
|
||||
* THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS'' AND ANY
|
||||
* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
|
||||
* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
|
||||
* DISCLAIMED. IN NO EVENT SHALL THE CONTRIBUTORS BE LIABLE FOR ANY
|
||||
* DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
|
||||
* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
|
||||
* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
|
||||
* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
||||
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
|
||||
* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
*/
|
||||
|
||||
using System;
|
||||
using System.Collections;
|
||||
using System.Collections.Generic;
|
||||
using System.Net;
|
||||
using System.Reflection;
|
||||
using System.Text.RegularExpressions;
|
||||
using log4net;
|
||||
using Nini.Config;
|
||||
using OpenMetaverse;
|
||||
using OpenSim.Framework;
|
||||
using OpenSim.Framework.Communications;
|
||||
using OpenSim.Framework.Communications.Services;
|
||||
using OpenSim.Framework.Communications.Cache;
|
||||
using OpenSim.Framework.Communications.Capabilities;
|
||||
using OpenSim.Framework.Servers.Interfaces;
|
||||
using OpenSim.Region.Framework.Scenes;
|
||||
using OpenSim.Region.Framework.Interfaces;
|
||||
|
||||
namespace OpenSim.Region.CoreModules.Hypergrid
|
||||
{
|
||||
public class HGStandaloneLoginModule : IRegionModule, ILoginServiceToRegionsConnector
|
||||
{
|
||||
private static readonly ILog m_log = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType);
|
||||
|
||||
protected List<Scene> m_scenes = new List<Scene>();
|
||||
protected Scene m_firstScene;
|
||||
|
||||
protected bool m_enabled = false; // Module is only enabled if running in standalone mode
|
||||
|
||||
|
||||
public bool RegionLoginsEnabled
|
||||
{
|
||||
get
|
||||
{
|
||||
if (m_firstScene != null)
|
||||
{
|
||||
return m_firstScene.CommsManager.GridService.RegionLoginsEnabled;
|
||||
}
|
||||
else
|
||||
{
|
||||
return false;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
protected HGLoginAuthService m_loginService;
|
||||
|
||||
#region IRegionModule Members
|
||||
|
||||
public void Initialise(Scene scene, IConfigSource source)
|
||||
{
|
||||
if (m_firstScene == null)
|
||||
{
|
||||
m_firstScene = scene;
|
||||
|
||||
IConfig startupConfig = source.Configs["Startup"];
|
||||
if (startupConfig != null)
|
||||
{
|
||||
m_enabled = !startupConfig.GetBoolean("gridmode", false);
|
||||
}
|
||||
|
||||
if (m_enabled)
|
||||
{
|
||||
m_log.Debug("[HGLogin] HGlogin module enabled");
|
||||
bool authenticate = true;
|
||||
string welcomeMessage = "Welcome to OpenSim";
|
||||
IConfig standaloneConfig = source.Configs["StandAlone"];
|
||||
if (standaloneConfig != null)
|
||||
{
|
||||
authenticate = standaloneConfig.GetBoolean("accounts_authenticate", true);
|
||||
welcomeMessage = standaloneConfig.GetString("welcome_message");
|
||||
}
|
||||
|
||||
//TODO: fix casting.
|
||||
LibraryRootFolder rootFolder = m_firstScene.CommsManager.UserProfileCacheService.LibraryRoot as LibraryRootFolder;
|
||||
|
||||
IHttpServer httpServer = m_firstScene.CommsManager.HttpServer;
|
||||
|
||||
//TODO: fix the casting of the user service, maybe by registering the userManagerBase with scenes, or refactoring so we just need a IUserService reference
|
||||
m_loginService = new HGLoginAuthService((UserManagerBase)m_firstScene.CommsManager.UserService, welcomeMessage, m_firstScene.CommsManager.InterServiceInventoryService, m_firstScene.CommsManager.NetworkServersInfo, authenticate, rootFolder, this);
|
||||
|
||||
httpServer.AddXmlRPCHandler("hg_login", m_loginService.XmlRpcLoginMethod);
|
||||
httpServer.AddXmlRPCHandler("hg_new_auth_key", m_loginService.XmlRpcGenerateKeyMethod);
|
||||
httpServer.AddXmlRPCHandler("hg_verify_auth_key", m_loginService.XmlRpcVerifyKeyMethod);
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
if (m_enabled)
|
||||
{
|
||||
AddScene(scene);
|
||||
}
|
||||
}
|
||||
|
||||
public void PostInitialise()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
public void Close()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
public string Name
|
||||
{
|
||||
get { return "HGStandaloneLoginModule"; }
|
||||
}
|
||||
|
||||
public bool IsSharedModule
|
||||
{
|
||||
get { return true; }
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
protected void AddScene(Scene scene)
|
||||
{
|
||||
lock (m_scenes)
|
||||
{
|
||||
if (!m_scenes.Contains(scene))
|
||||
{
|
||||
m_scenes.Add(scene);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public bool NewUserConnection(ulong regionHandle, AgentCircuitData agent)
|
||||
{
|
||||
return true;
|
||||
}
|
||||
|
||||
public void LogOffUserFromGrid(ulong regionHandle, UUID AvatarID, UUID RegionSecret, string message)
|
||||
{
|
||||
Scene scene;
|
||||
if (TryGetRegion(regionHandle, out scene))
|
||||
{
|
||||
scene.HandleLogOffUserFromGrid(AvatarID, RegionSecret, message);
|
||||
}
|
||||
}
|
||||
|
||||
public RegionInfo RequestNeighbourInfo(ulong regionhandle)
|
||||
{
|
||||
Scene scene;
|
||||
if (TryGetRegion(regionhandle, out scene))
|
||||
{
|
||||
return scene.RegionInfo;
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
public RegionInfo RequestClosestRegion(string region)
|
||||
{
|
||||
Scene scene;
|
||||
if (TryGetRegion(region, out scene))
|
||||
{
|
||||
return scene.RegionInfo;
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
public RegionInfo RequestNeighbourInfo(UUID regionID)
|
||||
{
|
||||
Scene scene;
|
||||
if (TryGetRegion(regionID, out scene))
|
||||
{
|
||||
return scene.RegionInfo;
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
protected bool TryGetRegion(ulong regionHandle, out Scene scene)
|
||||
{
|
||||
lock (m_scenes)
|
||||
{
|
||||
foreach (Scene nextScene in m_scenes)
|
||||
{
|
||||
if (nextScene.RegionInfo.RegionHandle == regionHandle)
|
||||
{
|
||||
scene = nextScene;
|
||||
return true;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
scene = null;
|
||||
return false;
|
||||
}
|
||||
|
||||
protected bool TryGetRegion(UUID regionID, out Scene scene)
|
||||
{
|
||||
lock (m_scenes)
|
||||
{
|
||||
foreach (Scene nextScene in m_scenes)
|
||||
{
|
||||
if (nextScene.RegionInfo.RegionID == regionID)
|
||||
{
|
||||
scene = nextScene;
|
||||
return true;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
scene = null;
|
||||
return false;
|
||||
}
|
||||
|
||||
protected bool TryGetRegion(string regionName, out Scene scene)
|
||||
{
|
||||
lock (m_scenes)
|
||||
{
|
||||
foreach (Scene nextScene in m_scenes)
|
||||
{
|
||||
if (nextScene.RegionInfo.RegionName == regionName)
|
||||
{
|
||||
scene = nextScene;
|
||||
return true;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
scene = null;
|
||||
return false;
|
||||
}
|
||||
}
|
||||
}
|
||||
/*
|
||||
* Copyright (c) Contributors, http://opensimulator.org/
|
||||
* See CONTRIBUTORS.TXT for a full list of copyright holders.
|
||||
*
|
||||
* Redistribution and use in source and binary forms, with or without
|
||||
* modification, are permitted provided that the following conditions are met:
|
||||
* * Redistributions of source code must retain the above copyright
|
||||
* notice, this list of conditions and the following disclaimer.
|
||||
* * Redistributions in binary form must reproduce the above copyright
|
||||
* notice, this list of conditions and the following disclaimer in the
|
||||
* documentation and/or other materials provided with the distribution.
|
||||
* * Neither the name of the OpenSimulator Project nor the
|
||||
* names of its contributors may be used to endorse or promote products
|
||||
* derived from this software without specific prior written permission.
|
||||
*
|
||||
* THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS'' AND ANY
|
||||
* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
|
||||
* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
|
||||
* DISCLAIMED. IN NO EVENT SHALL THE CONTRIBUTORS BE LIABLE FOR ANY
|
||||
* DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
|
||||
* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
|
||||
* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
|
||||
* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
||||
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
|
||||
* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
*/
|
||||
|
||||
using System;
|
||||
using System.Collections;
|
||||
using System.Collections.Generic;
|
||||
using System.Net;
|
||||
using System.Reflection;
|
||||
using System.Text.RegularExpressions;
|
||||
using log4net;
|
||||
using Nini.Config;
|
||||
using OpenMetaverse;
|
||||
using OpenSim.Framework;
|
||||
using OpenSim.Framework.Communications;
|
||||
using OpenSim.Framework.Communications.Services;
|
||||
using OpenSim.Framework.Communications.Cache;
|
||||
using OpenSim.Framework.Communications.Capabilities;
|
||||
using OpenSim.Framework.Servers.Interfaces;
|
||||
using OpenSim.Region.Framework.Scenes;
|
||||
using OpenSim.Region.Framework.Interfaces;
|
||||
|
||||
namespace OpenSim.Region.CoreModules.Hypergrid
|
||||
{
|
||||
public class HGStandaloneLoginModule : IRegionModule, ILoginServiceToRegionsConnector
|
||||
{
|
||||
private static readonly ILog m_log = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType);
|
||||
|
||||
protected List<Scene> m_scenes = new List<Scene>();
|
||||
protected Scene m_firstScene;
|
||||
|
||||
protected bool m_enabled = false; // Module is only enabled if running in standalone mode
|
||||
|
||||
|
||||
public bool RegionLoginsEnabled
|
||||
{
|
||||
get
|
||||
{
|
||||
if (m_firstScene != null)
|
||||
{
|
||||
return m_firstScene.CommsManager.GridService.RegionLoginsEnabled;
|
||||
}
|
||||
else
|
||||
{
|
||||
return false;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
protected HGLoginAuthService m_loginService;
|
||||
|
||||
#region IRegionModule Members
|
||||
|
||||
public void Initialise(Scene scene, IConfigSource source)
|
||||
{
|
||||
if (m_firstScene == null)
|
||||
{
|
||||
m_firstScene = scene;
|
||||
|
||||
IConfig startupConfig = source.Configs["Startup"];
|
||||
if (startupConfig != null)
|
||||
{
|
||||
m_enabled = !startupConfig.GetBoolean("gridmode", false);
|
||||
}
|
||||
|
||||
if (m_enabled)
|
||||
{
|
||||
m_log.Debug("[HGLogin] HGlogin module enabled");
|
||||
bool authenticate = true;
|
||||
string welcomeMessage = "Welcome to OpenSim";
|
||||
IConfig standaloneConfig = source.Configs["StandAlone"];
|
||||
if (standaloneConfig != null)
|
||||
{
|
||||
authenticate = standaloneConfig.GetBoolean("accounts_authenticate", true);
|
||||
welcomeMessage = standaloneConfig.GetString("welcome_message");
|
||||
}
|
||||
|
||||
//TODO: fix casting.
|
||||
LibraryRootFolder rootFolder = m_firstScene.CommsManager.UserProfileCacheService.LibraryRoot as LibraryRootFolder;
|
||||
|
||||
IHttpServer httpServer = m_firstScene.CommsManager.HttpServer;
|
||||
|
||||
//TODO: fix the casting of the user service, maybe by registering the userManagerBase with scenes, or refactoring so we just need a IUserService reference
|
||||
m_loginService = new HGLoginAuthService((UserManagerBase)m_firstScene.CommsManager.UserService, welcomeMessage, m_firstScene.CommsManager.InterServiceInventoryService, m_firstScene.CommsManager.NetworkServersInfo, authenticate, rootFolder, this);
|
||||
|
||||
httpServer.AddXmlRPCHandler("hg_login", m_loginService.XmlRpcLoginMethod);
|
||||
httpServer.AddXmlRPCHandler("hg_new_auth_key", m_loginService.XmlRpcGenerateKeyMethod);
|
||||
httpServer.AddXmlRPCHandler("hg_verify_auth_key", m_loginService.XmlRpcVerifyKeyMethod);
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
if (m_enabled)
|
||||
{
|
||||
AddScene(scene);
|
||||
}
|
||||
}
|
||||
|
||||
public void PostInitialise()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
public void Close()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
public string Name
|
||||
{
|
||||
get { return "HGStandaloneLoginModule"; }
|
||||
}
|
||||
|
||||
public bool IsSharedModule
|
||||
{
|
||||
get { return true; }
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
protected void AddScene(Scene scene)
|
||||
{
|
||||
lock (m_scenes)
|
||||
{
|
||||
if (!m_scenes.Contains(scene))
|
||||
{
|
||||
m_scenes.Add(scene);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public bool NewUserConnection(ulong regionHandle, AgentCircuitData agent)
|
||||
{
|
||||
return true;
|
||||
}
|
||||
|
||||
public void LogOffUserFromGrid(ulong regionHandle, UUID AvatarID, UUID RegionSecret, string message)
|
||||
{
|
||||
Scene scene;
|
||||
if (TryGetRegion(regionHandle, out scene))
|
||||
{
|
||||
scene.HandleLogOffUserFromGrid(AvatarID, RegionSecret, message);
|
||||
}
|
||||
}
|
||||
|
||||
public RegionInfo RequestNeighbourInfo(ulong regionhandle)
|
||||
{
|
||||
Scene scene;
|
||||
if (TryGetRegion(regionhandle, out scene))
|
||||
{
|
||||
return scene.RegionInfo;
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
public RegionInfo RequestClosestRegion(string region)
|
||||
{
|
||||
Scene scene;
|
||||
if (TryGetRegion(region, out scene))
|
||||
{
|
||||
return scene.RegionInfo;
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
public RegionInfo RequestNeighbourInfo(UUID regionID)
|
||||
{
|
||||
Scene scene;
|
||||
if (TryGetRegion(regionID, out scene))
|
||||
{
|
||||
return scene.RegionInfo;
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
protected bool TryGetRegion(ulong regionHandle, out Scene scene)
|
||||
{
|
||||
lock (m_scenes)
|
||||
{
|
||||
foreach (Scene nextScene in m_scenes)
|
||||
{
|
||||
if (nextScene.RegionInfo.RegionHandle == regionHandle)
|
||||
{
|
||||
scene = nextScene;
|
||||
return true;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
scene = null;
|
||||
return false;
|
||||
}
|
||||
|
||||
protected bool TryGetRegion(UUID regionID, out Scene scene)
|
||||
{
|
||||
lock (m_scenes)
|
||||
{
|
||||
foreach (Scene nextScene in m_scenes)
|
||||
{
|
||||
if (nextScene.RegionInfo.RegionID == regionID)
|
||||
{
|
||||
scene = nextScene;
|
||||
return true;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
scene = null;
|
||||
return false;
|
||||
}
|
||||
|
||||
protected bool TryGetRegion(string regionName, out Scene scene)
|
||||
{
|
||||
lock (m_scenes)
|
||||
{
|
||||
foreach (Scene nextScene in m_scenes)
|
||||
{
|
||||
if (nextScene.RegionInfo.RegionName == regionName)
|
||||
{
|
||||
scene = nextScene;
|
||||
return true;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
scene = null;
|
||||
return false;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -66,18 +66,17 @@ namespace OpenSim.Region.CoreModules.Scripting.DynamicTexture
|
|||
/// <param name="data"></param>
|
||||
public void ReturnData(UUID id, byte[] data)
|
||||
{
|
||||
DynamicTextureUpdater updater = null;
|
||||
|
||||
DynamicTextureUpdater updater = null;
|
||||
|
||||
lock(Updaters)
|
||||
lock (Updaters)
|
||||
{
|
||||
if (Updaters.ContainsKey(id))
|
||||
{
|
||||
updater = Updaters[id];
|
||||
if (Updaters.ContainsKey(id))
|
||||
{
|
||||
updater = Updaters[id];
|
||||
}
|
||||
}
|
||||
|
||||
if(updater != null)
|
||||
if (updater != null)
|
||||
{
|
||||
if (RegisteredScenes.ContainsKey(updater.SimUUID))
|
||||
{
|
||||
|
@ -86,27 +85,26 @@ namespace OpenSim.Region.CoreModules.Scripting.DynamicTexture
|
|||
}
|
||||
}
|
||||
|
||||
if(updater.UpdateTimer == 0)
|
||||
{
|
||||
lock(Updaters)
|
||||
{
|
||||
if (!Updaters.ContainsKey(updater.UpdaterID))
|
||||
{
|
||||
Updaters.Remove(updater.UpdaterID);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (updater.UpdateTimer == 0)
|
||||
{
|
||||
lock (Updaters)
|
||||
{
|
||||
if (!Updaters.ContainsKey(updater.UpdaterID))
|
||||
{
|
||||
Updaters.Remove(updater.UpdaterID);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public UUID AddDynamicTextureURL(UUID simID, UUID primID, string contentType, string url,
|
||||
string extraParams, int updateTimer)
|
||||
string extraParams, int updateTimer)
|
||||
{
|
||||
return AddDynamicTextureURL(simID, primID, contentType, url, extraParams, updateTimer, false, 255);
|
||||
}
|
||||
|
||||
public UUID AddDynamicTextureURL(UUID simID, UUID primID, string contentType, string url,
|
||||
string extraParams, int updateTimer, bool SetBlending, byte AlphaValue)
|
||||
string extraParams, int updateTimer, bool SetBlending, byte AlphaValue)
|
||||
{
|
||||
if (RenderPlugins.ContainsKey(contentType))
|
||||
{
|
||||
|
@ -123,12 +121,12 @@ namespace OpenSim.Region.CoreModules.Scripting.DynamicTexture
|
|||
updater.BlendWithOldTexture = SetBlending;
|
||||
updater.FrontAlpha = AlphaValue;
|
||||
|
||||
lock(Updaters)
|
||||
lock (Updaters)
|
||||
{
|
||||
if (!Updaters.ContainsKey(updater.UpdaterID))
|
||||
{
|
||||
Updaters.Add(updater.UpdaterID, updater);
|
||||
}
|
||||
if (!Updaters.ContainsKey(updater.UpdaterID))
|
||||
{
|
||||
Updaters.Add(updater.UpdaterID, updater);
|
||||
}
|
||||
}
|
||||
|
||||
RenderPlugins[contentType].AsyncConvertUrl(updater.UpdaterID, url, extraParams);
|
||||
|
@ -138,13 +136,13 @@ namespace OpenSim.Region.CoreModules.Scripting.DynamicTexture
|
|||
}
|
||||
|
||||
public UUID AddDynamicTextureData(UUID simID, UUID primID, string contentType, string data,
|
||||
string extraParams, int updateTimer)
|
||||
string extraParams, int updateTimer)
|
||||
{
|
||||
return AddDynamicTextureData(simID, primID, contentType, data, extraParams, updateTimer, false, 255);
|
||||
}
|
||||
|
||||
public UUID AddDynamicTextureData(UUID simID, UUID primID, string contentType, string data,
|
||||
string extraParams, int updateTimer, bool SetBlending, byte AlphaValue)
|
||||
string extraParams, int updateTimer, bool SetBlending, byte AlphaValue)
|
||||
{
|
||||
if (RenderPlugins.ContainsKey(contentType))
|
||||
{
|
||||
|
@ -159,12 +157,12 @@ namespace OpenSim.Region.CoreModules.Scripting.DynamicTexture
|
|||
updater.BlendWithOldTexture = SetBlending;
|
||||
updater.FrontAlpha = AlphaValue;
|
||||
|
||||
lock(Updaters)
|
||||
lock (Updaters)
|
||||
{
|
||||
if (!Updaters.ContainsKey(updater.UpdaterID))
|
||||
{
|
||||
Updaters.Add(updater.UpdaterID, updater);
|
||||
}
|
||||
if (!Updaters.ContainsKey(updater.UpdaterID))
|
||||
{
|
||||
Updaters.Add(updater.UpdaterID, updater);
|
||||
}
|
||||
}
|
||||
|
||||
RenderPlugins[contentType].AsyncConvertData(updater.UpdaterID, data, extraParams);
|
||||
|
@ -173,7 +171,6 @@ namespace OpenSim.Region.CoreModules.Scripting.DynamicTexture
|
|||
return UUID.Zero;
|
||||
}
|
||||
|
||||
|
||||
public void GetDrawStringSize(string contentType, string text, string fontName, int fontSize,
|
||||
out double xSize, out double ySize)
|
||||
{
|
||||
|
@ -307,7 +304,6 @@ namespace OpenSim.Region.CoreModules.Scripting.DynamicTexture
|
|||
part.ScheduleFullUpdate();
|
||||
|
||||
scene.CommsManager.AssetCache.ExpireAsset(oldID);
|
||||
|
||||
}
|
||||
|
||||
private byte[] BlendTextures(byte[] frontImage, byte[] backImage, bool setNewAlpha, byte newAlpha)
|
||||
|
|
|
@ -4998,29 +4998,29 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
|
|||
|
||||
if (dir.x == 0)
|
||||
{
|
||||
if (dir.y == 0)
|
||||
{
|
||||
// Direction vector is 0,0 so return
|
||||
// false since we're staying in the sim
|
||||
return 0;
|
||||
}
|
||||
else
|
||||
{
|
||||
// Y is the only valid direction
|
||||
edge.y = dir.y / Math.Abs(dir.y);
|
||||
}
|
||||
if (dir.y == 0)
|
||||
{
|
||||
// Direction vector is 0,0 so return
|
||||
// false since we're staying in the sim
|
||||
return 0;
|
||||
}
|
||||
else
|
||||
{
|
||||
// Y is the only valid direction
|
||||
edge.y = dir.y / Math.Abs(dir.y);
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
LSL_Float mag;
|
||||
if (dir.x > 0)
|
||||
{
|
||||
if (dir.x > 0)
|
||||
{
|
||||
mag = (Constants.RegionSize - pos.x) / dir.x;
|
||||
}
|
||||
else
|
||||
{
|
||||
}
|
||||
else
|
||||
{
|
||||
mag = (pos.x/dir.x);
|
||||
}
|
||||
}
|
||||
|
||||
mag = Math.Abs(mag);
|
||||
|
||||
|
@ -5028,7 +5028,7 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
|
|||
|
||||
if (edge.y > Constants.RegionSize || edge.y < 0)
|
||||
{
|
||||
// Y goes out of bounds first
|
||||
// Y goes out of bounds first
|
||||
edge.y = dir.y / Math.Abs(dir.y);
|
||||
}
|
||||
else
|
||||
|
@ -5039,18 +5039,18 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
|
|||
}
|
||||
}
|
||||
|
||||
List<SimpleRegionInfo> neighbors = World.CommsManager.GridService.RequestNeighbours(World.RegionInfo.RegionLocX, World.RegionInfo.RegionLocY);
|
||||
List<SimpleRegionInfo> neighbors = World.CommsManager.GridService.RequestNeighbours(World.RegionInfo.RegionLocX, World.RegionInfo.RegionLocY);
|
||||
|
||||
uint neighborX = World.RegionInfo.RegionLocX + (uint)dir.x;
|
||||
uint neighborY = World.RegionInfo.RegionLocY + (uint)dir.y;
|
||||
|
||||
foreach (SimpleRegionInfo sri in neighbors)
|
||||
{
|
||||
if (sri.RegionLocX == neighborX && sri.RegionLocY == neighborY)
|
||||
return 0;
|
||||
}
|
||||
uint neighborX = World.RegionInfo.RegionLocX + (uint)dir.x;
|
||||
uint neighborY = World.RegionInfo.RegionLocY + (uint)dir.y;
|
||||
|
||||
return 1;
|
||||
foreach (SimpleRegionInfo sri in neighbors)
|
||||
{
|
||||
if (sri.RegionLocX == neighborX && sri.RegionLocY == neighborY)
|
||||
return 0;
|
||||
}
|
||||
|
||||
return 1;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
|
|
|
@ -49,7 +49,6 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api.Plugins
|
|||
{
|
||||
return localID.ToString() + itemID.ToString();
|
||||
}
|
||||
|
||||
|
||||
private class TimerClass
|
||||
{
|
||||
|
|
File diff suppressed because it is too large
Load Diff
|
@ -198,7 +198,7 @@
|
|||
|
||||
;WorldMapModule = "WorldMap"
|
||||
;MapImageModule = "MapImageModule"
|
||||
|
||||
|
||||
; ##
|
||||
; ## Customized Cache Implementation
|
||||
; ##
|
||||
|
@ -231,8 +231,8 @@
|
|||
|
||||
[Communications]
|
||||
|
||||
;InterregionComms = "LocalComms"
|
||||
InterregionComms = "RESTComms"
|
||||
;InterregionComms = "LocalComms"
|
||||
InterregionComms = "RESTComms"
|
||||
|
||||
[StandAlone]
|
||||
accounts_authenticate = true
|
||||
|
@ -579,16 +579,16 @@ InterregionComms = "RESTComms"
|
|||
|
||||
|
||||
[RestHandler]
|
||||
; Change this to true to enable the REST Asset and Inventory Plugin
|
||||
enabled = false
|
||||
authenticate=true
|
||||
secured=true
|
||||
extended-escape=true
|
||||
realm=OpenSim REST
|
||||
dump-asset=false
|
||||
path-fill=true
|
||||
dump-line-size=32
|
||||
flush-on-error=true
|
||||
; Change this to true to enable the REST Asset and Inventory Plugin
|
||||
enabled = false
|
||||
authenticate = true
|
||||
secured = true
|
||||
extended-escape = true
|
||||
realm = OpenSim REST
|
||||
dump-asset = false
|
||||
path-fill = true
|
||||
dump-line-size = 32
|
||||
flush-on-error = true
|
||||
|
||||
|
||||
; Uncomment the following for IRC bridge
|
||||
|
@ -1122,16 +1122,16 @@ InterregionComms = "RESTComms"
|
|||
; default is false
|
||||
enabled = false
|
||||
|
||||
; Channel on which to signal region readiness through a message
|
||||
; formatted as follows: "{server_startup|oar_file_load},{0|1},n,[oar error]"
|
||||
; - the first field indicating whether this is an initial server startup
|
||||
; - the second field is a number indicating whether the OAR file loaded ok (1 == ok, 0 == error)
|
||||
; - the third field is a number indicating how many scripts failed to compile
|
||||
; - "oar error" if supplied, provides the error message from the OAR load
|
||||
; Channel on which to signal region readiness through a message
|
||||
; formatted as follows: "{server_startup|oar_file_load},{0|1},n,[oar error]"
|
||||
; - the first field indicating whether this is an initial server startup
|
||||
; - the second field is a number indicating whether the OAR file loaded ok (1 == ok, 0 == error)
|
||||
; - the third field is a number indicating how many scripts failed to compile
|
||||
; - "oar error" if supplied, provides the error message from the OAR load
|
||||
channel_notify = -800
|
||||
|
||||
|
||||
[MRM]
|
||||
; Enables the Mini Region Modules Script Engine. WARNING: SECURITY RISK.
|
||||
; default is false
|
||||
Enabled = false
|
||||
Enabled = false
|
||||
|
|
Loading…
Reference in New Issue