diff options
author | Melanie | 2009-09-16 17:57:31 +0100 |
---|---|---|
committer | Melanie | 2009-09-16 17:57:31 +0100 |
commit | 5068404505d037d1dca93b38ba69b87822531302 (patch) | |
tree | 42048b7a9a3a127f482fdf028117e8977fe75fb5 | |
parent | Add the migration for scoping grid data (diff) | |
parent | switch default physics engine to ODE and default meshmerizer to Meshmerizer i... (diff) | |
download | opensim-SC-5068404505d037d1dca93b38ba69b87822531302.zip opensim-SC-5068404505d037d1dca93b38ba69b87822531302.tar.gz opensim-SC-5068404505d037d1dca93b38ba69b87822531302.tar.bz2 opensim-SC-5068404505d037d1dca93b38ba69b87822531302.tar.xz |
Merge branch 'master' of ssh://melanie@opensimulator.org/var/git/opensim
10 files changed, 49 insertions, 46 deletions
diff --git a/OpenSim/Region/Application/ConfigurationLoader.cs b/OpenSim/Region/Application/ConfigurationLoader.cs index c3e7b86..21edcc5 100644 --- a/OpenSim/Region/Application/ConfigurationLoader.cs +++ b/OpenSim/Region/Application/ConfigurationLoader.cs | |||
@@ -305,8 +305,8 @@ namespace OpenSim | |||
305 | config.Set("region_info_source", "filesystem"); | 305 | config.Set("region_info_source", "filesystem"); |
306 | 306 | ||
307 | config.Set("gridmode", false); | 307 | config.Set("gridmode", false); |
308 | config.Set("physics", "basicphysics"); | 308 | config.Set("physics", "OpenDynamicsEngine"); |
309 | config.Set("meshing", "ZeroMesher"); | 309 | config.Set("meshing", "Meshmerizer"); |
310 | config.Set("physical_prim", true); | 310 | config.Set("physical_prim", true); |
311 | config.Set("see_into_this_sim_from_neighbor", true); | 311 | config.Set("see_into_this_sim_from_neighbor", true); |
312 | config.Set("serverside_object_permissions", false); | 312 | config.Set("serverside_object_permissions", false); |
diff --git a/OpenSim/Region/CoreModules/Avatar/Inventory/Archiver/InventoryArchiverModule.cs b/OpenSim/Region/CoreModules/Avatar/Inventory/Archiver/InventoryArchiverModule.cs index 1937637..9f49da9 100644 --- a/OpenSim/Region/CoreModules/Avatar/Inventory/Archiver/InventoryArchiverModule.cs +++ b/OpenSim/Region/CoreModules/Avatar/Inventory/Archiver/InventoryArchiverModule.cs | |||
@@ -125,10 +125,7 @@ namespace OpenSim.Region.CoreModules.Avatar.Inventory.Archiver | |||
125 | { | 125 | { |
126 | if (m_scenes.Count > 0) | 126 | if (m_scenes.Count > 0) |
127 | { | 127 | { |
128 | CachedUserInfo userInfo = GetUserInfo(firstName, lastName); | 128 | CachedUserInfo userInfo = GetUserInfo(firstName, lastName, pass); |
129 | string md5PasswdHash = Util.Md5Hash(Util.Md5Hash(pass) + ":" + userInfo.UserProfile.PasswordSalt); | ||
130 | if (userInfo.UserProfile.PasswordHash != md5PasswdHash) | ||
131 | return false; | ||
132 | 129 | ||
133 | if (userInfo != null) | 130 | if (userInfo != null) |
134 | { | 131 | { |
@@ -153,11 +150,7 @@ namespace OpenSim.Region.CoreModules.Avatar.Inventory.Archiver | |||
153 | { | 150 | { |
154 | if (m_scenes.Count > 0) | 151 | if (m_scenes.Count > 0) |
155 | { | 152 | { |
156 | CachedUserInfo userInfo = GetUserInfo(firstName, lastName); | 153 | CachedUserInfo userInfo = GetUserInfo(firstName, lastName, pass); |
157 | string md5PasswdHash = Util.Md5Hash(Util.Md5Hash(pass) + ":" + userInfo.UserProfile.PasswordSalt); | ||
158 | if (userInfo.UserProfile.PasswordHash != md5PasswdHash) | ||
159 | return false; | ||
160 | |||
161 | 154 | ||
162 | if (userInfo != null) | 155 | if (userInfo != null) |
163 | { | 156 | { |
@@ -182,11 +175,7 @@ namespace OpenSim.Region.CoreModules.Avatar.Inventory.Archiver | |||
182 | { | 175 | { |
183 | if (m_scenes.Count > 0) | 176 | if (m_scenes.Count > 0) |
184 | { | 177 | { |
185 | CachedUserInfo userInfo = GetUserInfo(firstName, lastName); | 178 | CachedUserInfo userInfo = GetUserInfo(firstName, lastName, pass); |
186 | string md5PasswdHash = Util.Md5Hash(Util.Md5Hash(pass) + ":" + userInfo.UserProfile.PasswordSalt); | ||
187 | if (userInfo.UserProfile.PasswordHash != md5PasswdHash) | ||
188 | return false; | ||
189 | |||
190 | 179 | ||
191 | if (userInfo != null) | 180 | if (userInfo != null) |
192 | { | 181 | { |
@@ -214,11 +203,7 @@ namespace OpenSim.Region.CoreModules.Avatar.Inventory.Archiver | |||
214 | { | 203 | { |
215 | if (m_scenes.Count > 0) | 204 | if (m_scenes.Count > 0) |
216 | { | 205 | { |
217 | CachedUserInfo userInfo = GetUserInfo(firstName, lastName); | 206 | CachedUserInfo userInfo = GetUserInfo(firstName, lastName, pass); |
218 | string md5PasswdHash = Util.Md5Hash(Util.Md5Hash(pass) + ":" + userInfo.UserProfile.PasswordSalt); | ||
219 | if (userInfo.UserProfile.PasswordHash != md5PasswdHash) | ||
220 | return false; | ||
221 | |||
222 | 207 | ||
223 | if (userInfo != null) | 208 | if (userInfo != null) |
224 | { | 209 | { |
@@ -251,7 +236,7 @@ namespace OpenSim.Region.CoreModules.Avatar.Inventory.Archiver | |||
251 | if (cmdparams.Length < 6) | 236 | if (cmdparams.Length < 6) |
252 | { | 237 | { |
253 | m_log.Error( | 238 | m_log.Error( |
254 | "[INVENTORY ARCHIVER]: usage is load iar <first name> <last name> <inventory path> <password> [<load file path>]"); | 239 | "[INVENTORY ARCHIVER]: usage is load iar <first name> <last name> <inventory path> <user password> [<load file path>]"); |
255 | return; | 240 | return; |
256 | } | 241 | } |
257 | 242 | ||
@@ -282,7 +267,7 @@ namespace OpenSim.Region.CoreModules.Avatar.Inventory.Archiver | |||
282 | if (cmdparams.Length < 5) | 267 | if (cmdparams.Length < 5) |
283 | { | 268 | { |
284 | m_log.Error( | 269 | m_log.Error( |
285 | "[INVENTORY ARCHIVER]: usage is save iar <first name> <last name> <inventory path> <password> [<save file path>]"); | 270 | "[INVENTORY ARCHIVER]: usage is save iar <first name> <last name> <inventory path> <user password> [<save file path>]"); |
286 | return; | 271 | return; |
287 | } | 272 | } |
288 | 273 | ||
@@ -334,8 +319,9 @@ namespace OpenSim.Region.CoreModules.Avatar.Inventory.Archiver | |||
334 | /// </summary> | 319 | /// </summary> |
335 | /// <param name="firstName"></param> | 320 | /// <param name="firstName"></param> |
336 | /// <param name="lastName"></param> | 321 | /// <param name="lastName"></param> |
322 | /// <param name="pass">User password</param> | ||
337 | /// <returns></returns> | 323 | /// <returns></returns> |
338 | protected CachedUserInfo GetUserInfo(string firstName, string lastName) | 324 | protected CachedUserInfo GetUserInfo(string firstName, string lastName, string pass) |
339 | { | 325 | { |
340 | CachedUserInfo userInfo = m_aScene.CommsManager.UserProfileCacheService.GetUserDetails(firstName, lastName); | 326 | CachedUserInfo userInfo = m_aScene.CommsManager.UserProfileCacheService.GetUserDetails(firstName, lastName); |
341 | if (null == userInfo) | 327 | if (null == userInfo) |
@@ -345,6 +331,15 @@ namespace OpenSim.Region.CoreModules.Avatar.Inventory.Archiver | |||
345 | firstName, lastName); | 331 | firstName, lastName); |
346 | return null; | 332 | return null; |
347 | } | 333 | } |
334 | |||
335 | string md5PasswdHash = Util.Md5Hash(Util.Md5Hash(pass) + ":" + userInfo.UserProfile.PasswordSalt); | ||
336 | if (userInfo.UserProfile.PasswordHash != md5PasswdHash) | ||
337 | { | ||
338 | m_log.ErrorFormat( | ||
339 | "[INVENTORY ARCHIVER]: Password for user {0} {1} incorrect. Please try again.", | ||
340 | firstName, lastName); | ||
341 | return null; | ||
342 | } | ||
348 | 343 | ||
349 | return userInfo; | 344 | return userInfo; |
350 | } | 345 | } |
diff --git a/OpenSim/Region/CoreModules/ServiceConnectorsOut/Authorization/LocalAuthorizationServiceConnector.cs b/OpenSim/Region/CoreModules/ServiceConnectorsOut/Authorization/LocalAuthorizationServiceConnector.cs index c52c257..e69613a 100644 --- a/OpenSim/Region/CoreModules/ServiceConnectorsOut/Authorization/LocalAuthorizationServiceConnector.cs +++ b/OpenSim/Region/CoreModules/ServiceConnectorsOut/Authorization/LocalAuthorizationServiceConnector.cs | |||
@@ -132,9 +132,9 @@ namespace OpenSim.Region.CoreModules.ServiceConnectorsOut.Authorization | |||
132 | 132 | ||
133 | } | 133 | } |
134 | 134 | ||
135 | public bool IsAuthorizedForRegion(string userID, string regionID) | 135 | public bool IsAuthorizedForRegion(string userID, string regionID, out string message) |
136 | { | 136 | { |
137 | return m_AuthorizationService.IsAuthorizedForRegion(userID, regionID); | 137 | return m_AuthorizationService.IsAuthorizedForRegion(userID, regionID, out message); |
138 | } | 138 | } |
139 | 139 | ||
140 | } | 140 | } |
diff --git a/OpenSim/Region/CoreModules/ServiceConnectorsOut/Authorization/RemoteAuthorizationServiceConnector.cs b/OpenSim/Region/CoreModules/ServiceConnectorsOut/Authorization/RemoteAuthorizationServiceConnector.cs index 9241851..a672f4f 100644 --- a/OpenSim/Region/CoreModules/ServiceConnectorsOut/Authorization/RemoteAuthorizationServiceConnector.cs +++ b/OpenSim/Region/CoreModules/ServiceConnectorsOut/Authorization/RemoteAuthorizationServiceConnector.cs | |||
@@ -117,11 +117,12 @@ namespace OpenSim.Region.CoreModules.ServiceConnectorsOut.Authorization | |||
117 | 117 | ||
118 | } | 118 | } |
119 | 119 | ||
120 | public bool IsAuthorizedForRegion(string userID, string regionID) | 120 | public bool IsAuthorizedForRegion(string userID, string regionID, out string message) |
121 | { | 121 | { |
122 | m_log.InfoFormat("[REMOTE AUTHORIZATION CONNECTOR]: IsAuthorizedForRegion checking {0} for region {1}", userID, regionID); | 122 | m_log.InfoFormat("[REMOTE AUTHORIZATION CONNECTOR]: IsAuthorizedForRegion checking {0} for region {1}", userID, regionID); |
123 | 123 | ||
124 | bool isAuthorized = true; | 124 | bool isAuthorized = true; |
125 | message = String.Empty; | ||
125 | 126 | ||
126 | // get the scene this call is being made for | 127 | // get the scene this call is being made for |
127 | Scene scene = null; | 128 | Scene scene = null; |
@@ -140,7 +141,7 @@ namespace OpenSim.Region.CoreModules.ServiceConnectorsOut.Authorization | |||
140 | { | 141 | { |
141 | UserProfileData profile = scene.CommsManager.UserService.GetUserProfile(new UUID(userID)); | 142 | UserProfileData profile = scene.CommsManager.UserService.GetUserProfile(new UUID(userID)); |
142 | isAuthorized = IsAuthorizedForRegion(userID, profile.FirstName, profile.SurName, | 143 | isAuthorized = IsAuthorizedForRegion(userID, profile.FirstName, profile.SurName, |
143 | profile.Email, scene.RegionInfo.RegionName, regionID); | 144 | profile.Email, scene.RegionInfo.RegionName, regionID, out message); |
144 | } | 145 | } |
145 | else | 146 | else |
146 | { | 147 | { |
diff --git a/OpenSim/Region/Framework/Scenes/Scene.cs b/OpenSim/Region/Framework/Scenes/Scene.cs index 0c2f991..d8478a2 100644 --- a/OpenSim/Region/Framework/Scenes/Scene.cs +++ b/OpenSim/Region/Framework/Scenes/Scene.cs | |||
@@ -994,9 +994,7 @@ namespace OpenSim.Region.Framework.Scenes | |||
994 | 994 | ||
995 | // Loop it | 995 | // Loop it |
996 | if (m_frame == Int32.MaxValue) | 996 | if (m_frame == Int32.MaxValue) |
997 | m_frame = 0; | 997 | m_frame = 0; |
998 | |||
999 | |||
1000 | 998 | ||
1001 | otherMS = Environment.TickCount; | 999 | otherMS = Environment.TickCount; |
1002 | // run through all entities looking for updates (slow) | 1000 | // run through all entities looking for updates (slow) |
@@ -1017,7 +1015,6 @@ namespace OpenSim.Region.Framework.Scenes | |||
1017 | m_sceneGraph.UpdateEntities(); | 1015 | m_sceneGraph.UpdateEntities(); |
1018 | } | 1016 | } |
1019 | 1017 | ||
1020 | |||
1021 | // run through entities that have scheduled themselves for | 1018 | // run through entities that have scheduled themselves for |
1022 | // updates looking for updates(faster) | 1019 | // updates looking for updates(faster) |
1023 | if (m_frame % m_update_entitiesquick == 0) | 1020 | if (m_frame % m_update_entitiesquick == 0) |
@@ -3253,10 +3250,11 @@ namespace OpenSim.Region.Framework.Scenes | |||
3253 | 3250 | ||
3254 | if (AuthorizationService != null) | 3251 | if (AuthorizationService != null) |
3255 | { | 3252 | { |
3256 | if (!AuthorizationService.IsAuthorizedForRegion(agent.AgentID.ToString(), RegionInfo.RegionID.ToString())) | 3253 | if (!AuthorizationService.IsAuthorizedForRegion(agent.AgentID.ToString(), RegionInfo.RegionID.ToString(),out reason)) |
3257 | { | 3254 | { |
3258 | m_log.WarnFormat("[CONNECTION BEGIN]: Denied access to: {0} ({1} {2}) at {3} because the user does not have access to the region", | 3255 | m_log.WarnFormat("[CONNECTION BEGIN]: Denied access to: {0} ({1} {2}) at {3} because the user does not have access to the region", |
3259 | agent.AgentID, agent.firstname, agent.lastname, RegionInfo.RegionName); | 3256 | agent.AgentID, agent.firstname, agent.lastname, RegionInfo.RegionName); |
3257 | //reason = String.Format("You are not currently on the access list for {0}",RegionInfo.RegionName); | ||
3260 | return false; | 3258 | return false; |
3261 | } | 3259 | } |
3262 | } | 3260 | } |
diff --git a/OpenSim/Server/Handlers/Authorization/AuthorizationServerPostHandler.cs b/OpenSim/Server/Handlers/Authorization/AuthorizationServerPostHandler.cs index fb079d3..69acd25 100644 --- a/OpenSim/Server/Handlers/Authorization/AuthorizationServerPostHandler.cs +++ b/OpenSim/Server/Handlers/Authorization/AuthorizationServerPostHandler.cs | |||
@@ -60,7 +60,8 @@ namespace OpenSim.Server.Handlers.Authorization | |||
60 | XmlSerializer xs = new XmlSerializer(typeof (AuthorizationRequest)); | 60 | XmlSerializer xs = new XmlSerializer(typeof (AuthorizationRequest)); |
61 | AuthorizationRequest Authorization = (AuthorizationRequest) xs.Deserialize(request); | 61 | AuthorizationRequest Authorization = (AuthorizationRequest) xs.Deserialize(request); |
62 | 62 | ||
63 | bool authorized = m_AuthorizationService.IsAuthorizedForRegion(Authorization.ID, Authorization.RegionID); | 63 | string message = String.Empty; |
64 | bool authorized = m_AuthorizationService.IsAuthorizedForRegion(Authorization.ID, Authorization.RegionID,out message); | ||
64 | 65 | ||
65 | AuthorizationResponse result = new AuthorizationResponse(authorized, Authorization.ID + " has been authorized"); | 66 | AuthorizationResponse result = new AuthorizationResponse(authorized, Authorization.ID + " has been authorized"); |
66 | 67 | ||
diff --git a/OpenSim/Services/AuthorizationService/AuthorizationService.cs b/OpenSim/Services/AuthorizationService/AuthorizationService.cs index c795ba0..d658368 100644 --- a/OpenSim/Services/AuthorizationService/AuthorizationService.cs +++ b/OpenSim/Services/AuthorizationService/AuthorizationService.cs | |||
@@ -48,8 +48,9 @@ namespace OpenSim.Services.AuthorizationService | |||
48 | m_log.Info("[AUTHORIZATION CONNECTOR]: Local Authorization service enabled"); | 48 | m_log.Info("[AUTHORIZATION CONNECTOR]: Local Authorization service enabled"); |
49 | } | 49 | } |
50 | 50 | ||
51 | public bool IsAuthorizedForRegion(string userID, string regionID) | 51 | public bool IsAuthorizedForRegion(string userID, string regionID, out string message) |
52 | { | 52 | { |
53 | message = "Authorized"; | ||
53 | return true; | 54 | return true; |
54 | } | 55 | } |
55 | } | 56 | } |
diff --git a/OpenSim/Services/Connectors/Authorization/AuthorizationServiceConnector.cs b/OpenSim/Services/Connectors/Authorization/AuthorizationServiceConnector.cs index 98309f1..3167352 100644 --- a/OpenSim/Services/Connectors/Authorization/AuthorizationServiceConnector.cs +++ b/OpenSim/Services/Connectors/Authorization/AuthorizationServiceConnector.cs | |||
@@ -88,7 +88,7 @@ namespace OpenSim.Services.Connectors | |||
88 | m_ResponseOnFailure = responseOnFailure; | 88 | m_ResponseOnFailure = responseOnFailure; |
89 | } | 89 | } |
90 | 90 | ||
91 | public bool IsAuthorizedForRegion(string userID, string firstname, string surname, string email, string regionName, string regionID) | 91 | public bool IsAuthorizedForRegion(string userID, string firstname, string surname, string email, string regionName, string regionID, out string message) |
92 | { | 92 | { |
93 | // do a remote call to the authorization server specified in the AuthorizationServerURI | 93 | // do a remote call to the authorization server specified in the AuthorizationServerURI |
94 | m_log.InfoFormat("[AUTHORIZATION CONNECTOR]: IsAuthorizedForRegion checking {0} at remote server {1}", userID, m_ServerURI); | 94 | m_log.InfoFormat("[AUTHORIZATION CONNECTOR]: IsAuthorizedForRegion checking {0} at remote server {1}", userID, m_ServerURI); |
@@ -105,10 +105,12 @@ namespace OpenSim.Services.Connectors | |||
105 | catch (Exception e) | 105 | catch (Exception e) |
106 | { | 106 | { |
107 | m_log.WarnFormat("[AUTHORIZATION CONNECTOR]: Unable to send authorize {0} for region {1} error thrown during comms with remote server. Reason: {2}", userID, regionID, e.Message); | 107 | m_log.WarnFormat("[AUTHORIZATION CONNECTOR]: Unable to send authorize {0} for region {1} error thrown during comms with remote server. Reason: {2}", userID, regionID, e.Message); |
108 | message=""; | ||
108 | return m_ResponseOnFailure; | 109 | return m_ResponseOnFailure; |
109 | } | 110 | } |
110 | 111 | ||
111 | m_log.DebugFormat("[AUTHORIZATION CONNECTOR] response from remote service was {0}", response.Message); | 112 | m_log.DebugFormat("[AUTHORIZATION CONNECTOR] response from remote service was {0}", response.Message); |
113 | message = response.Message; | ||
112 | 114 | ||
113 | return response.IsAuthorized; | 115 | return response.IsAuthorized; |
114 | } | 116 | } |
diff --git a/OpenSim/Services/Interfaces/IAuthorizationService.cs b/OpenSim/Services/Interfaces/IAuthorizationService.cs index 91afa9a..c5d577a 100644 --- a/OpenSim/Services/Interfaces/IAuthorizationService.cs +++ b/OpenSim/Services/Interfaces/IAuthorizationService.cs | |||
@@ -40,7 +40,7 @@ namespace OpenSim.Services.Interfaces | |||
40 | // This method returns a simple true false indicating | 40 | // This method returns a simple true false indicating |
41 | // whether or not a user has access to the region | 41 | // whether or not a user has access to the region |
42 | // | 42 | // |
43 | bool IsAuthorizedForRegion(string userID, string regionID); | 43 | bool IsAuthorizedForRegion(string userID, string regionID, out string message); |
44 | 44 | ||
45 | } | 45 | } |
46 | 46 | ||
diff --git a/bin/OpenSim.ini.example b/bin/OpenSim.ini.example index 8582a6c..d38c511 100644 --- a/bin/OpenSim.ini.example +++ b/bin/OpenSim.ini.example | |||
@@ -134,19 +134,24 @@ | |||
134 | ; if you would like to allow prims to be physical and move by physics with the physical checkbox in the client set this to true. | 134 | ; if you would like to allow prims to be physical and move by physics with the physical checkbox in the client set this to true. |
135 | physical_prim = true | 135 | physical_prim = true |
136 | 136 | ||
137 | ; Select a mesher here. ZeroMesher is safe and fast. | 137 | ; Select a mesher here. |
138 | ; ZeroMesher also means that the physics engine models the physics of prims | ||
139 | ; sticking to the basic shapes the engine does support. Usually this is only a box. | ||
140 | ; Meshmerizer gives a better handling of complex prims by using triangle meshes. | ||
141 | ; Note that only ODE physics currently deals with meshed prims in a satisfactory way | ||
142 | ; | 138 | ; |
143 | meshing = ZeroMesher | 139 | ; Meshmerizer properly handles complex prims by using triangle meshes. |
144 | ;meshing = Meshmerizer | 140 | ; Note that only the ODE physics engine currently deals with meshed prims in a satisfactory way |
141 | ; | ||
142 | ; ZeroMesher is faster but leaves the physics engine to model the mesh using the basic shapes that it supports | ||
143 | ; Usually this is only a box | ||
144 | |||
145 | meshing = Meshmerizer | ||
146 | ;meshing = ZeroMesher | ||
145 | 147 | ||
146 | ; Choose one of the physics engines below | 148 | ; Choose one of the physics engines below |
147 | physics = basicphysics | 149 | ; OpenDynamicsEngine is by some distance the most developed physics engine |
150 | ; basicphysics effectively does not model physics at all, making all objects phantom | ||
151 | |||
152 | physics = OpenDynamicsEngine | ||
153 | ;physics = basicphysics | ||
148 | ;physics = POS | 154 | ;physics = POS |
149 | ;physics = OpenDynamicsEngine | ||
150 | ;physics = modified_BulletX | 155 | ;physics = modified_BulletX |
151 | 156 | ||
152 | ; ## | 157 | ; ## |