diff options
author | Melanie | 2009-09-27 21:25:10 +0100 |
---|---|---|
committer | Melanie | 2009-09-27 21:25:10 +0100 |
commit | b5bf3f87d552f8aef7fc8f4ab8fa34d6dbefcd30 (patch) | |
tree | b7e6844d7f037541640e489d3c8bec53159b5df0 /OpenSim/Framework | |
parent | Add the Migration for the regions table (diff) | |
parent | Merge branch 'master' of ssh://MyConnection/var/git/opensim (diff) | |
download | opensim-SC_OLD-b5bf3f87d552f8aef7fc8f4ab8fa34d6dbefcd30.zip opensim-SC_OLD-b5bf3f87d552f8aef7fc8f4ab8fa34d6dbefcd30.tar.gz opensim-SC_OLD-b5bf3f87d552f8aef7fc8f4ab8fa34d6dbefcd30.tar.bz2 opensim-SC_OLD-b5bf3f87d552f8aef7fc8f4ab8fa34d6dbefcd30.tar.xz |
Merge branch 'master' of ssh://melanie@opensimulator.org/var/git/opensim
Conflicts:
OpenSim/Data/MySQL/MySQLRegionData.cs
Diffstat (limited to 'OpenSim/Framework')
-rw-r--r-- | OpenSim/Framework/Communications/IUserService.cs | 16 | ||||
-rw-r--r-- | OpenSim/Framework/Communications/Tests/Cache/AssetCacheTests.cs | 5 | ||||
-rw-r--r-- | OpenSim/Framework/Communications/UserManagerBase.cs | 32 | ||||
-rw-r--r-- | OpenSim/Framework/RegionInfo.cs | 9 | ||||
-rw-r--r-- | OpenSim/Framework/Servers/HttpServer/BaseHttpServer.cs | 6 | ||||
-rw-r--r-- | OpenSim/Framework/Servers/HttpServer/SynchronousRestFormsRequester.cs | 4 | ||||
-rw-r--r-- | OpenSim/Framework/Util.cs | 33 |
7 files changed, 95 insertions, 10 deletions
diff --git a/OpenSim/Framework/Communications/IUserService.cs b/OpenSim/Framework/Communications/IUserService.cs index 725225d..15c5a96 100644 --- a/OpenSim/Framework/Communications/IUserService.cs +++ b/OpenSim/Framework/Communications/IUserService.cs | |||
@@ -98,7 +98,7 @@ namespace OpenSim.Framework.Communications | |||
98 | /// <param name="friendlistowner">The agent that who's friends list is being updated</param> | 98 | /// <param name="friendlistowner">The agent that who's friends list is being updated</param> |
99 | /// <param name="friend">The agent that is getting or loosing permissions</param> | 99 | /// <param name="friend">The agent that is getting or loosing permissions</param> |
100 | /// <param name="perms">A uint bit vector for set perms that the friend being added has; 0 = none, 1=This friend can see when they sign on, 2 = map, 4 edit objects </param> | 100 | /// <param name="perms">A uint bit vector for set perms that the friend being added has; 0 = none, 1=This friend can see when they sign on, 2 = map, 4 edit objects </param> |
101 | void UpdateUserFriendPerms(UUID friendlistowner, UUID friend, uint perms); | 101 | void UpdateUserFriendPerms(UUID friendlistowner, UUID friend, uint perms); |
102 | 102 | ||
103 | /// <summary> | 103 | /// <summary> |
104 | /// Logs off a user on the user server | 104 | /// Logs off a user on the user server |
@@ -137,9 +137,21 @@ namespace OpenSim.Framework.Communications | |||
137 | // But since Scenes only have IUserService references, I'm placing it here for now. | 137 | // But since Scenes only have IUserService references, I'm placing it here for now. |
138 | bool VerifySession(UUID userID, UUID sessionID); | 138 | bool VerifySession(UUID userID, UUID sessionID); |
139 | 139 | ||
140 | /// <summary> | ||
141 | /// Authenticate a user by their password. | ||
142 | /// </summary> | ||
143 | /// | ||
144 | /// This is used by callers outside the login process that want to | ||
145 | /// verify a user who has given their password. | ||
146 | /// | ||
147 | /// This should probably also be in IAuthentication but is here for the same reasons as VerifySession() is | ||
148 | /// | ||
149 | /// <param name="userID"></param> | ||
150 | /// <param name="password"></param> | ||
151 | /// <returns></returns> | ||
152 | bool AuthenticateUserByPassword(UUID userID, string password); | ||
140 | 153 | ||
141 | // Temporary Hack until we move everything to the new service model | 154 | // Temporary Hack until we move everything to the new service model |
142 | void SetInventoryService(IInventoryService invService); | 155 | void SetInventoryService(IInventoryService invService); |
143 | |||
144 | } | 156 | } |
145 | } | 157 | } |
diff --git a/OpenSim/Framework/Communications/Tests/Cache/AssetCacheTests.cs b/OpenSim/Framework/Communications/Tests/Cache/AssetCacheTests.cs index ac0dc6d..a757282 100644 --- a/OpenSim/Framework/Communications/Tests/Cache/AssetCacheTests.cs +++ b/OpenSim/Framework/Communications/Tests/Cache/AssetCacheTests.cs | |||
@@ -149,6 +149,11 @@ namespace OpenSim.Framework.Communications.Tests | |||
149 | { | 149 | { |
150 | throw new NotImplementedException(); | 150 | throw new NotImplementedException(); |
151 | } | 151 | } |
152 | |||
153 | public virtual bool AuthenticateUserByPassword(UUID userID, string password) | ||
154 | { | ||
155 | throw new NotImplementedException(); | ||
156 | } | ||
152 | } | 157 | } |
153 | } | 158 | } |
154 | } | 159 | } |
diff --git a/OpenSim/Framework/Communications/UserManagerBase.cs b/OpenSim/Framework/Communications/UserManagerBase.cs index 58174a0..1abd733 100644 --- a/OpenSim/Framework/Communications/UserManagerBase.cs +++ b/OpenSim/Framework/Communications/UserManagerBase.cs | |||
@@ -44,7 +44,8 @@ namespace OpenSim.Framework.Communications | |||
44 | /// <summary> | 44 | /// <summary> |
45 | /// Base class for user management (create, read, etc) | 45 | /// Base class for user management (create, read, etc) |
46 | /// </summary> | 46 | /// </summary> |
47 | public abstract class UserManagerBase : IUserService, IUserAdminService, IAvatarService, IMessagingService, IAuthentication | 47 | public abstract class UserManagerBase |
48 | : IUserService, IUserAdminService, IAvatarService, IMessagingService, IAuthentication | ||
48 | { | 49 | { |
49 | private static readonly ILog m_log | 50 | private static readonly ILog m_log |
50 | = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType); | 51 | = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType); |
@@ -93,9 +94,9 @@ namespace OpenSim.Framework.Communications | |||
93 | public void AddPlugin(string provider, string connect) | 94 | public void AddPlugin(string provider, string connect) |
94 | { | 95 | { |
95 | m_plugins.AddRange(DataPluginFactory.LoadDataPlugins<IUserDataPlugin>(provider, connect)); | 96 | m_plugins.AddRange(DataPluginFactory.LoadDataPlugins<IUserDataPlugin>(provider, connect)); |
96 | } | 97 | } |
97 | 98 | ||
98 | #region UserProfile | 99 | #region UserProfile |
99 | 100 | ||
100 | public virtual void AddTemporaryUserProfile(UserProfileData userProfile) | 101 | public virtual void AddTemporaryUserProfile(UserProfileData userProfile) |
101 | { | 102 | { |
@@ -891,7 +892,10 @@ namespace OpenSim.Framework.Communications | |||
891 | 892 | ||
892 | if (userProfile != null && userProfile.CurrentAgent != null) | 893 | if (userProfile != null && userProfile.CurrentAgent != null) |
893 | { | 894 | { |
894 | m_log.DebugFormat("[USER AUTH]: Verifying session {0} for {1}; current session {2}", sessionID, userID, userProfile.CurrentAgent.SessionID); | 895 | m_log.DebugFormat( |
896 | "[USER AUTH]: Verifying session {0} for {1}; current session {2}", | ||
897 | sessionID, userID, userProfile.CurrentAgent.SessionID); | ||
898 | |||
895 | if (userProfile.CurrentAgent.SessionID == sessionID) | 899 | if (userProfile.CurrentAgent.SessionID == sessionID) |
896 | { | 900 | { |
897 | return true; | 901 | return true; |
@@ -901,6 +905,26 @@ namespace OpenSim.Framework.Communications | |||
901 | return false; | 905 | return false; |
902 | } | 906 | } |
903 | 907 | ||
908 | public virtual bool AuthenticateUserByPassword(UUID userID, string password) | ||
909 | { | ||
910 | // m_log.DebugFormat("[USER AUTH]: Authenticating user {0} given password {1}", userID, password); | ||
911 | |||
912 | UserProfileData userProfile = GetUserProfile(userID); | ||
913 | |||
914 | if (null == userProfile) | ||
915 | return false; | ||
916 | |||
917 | string md5PasswordHash = Util.Md5Hash(Util.Md5Hash(password) + ":" + userProfile.PasswordSalt); | ||
918 | |||
919 | // m_log.DebugFormat( | ||
920 | // "[USER AUTH]: Submitted hash {0}, stored hash {1}", md5PasswordHash, userProfile.PasswordHash); | ||
921 | |||
922 | if (md5PasswordHash == userProfile.PasswordHash) | ||
923 | return true; | ||
924 | else | ||
925 | return false; | ||
926 | } | ||
927 | |||
904 | #endregion | 928 | #endregion |
905 | } | 929 | } |
906 | } | 930 | } |
diff --git a/OpenSim/Framework/RegionInfo.cs b/OpenSim/Framework/RegionInfo.cs index afd50a9..cee1d4b 100644 --- a/OpenSim/Framework/RegionInfo.cs +++ b/OpenSim/Framework/RegionInfo.cs | |||
@@ -64,6 +64,13 @@ namespace OpenSim.Framework | |||
64 | } | 64 | } |
65 | protected string m_serverURI; | 65 | protected string m_serverURI; |
66 | 66 | ||
67 | public string RegionName | ||
68 | { | ||
69 | get { return m_regionName; } | ||
70 | set { m_regionName = value; } | ||
71 | } | ||
72 | protected string m_regionName = String.Empty; | ||
73 | |||
67 | protected bool Allow_Alternate_Ports; | 74 | protected bool Allow_Alternate_Ports; |
68 | public bool m_allow_alternate_ports; | 75 | public bool m_allow_alternate_ports; |
69 | protected string m_externalHostName; | 76 | protected string m_externalHostName; |
@@ -101,6 +108,7 @@ namespace OpenSim.Framework | |||
101 | 108 | ||
102 | public SimpleRegionInfo(RegionInfo ConvertFrom) | 109 | public SimpleRegionInfo(RegionInfo ConvertFrom) |
103 | { | 110 | { |
111 | m_regionName = ConvertFrom.RegionName; | ||
104 | m_regionLocX = ConvertFrom.RegionLocX; | 112 | m_regionLocX = ConvertFrom.RegionLocX; |
105 | m_regionLocY = ConvertFrom.RegionLocY; | 113 | m_regionLocY = ConvertFrom.RegionLocY; |
106 | m_internalEndPoint = ConvertFrom.InternalEndPoint; | 114 | m_internalEndPoint = ConvertFrom.InternalEndPoint; |
@@ -284,7 +292,6 @@ namespace OpenSim.Framework | |||
284 | public UUID originRegionID = UUID.Zero; | 292 | public UUID originRegionID = UUID.Zero; |
285 | public string proxyUrl = ""; | 293 | public string proxyUrl = ""; |
286 | public int ProxyOffset = 0; | 294 | public int ProxyOffset = 0; |
287 | public string RegionName = String.Empty; | ||
288 | public string regionSecret = UUID.Random().ToString(); | 295 | public string regionSecret = UUID.Random().ToString(); |
289 | 296 | ||
290 | public string osSecret; | 297 | public string osSecret; |
diff --git a/OpenSim/Framework/Servers/HttpServer/BaseHttpServer.cs b/OpenSim/Framework/Servers/HttpServer/BaseHttpServer.cs index db87958..01990fa 100644 --- a/OpenSim/Framework/Servers/HttpServer/BaseHttpServer.cs +++ b/OpenSim/Framework/Servers/HttpServer/BaseHttpServer.cs | |||
@@ -736,8 +736,11 @@ namespace OpenSim.Framework.Servers.HttpServer | |||
736 | else | 736 | else |
737 | { | 737 | { |
738 | xmlRpcResponse = new XmlRpcResponse(); | 738 | xmlRpcResponse = new XmlRpcResponse(); |
739 | |||
739 | // Code set in accordance with http://xmlrpc-epi.sourceforge.net/specs/rfc.fault_codes.php | 740 | // Code set in accordance with http://xmlrpc-epi.sourceforge.net/specs/rfc.fault_codes.php |
740 | xmlRpcResponse.SetFault(-32601, String.Format("Requested method [{0}] not found", methodName)); | 741 | xmlRpcResponse.SetFault( |
742 | XmlRpcErrorCodes.SERVER_ERROR_METHOD, | ||
743 | String.Format("Requested method [{0}] not found", methodName)); | ||
741 | } | 744 | } |
742 | 745 | ||
743 | responseString = XmlRpcResponseSerializer.Singleton.Serialize(xmlRpcResponse); | 746 | responseString = XmlRpcResponseSerializer.Singleton.Serialize(xmlRpcResponse); |
@@ -757,6 +760,7 @@ namespace OpenSim.Framework.Servers.HttpServer | |||
757 | response.SendChunked = false; | 760 | response.SendChunked = false; |
758 | response.ContentLength64 = buf.Length; | 761 | response.ContentLength64 = buf.Length; |
759 | response.ContentEncoding = Encoding.UTF8; | 762 | response.ContentEncoding = Encoding.UTF8; |
763 | |||
760 | try | 764 | try |
761 | { | 765 | { |
762 | response.OutputStream.Write(buf, 0, buf.Length); | 766 | response.OutputStream.Write(buf, 0, buf.Length); |
diff --git a/OpenSim/Framework/Servers/HttpServer/SynchronousRestFormsRequester.cs b/OpenSim/Framework/Servers/HttpServer/SynchronousRestFormsRequester.cs index 0f0c790..ebb2691 100644 --- a/OpenSim/Framework/Servers/HttpServer/SynchronousRestFormsRequester.cs +++ b/OpenSim/Framework/Servers/HttpServer/SynchronousRestFormsRequester.cs | |||
@@ -56,14 +56,14 @@ namespace OpenSim.Framework.Servers.HttpServer | |||
56 | request.ContentType = "text/www-form-urlencoded"; | 56 | request.ContentType = "text/www-form-urlencoded"; |
57 | 57 | ||
58 | MemoryStream buffer = new MemoryStream(); | 58 | MemoryStream buffer = new MemoryStream(); |
59 | 59 | int length = 0; | |
60 | using (StreamWriter writer = new StreamWriter(buffer)) | 60 | using (StreamWriter writer = new StreamWriter(buffer)) |
61 | { | 61 | { |
62 | writer.WriteLine(obj); | 62 | writer.WriteLine(obj); |
63 | writer.Flush(); | 63 | writer.Flush(); |
64 | length = (int)buffer.Length; | ||
64 | } | 65 | } |
65 | 66 | ||
66 | int length = (int) buffer.Length; | ||
67 | request.ContentLength = length; | 67 | request.ContentLength = length; |
68 | 68 | ||
69 | Stream requestStream = request.GetRequestStream(); | 69 | Stream requestStream = request.GetRequestStream(); |
diff --git a/OpenSim/Framework/Util.cs b/OpenSim/Framework/Util.cs index 58344f3..45b5a10 100644 --- a/OpenSim/Framework/Util.cs +++ b/OpenSim/Framework/Util.cs | |||
@@ -70,6 +70,39 @@ namespace OpenSim.Framework | |||
70 | public static readonly Regex UUIDPattern | 70 | public static readonly Regex UUIDPattern |
71 | = new Regex("^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$"); | 71 | = new Regex("^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$"); |
72 | 72 | ||
73 | /// <summary> | ||
74 | /// Linear interpolates B<->C using percent A | ||
75 | /// </summary> | ||
76 | /// <param name="a"></param> | ||
77 | /// <param name="b"></param> | ||
78 | /// <param name="c"></param> | ||
79 | /// <returns></returns> | ||
80 | public static double lerp(double a, double b, double c) | ||
81 | { | ||
82 | return (b*a) + (c*(1 - a)); | ||
83 | } | ||
84 | |||
85 | /// <summary> | ||
86 | /// Bilinear Interpolate, see Lerp but for 2D using 'percents' X & Y. | ||
87 | /// Layout: | ||
88 | /// A B | ||
89 | /// C D | ||
90 | /// A<->C = Y | ||
91 | /// C<->D = X | ||
92 | /// </summary> | ||
93 | /// <param name="x"></param> | ||
94 | /// <param name="y"></param> | ||
95 | /// <param name="a"></param> | ||
96 | /// <param name="b"></param> | ||
97 | /// <param name="c"></param> | ||
98 | /// <param name="d"></param> | ||
99 | /// <returns></returns> | ||
100 | public static double lerp2D(double x, double y, double a, double b, double c, double d) | ||
101 | { | ||
102 | return lerp(y, lerp(x, a, b), lerp(x, c, d)); | ||
103 | } | ||
104 | |||
105 | |||
73 | /// <value> | 106 | /// <value> |
74 | /// Well known UUID for the blank texture used in the Linden SL viewer version 1.20 (and hopefully onwards) | 107 | /// Well known UUID for the blank texture used in the Linden SL viewer version 1.20 (and hopefully onwards) |
75 | /// </value> | 108 | /// </value> |