* Added some more experimental code; nothing wired in so far.
parent
5572a00295
commit
d2a412e94b
|
@ -49,6 +49,19 @@ namespace OpenSim.Framework
|
||||||
m_metadata.Name = name;
|
m_metadata.Name = name;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public bool ContainsReferences
|
||||||
|
{
|
||||||
|
get
|
||||||
|
{
|
||||||
|
return
|
||||||
|
IsTextualAsset && (
|
||||||
|
Type != (sbyte)AssetType.Notecard
|
||||||
|
&& Type != (sbyte)AssetType.CallingCard
|
||||||
|
&& Type != (sbyte)AssetType.LSLText
|
||||||
|
&& Type != (sbyte)AssetType.Landmark);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
public bool IsTextualAsset
|
public bool IsTextualAsset
|
||||||
{
|
{
|
||||||
get
|
get
|
||||||
|
@ -62,10 +75,22 @@ namespace OpenSim.Framework
|
||||||
{
|
{
|
||||||
get
|
get
|
||||||
{
|
{
|
||||||
return
|
return
|
||||||
(Type == (sbyte) AssetType.Animation ||
|
(Type == (sbyte) AssetType.Animation ||
|
||||||
Type == (sbyte) AssetType.Gesture ||
|
Type == (sbyte)AssetType.Gesture ||
|
||||||
Type == (sbyte) AssetType.ImageJPEG ||
|
Type == (sbyte)AssetType.Simstate ||
|
||||||
|
Type == (sbyte)AssetType.Unknown ||
|
||||||
|
Type == (sbyte)AssetType.Object ||
|
||||||
|
Type == (sbyte)AssetType.Sound ||
|
||||||
|
Type == (sbyte)AssetType.SoundWAV ||
|
||||||
|
Type == (sbyte)AssetType.Texture ||
|
||||||
|
Type == (sbyte)AssetType.TextureTGA ||
|
||||||
|
Type == (sbyte)AssetType.Folder ||
|
||||||
|
Type == (sbyte)AssetType.RootFolder ||
|
||||||
|
Type == (sbyte)AssetType.LostAndFoundFolder ||
|
||||||
|
Type == (sbyte)AssetType.SnapshotFolder ||
|
||||||
|
Type == (sbyte)AssetType.TrashFolder ||
|
||||||
|
Type == (sbyte)AssetType.ImageJPEG ||
|
||||||
Type == (sbyte) AssetType.ImageTGA ||
|
Type == (sbyte) AssetType.ImageTGA ||
|
||||||
Type == (sbyte) AssetType.LSLBytecode);
|
Type == (sbyte) AssetType.LSLBytecode);
|
||||||
}
|
}
|
||||||
|
|
|
@ -393,22 +393,26 @@ namespace OpenSim.Framework.Communications.Cache
|
||||||
|
|
||||||
protected void ProcessReceivedAsset(bool IsTexture, AssetInfo assetInf)
|
protected void ProcessReceivedAsset(bool IsTexture, AssetInfo assetInf)
|
||||||
{
|
{
|
||||||
|
if(!IsTexture && assetInf.ContainsReferences && false )
|
||||||
|
{
|
||||||
|
assetInf.Data = ProcessAssetData(assetInf.Data);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// See IAssetReceiver
|
// See IAssetReceiver
|
||||||
public virtual void AssetNotFound(UUID assetID, bool IsTexture)
|
public virtual void AssetNotFound(UUID assetId, bool isTexture)
|
||||||
{
|
{
|
||||||
// m_log.WarnFormat("[ASSET CACHE]: AssetNotFound for {0}", assetID);
|
// m_log.WarnFormat("[ASSET CACHE]: AssetNotFound for {0}", assetId);
|
||||||
|
|
||||||
// Remember the fact that this asset could not be found to prevent delays from repeated requests
|
// Remember the fact that this asset could not be found to prevent delays from repeated requests
|
||||||
m_memcache.Add(assetID, null, TimeSpan.FromHours(24));
|
m_memcache.Add(assetId, null, TimeSpan.FromHours(24));
|
||||||
|
|
||||||
// Notify requesters for this asset
|
// Notify requesters for this asset
|
||||||
AssetRequestsList reqList;
|
AssetRequestsList reqList;
|
||||||
lock (RequestLists)
|
lock (RequestLists)
|
||||||
{
|
{
|
||||||
if (RequestLists.TryGetValue(assetID, out reqList))
|
if (RequestLists.TryGetValue(assetId, out reqList))
|
||||||
RequestLists.Remove(assetID);
|
RequestLists.Remove(assetId);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (reqList != null)
|
if (reqList != null)
|
||||||
|
@ -418,7 +422,7 @@ namespace OpenSim.Framework.Communications.Cache
|
||||||
|
|
||||||
foreach (NewAssetRequest req in reqList.Requests)
|
foreach (NewAssetRequest req in reqList.Requests)
|
||||||
{
|
{
|
||||||
req.Callback(assetID, null);
|
req.Callback(assetId, null);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -554,12 +558,12 @@ namespace OpenSim.Framework.Communications.Cache
|
||||||
{
|
{
|
||||||
string data = Encoding.ASCII.GetString(assetData);
|
string data = Encoding.ASCII.GetString(assetData);
|
||||||
|
|
||||||
data = ProcessAssetDataString(data);
|
data = ProcessAssetDataString(data, null);
|
||||||
|
|
||||||
return Encoding.ASCII.GetBytes( data );
|
return Encoding.ASCII.GetBytes( data );
|
||||||
}
|
}
|
||||||
|
|
||||||
public string ProcessAssetDataString(string data)
|
public string ProcessAssetDataString(string data, IUserService userService)
|
||||||
{
|
{
|
||||||
Regex regex = new Regex("(creator_url|owner_url)\\s+(\\S+)");
|
Regex regex = new Regex("(creator_url|owner_url)\\s+(\\S+)");
|
||||||
|
|
||||||
|
@ -571,16 +575,18 @@ namespace OpenSim.Framework.Communications.Cache
|
||||||
|
|
||||||
string value = m.Groups[2].Captures[0].Value;
|
string value = m.Groups[2].Captures[0].Value;
|
||||||
|
|
||||||
Guid id = Util.GetHashGuid(value, AssetInfo.Secret);
|
Uri userUri;
|
||||||
|
|
||||||
switch (key)
|
switch (key)
|
||||||
{
|
{
|
||||||
case "creator_url":
|
case "creator_url":
|
||||||
result = "creator_id " + id;
|
userUri = new Uri(value);
|
||||||
|
result = "creator_id " + ResolveUserUri(userService, userUri);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case "owner_url":
|
case "owner_url":
|
||||||
result = "owner_id " + id;
|
userUri = new Uri(value);
|
||||||
|
result = "owner_id " + ResolveUserUri(userService, userUri);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -590,6 +596,21 @@ namespace OpenSim.Framework.Communications.Cache
|
||||||
return data;
|
return data;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private Guid ResolveUserUri(IUserService userService, Uri userUri)
|
||||||
|
{
|
||||||
|
Guid id;
|
||||||
|
UserProfileData userProfile = userService.GetUserProfile(userUri);
|
||||||
|
if( userProfile == null )
|
||||||
|
{
|
||||||
|
id = Guid.Empty;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
id = userProfile.ID.Guid;
|
||||||
|
}
|
||||||
|
return id;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
public class AssetRequest
|
public class AssetRequest
|
||||||
{
|
{
|
||||||
|
|
|
@ -25,6 +25,8 @@
|
||||||
* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
using System;
|
||||||
|
using System.Collections.Generic;
|
||||||
using System.Threading;
|
using System.Threading;
|
||||||
using NUnit.Framework;
|
using NUnit.Framework;
|
||||||
using NUnit.Framework.SyntaxHelpers;
|
using NUnit.Framework.SyntaxHelpers;
|
||||||
|
@ -85,15 +87,105 @@ namespace OpenSim.Framework.Communications.Tests
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private class FakeUserService : IUserService
|
||||||
|
{
|
||||||
|
public UserProfileData GetUserProfile(string firstName, string lastName)
|
||||||
|
{
|
||||||
|
throw new NotImplementedException();
|
||||||
|
}
|
||||||
|
|
||||||
|
public UserProfileData GetUserProfile(UUID userId)
|
||||||
|
{
|
||||||
|
throw new NotImplementedException();
|
||||||
|
}
|
||||||
|
|
||||||
|
public UserProfileData GetUserProfile(Uri uri)
|
||||||
|
{
|
||||||
|
UserProfileData userProfile = new UserProfileData();
|
||||||
|
|
||||||
|
userProfile.ID = new UUID( Util.GetHashGuid( uri.ToString(), AssetCache.AssetInfo.Secret ));
|
||||||
|
|
||||||
|
return userProfile;
|
||||||
|
}
|
||||||
|
|
||||||
|
public UserAgentData GetAgentByUUID(UUID userId)
|
||||||
|
{
|
||||||
|
throw new NotImplementedException();
|
||||||
|
}
|
||||||
|
|
||||||
|
public void ClearUserAgent(UUID avatarID)
|
||||||
|
{
|
||||||
|
throw new NotImplementedException();
|
||||||
|
}
|
||||||
|
|
||||||
|
public List<AvatarPickerAvatar> GenerateAgentPickerRequestResponse(UUID QueryID, string Query)
|
||||||
|
{
|
||||||
|
throw new NotImplementedException();
|
||||||
|
}
|
||||||
|
|
||||||
|
public UserProfileData SetupMasterUser(string firstName, string lastName)
|
||||||
|
{
|
||||||
|
throw new NotImplementedException();
|
||||||
|
}
|
||||||
|
|
||||||
|
public UserProfileData SetupMasterUser(string firstName, string lastName, string password)
|
||||||
|
{
|
||||||
|
throw new NotImplementedException();
|
||||||
|
}
|
||||||
|
|
||||||
|
public UserProfileData SetupMasterUser(UUID userId)
|
||||||
|
{
|
||||||
|
throw new NotImplementedException();
|
||||||
|
}
|
||||||
|
|
||||||
|
public bool UpdateUserProfile(UserProfileData data)
|
||||||
|
{
|
||||||
|
throw new NotImplementedException();
|
||||||
|
}
|
||||||
|
|
||||||
|
public void AddNewUserFriend(UUID friendlistowner, UUID friend, uint perms)
|
||||||
|
{
|
||||||
|
throw new NotImplementedException();
|
||||||
|
}
|
||||||
|
|
||||||
|
public void RemoveUserFriend(UUID friendlistowner, UUID friend)
|
||||||
|
{
|
||||||
|
throw new NotImplementedException();
|
||||||
|
}
|
||||||
|
|
||||||
|
public void UpdateUserFriendPerms(UUID friendlistowner, UUID friend, uint perms)
|
||||||
|
{
|
||||||
|
throw new NotImplementedException();
|
||||||
|
}
|
||||||
|
|
||||||
|
public void LogOffUser(UUID userid, UUID regionid, ulong regionhandle, Vector3 position, Vector3 lookat)
|
||||||
|
{
|
||||||
|
throw new NotImplementedException();
|
||||||
|
}
|
||||||
|
|
||||||
|
public void LogOffUser(UUID userid, UUID regionid, ulong regionhandle, float posx, float posy, float posz)
|
||||||
|
{
|
||||||
|
throw new NotImplementedException();
|
||||||
|
}
|
||||||
|
|
||||||
|
public List<FriendListItem> GetUserFriendList(UUID friendlistowner)
|
||||||
|
{
|
||||||
|
throw new NotImplementedException();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
[Test]
|
[Test]
|
||||||
public void ProcessAssetDataTest()
|
public void TestProcessAssetData()
|
||||||
{
|
{
|
||||||
string url = "http://host/dir/";
|
string url = "http://host/dir/";
|
||||||
string data = " creator_url " + url + " ";
|
string creatorData = " creator_url " + url + " ";
|
||||||
|
string ownerData = " owner_url " + url + " ";
|
||||||
|
|
||||||
AssetCache assetCache = new AssetCache();
|
AssetCache assetCache = new AssetCache();
|
||||||
|
FakeUserService fakeUserService = new FakeUserService();
|
||||||
|
|
||||||
Assert.AreEqual(" creator_id "+Util.GetHashGuid( url, AssetCache.AssetInfo.Secret )+" ", assetCache.ProcessAssetDataString( data ));
|
Assert.AreEqual(" creator_id " + Util.GetHashGuid(url, AssetCache.AssetInfo.Secret) + " ", assetCache.ProcessAssetDataString(creatorData, fakeUserService));
|
||||||
|
Assert.AreEqual(" owner_id " + Util.GetHashGuid(url, AssetCache.AssetInfo.Secret) + " ", assetCache.ProcessAssetDataString(ownerData, fakeUserService));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -0,0 +1,49 @@
|
||||||
|
using System;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using System.Text;
|
||||||
|
using NUnit.Framework;
|
||||||
|
using OpenMetaverse;
|
||||||
|
|
||||||
|
namespace OpenSim.Framework.Tests
|
||||||
|
{
|
||||||
|
[TestFixture]
|
||||||
|
public class AssetBaseTest
|
||||||
|
{
|
||||||
|
[Test]
|
||||||
|
public void TestContainsReferences()
|
||||||
|
{
|
||||||
|
TestContainsReferences(AssetType.Bodypart, true);
|
||||||
|
TestContainsReferences(AssetType.Clothing, true);
|
||||||
|
|
||||||
|
TestContainsReferences(AssetType.Animation, false);
|
||||||
|
TestContainsReferences(AssetType.CallingCard, false);
|
||||||
|
TestContainsReferences(AssetType.Folder , false);
|
||||||
|
TestContainsReferences(AssetType.Gesture , false);
|
||||||
|
TestContainsReferences(AssetType.ImageJPEG , false);
|
||||||
|
TestContainsReferences(AssetType.ImageTGA , false);
|
||||||
|
TestContainsReferences(AssetType.Landmark , false);
|
||||||
|
TestContainsReferences(AssetType.LostAndFoundFolder, false);
|
||||||
|
TestContainsReferences(AssetType.LSLBytecode, false);
|
||||||
|
TestContainsReferences(AssetType.LSLText, false);
|
||||||
|
TestContainsReferences(AssetType.Notecard, false);
|
||||||
|
TestContainsReferences(AssetType.Object, false);
|
||||||
|
TestContainsReferences(AssetType.RootFolder, false);
|
||||||
|
TestContainsReferences(AssetType.Simstate, false);
|
||||||
|
TestContainsReferences(AssetType.SnapshotFolder, false);
|
||||||
|
TestContainsReferences(AssetType.Sound, false);
|
||||||
|
TestContainsReferences(AssetType.SoundWAV, false);
|
||||||
|
TestContainsReferences(AssetType.Texture, false);
|
||||||
|
TestContainsReferences(AssetType.TextureTGA, false);
|
||||||
|
TestContainsReferences(AssetType.TrashFolder, false);
|
||||||
|
TestContainsReferences(AssetType.Unknown, false);
|
||||||
|
}
|
||||||
|
|
||||||
|
private void TestContainsReferences(AssetType assetType, bool expected)
|
||||||
|
{
|
||||||
|
AssetBase asset = new AssetBase();
|
||||||
|
asset.Type = (sbyte)assetType;
|
||||||
|
bool actual = asset.ContainsReferences;
|
||||||
|
Assert.AreEqual(expected, actual, "Expected "+assetType+".ContainsReferences to be "+expected+" but was "+actual+".");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
|
@ -41,7 +41,7 @@ namespace OpenSim.Grid.UserServer.Modules
|
||||||
{
|
{
|
||||||
public delegate void logOffUser(UUID AgentID);
|
public delegate void logOffUser(UUID AgentID);
|
||||||
|
|
||||||
public class UserManager
|
public class UserManager
|
||||||
{
|
{
|
||||||
private static readonly ILog m_log = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType);
|
private static readonly ILog m_log = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType);
|
||||||
|
|
||||||
|
@ -50,12 +50,12 @@ namespace OpenSim.Grid.UserServer.Modules
|
||||||
|
|
||||||
private UserDataBaseService m_userDataBaseService;
|
private UserDataBaseService m_userDataBaseService;
|
||||||
private BaseHttpServer m_httpServer;
|
private BaseHttpServer m_httpServer;
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
///
|
///
|
||||||
/// </summary>
|
/// </summary>
|
||||||
/// <param name="userDataBaseService"></param>
|
/// <param name="userDataBaseService"></param>
|
||||||
public UserManager( UserDataBaseService userDataBaseService)
|
public UserManager(UserDataBaseService userDataBaseService)
|
||||||
{
|
{
|
||||||
m_userDataBaseService = userDataBaseService;
|
m_userDataBaseService = userDataBaseService;
|
||||||
}
|
}
|
||||||
|
@ -70,10 +70,38 @@ namespace OpenSim.Grid.UserServer.Modules
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private string RESTGetUserProfile(string request, string path, string param, OSHttpRequest httpRequest, OSHttpResponse httpResponse)
|
||||||
|
{
|
||||||
|
UUID id;
|
||||||
|
UserProfileData userProfile;
|
||||||
|
|
||||||
|
try
|
||||||
|
{
|
||||||
|
id = new UUID(param);
|
||||||
|
}
|
||||||
|
catch (Exception)
|
||||||
|
{
|
||||||
|
httpResponse.StatusCode = 500;
|
||||||
|
return "Malformed Param [" + param + "]";
|
||||||
|
}
|
||||||
|
|
||||||
|
userProfile = m_userDataBaseService.GetUserProfile(id);
|
||||||
|
|
||||||
|
if (userProfile == null)
|
||||||
|
{
|
||||||
|
httpResponse.StatusCode = 404;
|
||||||
|
return "Not Found.";
|
||||||
|
}
|
||||||
|
|
||||||
|
return ProfileToXmlRPCResponse(userProfile).ToString();
|
||||||
|
}
|
||||||
|
|
||||||
public void RegisterHandlers(BaseHttpServer httpServer)
|
public void RegisterHandlers(BaseHttpServer httpServer)
|
||||||
{
|
{
|
||||||
m_httpServer = httpServer;
|
m_httpServer = httpServer;
|
||||||
|
|
||||||
|
m_httpServer.AddStreamHandler(new RestStreamHandler("GET", "/users/", RESTGetUserProfile));
|
||||||
|
|
||||||
m_httpServer.AddXmlRPCHandler("get_user_by_name", XmlRPCGetUserMethodName);
|
m_httpServer.AddXmlRPCHandler("get_user_by_name", XmlRPCGetUserMethodName);
|
||||||
m_httpServer.AddXmlRPCHandler("get_user_by_uuid", XmlRPCGetUserMethodUUID);
|
m_httpServer.AddXmlRPCHandler("get_user_by_uuid", XmlRPCGetUserMethodUUID);
|
||||||
m_httpServer.AddXmlRPCHandler("get_avatar_picker_avatar", XmlRPCGetAvatarPickerAvatar);
|
m_httpServer.AddXmlRPCHandler("get_avatar_picker_avatar", XmlRPCGetAvatarPickerAvatar);
|
||||||
|
@ -191,24 +219,24 @@ namespace OpenSim.Grid.UserServer.Modules
|
||||||
public XmlRpcResponse XmlRPCGetAvatarPickerAvatar(XmlRpcRequest request)
|
public XmlRpcResponse XmlRPCGetAvatarPickerAvatar(XmlRpcRequest request)
|
||||||
{
|
{
|
||||||
// XmlRpcResponse response = new XmlRpcResponse();
|
// XmlRpcResponse response = new XmlRpcResponse();
|
||||||
Hashtable requestData = (Hashtable) request.Params[0];
|
Hashtable requestData = (Hashtable)request.Params[0];
|
||||||
List<AvatarPickerAvatar> returnAvatar = new List<AvatarPickerAvatar>();
|
List<AvatarPickerAvatar> returnAvatar = new List<AvatarPickerAvatar>();
|
||||||
UUID queryID = new UUID(UUID.Zero.ToString());
|
UUID queryID = new UUID(UUID.Zero.ToString());
|
||||||
|
|
||||||
if (requestData.Contains("avquery") && requestData.Contains("queryid"))
|
if (requestData.Contains("avquery") && requestData.Contains("queryid"))
|
||||||
{
|
{
|
||||||
queryID = new UUID((string) requestData["queryid"]);
|
queryID = new UUID((string)requestData["queryid"]);
|
||||||
returnAvatar = m_userDataBaseService.GenerateAgentPickerRequestResponse(queryID, (string) requestData["avquery"]);
|
returnAvatar = m_userDataBaseService.GenerateAgentPickerRequestResponse(queryID, (string)requestData["avquery"]);
|
||||||
}
|
}
|
||||||
|
|
||||||
m_log.InfoFormat("[AVATARINFO]: Servicing Avatar Query: " + (string) requestData["avquery"]);
|
m_log.InfoFormat("[AVATARINFO]: Servicing Avatar Query: " + (string)requestData["avquery"]);
|
||||||
return AvatarPickerListtoXmlRPCResponse(queryID, returnAvatar);
|
return AvatarPickerListtoXmlRPCResponse(queryID, returnAvatar);
|
||||||
}
|
}
|
||||||
|
|
||||||
public XmlRpcResponse XmlRPCAtRegion(XmlRpcRequest request)
|
public XmlRpcResponse XmlRPCAtRegion(XmlRpcRequest request)
|
||||||
{
|
{
|
||||||
XmlRpcResponse response = new XmlRpcResponse();
|
XmlRpcResponse response = new XmlRpcResponse();
|
||||||
Hashtable requestData = (Hashtable) request.Params[0];
|
Hashtable requestData = (Hashtable)request.Params[0];
|
||||||
Hashtable responseData = new Hashtable();
|
Hashtable responseData = new Hashtable();
|
||||||
string returnstring = "FALSE";
|
string returnstring = "FALSE";
|
||||||
|
|
||||||
|
@ -219,14 +247,14 @@ namespace OpenSim.Grid.UserServer.Modules
|
||||||
UUID regionUUID;
|
UUID regionUUID;
|
||||||
UUID avatarUUID;
|
UUID avatarUUID;
|
||||||
|
|
||||||
UUID.TryParse((string) requestData["avatar_id"], out avatarUUID);
|
UUID.TryParse((string)requestData["avatar_id"], out avatarUUID);
|
||||||
UUID.TryParse((string) requestData["region_uuid"], out regionUUID);
|
UUID.TryParse((string)requestData["region_uuid"], out regionUUID);
|
||||||
|
|
||||||
if (avatarUUID != UUID.Zero)
|
if (avatarUUID != UUID.Zero)
|
||||||
{
|
{
|
||||||
UserProfileData userProfile = m_userDataBaseService.GetUserProfile(avatarUUID);
|
UserProfileData userProfile = m_userDataBaseService.GetUserProfile(avatarUUID);
|
||||||
userProfile.CurrentAgent.Region = regionUUID;
|
userProfile.CurrentAgent.Region = regionUUID;
|
||||||
userProfile.CurrentAgent.Handle = (ulong) Convert.ToInt64((string) requestData["region_handle"]);
|
userProfile.CurrentAgent.Handle = (ulong)Convert.ToInt64((string)requestData["region_handle"]);
|
||||||
//userProfile.CurrentAgent.
|
//userProfile.CurrentAgent.
|
||||||
m_userDataBaseService.CommitAgent(ref userProfile);
|
m_userDataBaseService.CommitAgent(ref userProfile);
|
||||||
//setUserProfile(userProfile);
|
//setUserProfile(userProfile);
|
||||||
|
@ -243,11 +271,11 @@ namespace OpenSim.Grid.UserServer.Modules
|
||||||
public XmlRpcResponse XmlRPCGetUserMethodName(XmlRpcRequest request)
|
public XmlRpcResponse XmlRPCGetUserMethodName(XmlRpcRequest request)
|
||||||
{
|
{
|
||||||
// XmlRpcResponse response = new XmlRpcResponse();
|
// XmlRpcResponse response = new XmlRpcResponse();
|
||||||
Hashtable requestData = (Hashtable) request.Params[0];
|
Hashtable requestData = (Hashtable)request.Params[0];
|
||||||
UserProfileData userProfile;
|
UserProfileData userProfile;
|
||||||
if (requestData.Contains("avatar_name"))
|
if (requestData.Contains("avatar_name"))
|
||||||
{
|
{
|
||||||
string query = (string) requestData["avatar_name"];
|
string query = (string)requestData["avatar_name"];
|
||||||
|
|
||||||
if (null == query)
|
if (null == query)
|
||||||
return CreateUnknownUserErrorResponse();
|
return CreateUnknownUserErrorResponse();
|
||||||
|
@ -280,7 +308,7 @@ namespace OpenSim.Grid.UserServer.Modules
|
||||||
public XmlRpcResponse XmlRPCGetUserMethodUUID(XmlRpcRequest request)
|
public XmlRpcResponse XmlRPCGetUserMethodUUID(XmlRpcRequest request)
|
||||||
{
|
{
|
||||||
// XmlRpcResponse response = new XmlRpcResponse();
|
// XmlRpcResponse response = new XmlRpcResponse();
|
||||||
Hashtable requestData = (Hashtable) request.Params[0];
|
Hashtable requestData = (Hashtable)request.Params[0];
|
||||||
UserProfileData userProfile;
|
UserProfileData userProfile;
|
||||||
//CFK: this clogs the UserServer log and is not necessary at this time.
|
//CFK: this clogs the UserServer log and is not necessary at this time.
|
||||||
//CFK: m_log.Debug("METHOD BY UUID CALLED");
|
//CFK: m_log.Debug("METHOD BY UUID CALLED");
|
||||||
|
@ -288,7 +316,7 @@ namespace OpenSim.Grid.UserServer.Modules
|
||||||
{
|
{
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
UUID guess = new UUID((string) requestData["avatar_uuid"]);
|
UUID guess = new UUID((string)requestData["avatar_uuid"]);
|
||||||
|
|
||||||
userProfile = m_userDataBaseService.GetUserProfile(guess);
|
userProfile = m_userDataBaseService.GetUserProfile(guess);
|
||||||
}
|
}
|
||||||
|
@ -313,7 +341,7 @@ namespace OpenSim.Grid.UserServer.Modules
|
||||||
public XmlRpcResponse XmlRPCGetAgentMethodUUID(XmlRpcRequest request)
|
public XmlRpcResponse XmlRPCGetAgentMethodUUID(XmlRpcRequest request)
|
||||||
{
|
{
|
||||||
XmlRpcResponse response = new XmlRpcResponse();
|
XmlRpcResponse response = new XmlRpcResponse();
|
||||||
Hashtable requestData = (Hashtable) request.Params[0];
|
Hashtable requestData = (Hashtable)request.Params[0];
|
||||||
UserProfileData userProfile;
|
UserProfileData userProfile;
|
||||||
//CFK: this clogs the UserServer log and is not necessary at this time.
|
//CFK: this clogs the UserServer log and is not necessary at this time.
|
||||||
//CFK: m_log.Debug("METHOD BY UUID CALLED");
|
//CFK: m_log.Debug("METHOD BY UUID CALLED");
|
||||||
|
@ -321,7 +349,7 @@ namespace OpenSim.Grid.UserServer.Modules
|
||||||
{
|
{
|
||||||
UUID guess;
|
UUID guess;
|
||||||
|
|
||||||
UUID.TryParse((string) requestData["avatar_uuid"], out guess);
|
UUID.TryParse((string)requestData["avatar_uuid"], out guess);
|
||||||
|
|
||||||
if (guess == UUID.Zero)
|
if (guess == UUID.Zero)
|
||||||
{
|
{
|
||||||
|
@ -362,7 +390,7 @@ namespace OpenSim.Grid.UserServer.Modules
|
||||||
public XmlRpcResponse XmlRPCCheckAuthSession(XmlRpcRequest request)
|
public XmlRpcResponse XmlRPCCheckAuthSession(XmlRpcRequest request)
|
||||||
{
|
{
|
||||||
XmlRpcResponse response = new XmlRpcResponse();
|
XmlRpcResponse response = new XmlRpcResponse();
|
||||||
Hashtable requestData = (Hashtable) request.Params[0];
|
Hashtable requestData = (Hashtable)request.Params[0];
|
||||||
UserProfileData userProfile;
|
UserProfileData userProfile;
|
||||||
|
|
||||||
string authed = "FALSE";
|
string authed = "FALSE";
|
||||||
|
@ -371,12 +399,12 @@ namespace OpenSim.Grid.UserServer.Modules
|
||||||
UUID guess_aid;
|
UUID guess_aid;
|
||||||
UUID guess_sid;
|
UUID guess_sid;
|
||||||
|
|
||||||
UUID.TryParse((string) requestData["avatar_uuid"], out guess_aid);
|
UUID.TryParse((string)requestData["avatar_uuid"], out guess_aid);
|
||||||
if (guess_aid == UUID.Zero)
|
if (guess_aid == UUID.Zero)
|
||||||
{
|
{
|
||||||
return CreateUnknownUserErrorResponse();
|
return CreateUnknownUserErrorResponse();
|
||||||
}
|
}
|
||||||
UUID.TryParse((string) requestData["session_id"], out guess_sid);
|
UUID.TryParse((string)requestData["session_id"], out guess_sid);
|
||||||
if (guess_sid == UUID.Zero)
|
if (guess_sid == UUID.Zero)
|
||||||
{
|
{
|
||||||
return CreateUnknownUserErrorResponse();
|
return CreateUnknownUserErrorResponse();
|
||||||
|
@ -404,7 +432,7 @@ namespace OpenSim.Grid.UserServer.Modules
|
||||||
{
|
{
|
||||||
m_log.Debug("[UserManager]: Got request to update user profile");
|
m_log.Debug("[UserManager]: Got request to update user profile");
|
||||||
XmlRpcResponse response = new XmlRpcResponse();
|
XmlRpcResponse response = new XmlRpcResponse();
|
||||||
Hashtable requestData = (Hashtable) request.Params[0];
|
Hashtable requestData = (Hashtable)request.Params[0];
|
||||||
Hashtable responseData = new Hashtable();
|
Hashtable responseData = new Hashtable();
|
||||||
|
|
||||||
if (!requestData.Contains("avatar_uuid"))
|
if (!requestData.Contains("avatar_uuid"))
|
||||||
|
@ -412,7 +440,7 @@ namespace OpenSim.Grid.UserServer.Modules
|
||||||
return CreateUnknownUserErrorResponse();
|
return CreateUnknownUserErrorResponse();
|
||||||
}
|
}
|
||||||
|
|
||||||
UUID UserUUID = new UUID((string) requestData["avatar_uuid"]);
|
UUID UserUUID = new UUID((string)requestData["avatar_uuid"]);
|
||||||
UserProfileData userProfile = m_userDataBaseService.GetUserProfile(UserUUID);
|
UserProfileData userProfile = m_userDataBaseService.GetUserProfile(UserUUID);
|
||||||
if (null == userProfile)
|
if (null == userProfile)
|
||||||
{
|
{
|
||||||
|
@ -424,11 +452,11 @@ namespace OpenSim.Grid.UserServer.Modules
|
||||||
}
|
}
|
||||||
if (requestData.Contains("FLImageID"))
|
if (requestData.Contains("FLImageID"))
|
||||||
{
|
{
|
||||||
userProfile.FirstLifeImage = new UUID((string) requestData["FLImageID"]);
|
userProfile.FirstLifeImage = new UUID((string)requestData["FLImageID"]);
|
||||||
}
|
}
|
||||||
if (requestData.Contains("ImageID"))
|
if (requestData.Contains("ImageID"))
|
||||||
{
|
{
|
||||||
userProfile.Image = new UUID((string) requestData["ImageID"]);
|
userProfile.Image = new UUID((string)requestData["ImageID"]);
|
||||||
}
|
}
|
||||||
// dont' know how yet
|
// dont' know how yet
|
||||||
if (requestData.Contains("MaturePublish"))
|
if (requestData.Contains("MaturePublish"))
|
||||||
|
@ -436,11 +464,11 @@ namespace OpenSim.Grid.UserServer.Modules
|
||||||
}
|
}
|
||||||
if (requestData.Contains("AboutText"))
|
if (requestData.Contains("AboutText"))
|
||||||
{
|
{
|
||||||
userProfile.AboutText = (string) requestData["AboutText"];
|
userProfile.AboutText = (string)requestData["AboutText"];
|
||||||
}
|
}
|
||||||
if (requestData.Contains("FLAboutText"))
|
if (requestData.Contains("FLAboutText"))
|
||||||
{
|
{
|
||||||
userProfile.FirstLifeAboutText = (string) requestData["FLAboutText"];
|
userProfile.FirstLifeAboutText = (string)requestData["FLAboutText"];
|
||||||
}
|
}
|
||||||
// not in DB yet.
|
// not in DB yet.
|
||||||
if (requestData.Contains("ProfileURL"))
|
if (requestData.Contains("ProfileURL"))
|
||||||
|
@ -450,7 +478,7 @@ namespace OpenSim.Grid.UserServer.Modules
|
||||||
{
|
{
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
userProfile.HomeRegion = Convert.ToUInt64((string) requestData["home_region"]);
|
userProfile.HomeRegion = Convert.ToUInt64((string)requestData["home_region"]);
|
||||||
}
|
}
|
||||||
catch (ArgumentException)
|
catch (ArgumentException)
|
||||||
{
|
{
|
||||||
|
@ -468,14 +496,14 @@ namespace OpenSim.Grid.UserServer.Modules
|
||||||
if (requestData.Contains("home_region_id"))
|
if (requestData.Contains("home_region_id"))
|
||||||
{
|
{
|
||||||
UUID regionID;
|
UUID regionID;
|
||||||
UUID.TryParse((string) requestData["home_region_id"], out regionID);
|
UUID.TryParse((string)requestData["home_region_id"], out regionID);
|
||||||
userProfile.HomeRegionID = regionID;
|
userProfile.HomeRegionID = regionID;
|
||||||
}
|
}
|
||||||
if (requestData.Contains("home_pos_x"))
|
if (requestData.Contains("home_pos_x"))
|
||||||
{
|
{
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
userProfile.HomeLocationX = (float) Convert.ToDecimal((string) requestData["home_pos_x"]);
|
userProfile.HomeLocationX = (float)Convert.ToDecimal((string)requestData["home_pos_x"]);
|
||||||
}
|
}
|
||||||
catch (InvalidCastException)
|
catch (InvalidCastException)
|
||||||
{
|
{
|
||||||
|
@ -486,7 +514,7 @@ namespace OpenSim.Grid.UserServer.Modules
|
||||||
{
|
{
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
userProfile.HomeLocationY = (float) Convert.ToDecimal((string) requestData["home_pos_y"]);
|
userProfile.HomeLocationY = (float)Convert.ToDecimal((string)requestData["home_pos_y"]);
|
||||||
}
|
}
|
||||||
catch (InvalidCastException)
|
catch (InvalidCastException)
|
||||||
{
|
{
|
||||||
|
@ -497,7 +525,7 @@ namespace OpenSim.Grid.UserServer.Modules
|
||||||
{
|
{
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
userProfile.HomeLocationZ = (float) Convert.ToDecimal((string) requestData["home_pos_z"]);
|
userProfile.HomeLocationZ = (float)Convert.ToDecimal((string)requestData["home_pos_z"]);
|
||||||
}
|
}
|
||||||
catch (InvalidCastException)
|
catch (InvalidCastException)
|
||||||
{
|
{
|
||||||
|
@ -508,7 +536,7 @@ namespace OpenSim.Grid.UserServer.Modules
|
||||||
{
|
{
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
userProfile.HomeLookAtX = (float) Convert.ToDecimal((string) requestData["home_look_x"]);
|
userProfile.HomeLookAtX = (float)Convert.ToDecimal((string)requestData["home_look_x"]);
|
||||||
}
|
}
|
||||||
catch (InvalidCastException)
|
catch (InvalidCastException)
|
||||||
{
|
{
|
||||||
|
@ -519,7 +547,7 @@ namespace OpenSim.Grid.UserServer.Modules
|
||||||
{
|
{
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
userProfile.HomeLookAtY = (float) Convert.ToDecimal((string) requestData["home_look_y"]);
|
userProfile.HomeLookAtY = (float)Convert.ToDecimal((string)requestData["home_look_y"]);
|
||||||
}
|
}
|
||||||
catch (InvalidCastException)
|
catch (InvalidCastException)
|
||||||
{
|
{
|
||||||
|
@ -530,7 +558,7 @@ namespace OpenSim.Grid.UserServer.Modules
|
||||||
{
|
{
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
userProfile.HomeLookAtZ = (float) Convert.ToDecimal((string) requestData["home_look_z"]);
|
userProfile.HomeLookAtZ = (float)Convert.ToDecimal((string)requestData["home_look_z"]);
|
||||||
}
|
}
|
||||||
catch (InvalidCastException)
|
catch (InvalidCastException)
|
||||||
{
|
{
|
||||||
|
@ -541,7 +569,7 @@ namespace OpenSim.Grid.UserServer.Modules
|
||||||
{
|
{
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
userProfile.UserFlags = Convert.ToInt32((string) requestData["user_flags"]);
|
userProfile.UserFlags = Convert.ToInt32((string)requestData["user_flags"]);
|
||||||
}
|
}
|
||||||
catch (InvalidCastException)
|
catch (InvalidCastException)
|
||||||
{
|
{
|
||||||
|
@ -552,7 +580,7 @@ namespace OpenSim.Grid.UserServer.Modules
|
||||||
{
|
{
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
userProfile.GodLevel = Convert.ToInt32((string) requestData["god_level"]);
|
userProfile.GodLevel = Convert.ToInt32((string)requestData["god_level"]);
|
||||||
}
|
}
|
||||||
catch (InvalidCastException)
|
catch (InvalidCastException)
|
||||||
{
|
{
|
||||||
|
@ -563,7 +591,7 @@ namespace OpenSim.Grid.UserServer.Modules
|
||||||
{
|
{
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
userProfile.CustomType = (string) requestData["custom_type"];
|
userProfile.CustomType = (string)requestData["custom_type"];
|
||||||
}
|
}
|
||||||
catch (InvalidCastException)
|
catch (InvalidCastException)
|
||||||
{
|
{
|
||||||
|
@ -574,7 +602,7 @@ namespace OpenSim.Grid.UserServer.Modules
|
||||||
{
|
{
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
userProfile.Partner = new UUID((string) requestData["partner"]);
|
userProfile.Partner = new UUID((string)requestData["partner"]);
|
||||||
}
|
}
|
||||||
catch (InvalidCastException)
|
catch (InvalidCastException)
|
||||||
{
|
{
|
||||||
|
@ -596,7 +624,7 @@ namespace OpenSim.Grid.UserServer.Modules
|
||||||
public XmlRpcResponse XmlRPCLogOffUserMethodUUID(XmlRpcRequest request)
|
public XmlRpcResponse XmlRPCLogOffUserMethodUUID(XmlRpcRequest request)
|
||||||
{
|
{
|
||||||
XmlRpcResponse response = new XmlRpcResponse();
|
XmlRpcResponse response = new XmlRpcResponse();
|
||||||
Hashtable requestData = (Hashtable) request.Params[0];
|
Hashtable requestData = (Hashtable)request.Params[0];
|
||||||
|
|
||||||
if (requestData.Contains("avatar_uuid"))
|
if (requestData.Contains("avatar_uuid"))
|
||||||
{
|
{
|
||||||
|
@ -685,6 +713,6 @@ namespace OpenSim.Grid.UserServer.Modules
|
||||||
public void HandleRegionShutdown(UUID regionID)
|
public void HandleRegionShutdown(UUID regionID)
|
||||||
{
|
{
|
||||||
m_userDataBaseService.LogoutUsers(regionID);
|
m_userDataBaseService.LogoutUsers(regionID);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue