diff options
6 files changed, 117 insertions, 80 deletions
diff --git a/OpenSim/Region/CoreModules/Framework/EntityTransfer/HGEntityTransferModule.cs b/OpenSim/Region/CoreModules/Framework/EntityTransfer/HGEntityTransferModule.cs index 679be18..e37d429 100644 --- a/OpenSim/Region/CoreModules/Framework/EntityTransfer/HGEntityTransferModule.cs +++ b/OpenSim/Region/CoreModules/Framework/EntityTransfer/HGEntityTransferModule.cs | |||
@@ -259,8 +259,8 @@ namespace OpenSim.Region.CoreModules.Framework.EntityTransfer | |||
259 | if (flags == -1 /* no region in DB */ || (flags & (int)OpenSim.Framework.RegionFlags.Hyperlink) != 0) | 259 | if (flags == -1 /* no region in DB */ || (flags & (int)OpenSim.Framework.RegionFlags.Hyperlink) != 0) |
260 | { | 260 | { |
261 | // this user is going to another grid | 261 | // this user is going to another grid |
262 | // check if HyperGrid teleport is allowed, based on user level | 262 | // for local users, check if HyperGrid teleport is allowed, based on user level |
263 | if (sp.UserLevel < m_levelHGTeleport) | 263 | if (Scene.UserManagementModule.IsLocalGridUser(sp.UUID) && sp.UserLevel < m_levelHGTeleport) |
264 | { | 264 | { |
265 | m_log.WarnFormat("[HG ENTITY TRANSFER MODULE]: Unable to HG teleport agent due to insufficient UserLevel."); | 265 | m_log.WarnFormat("[HG ENTITY TRANSFER MODULE]: Unable to HG teleport agent due to insufficient UserLevel."); |
266 | reason = "Hypergrid teleport not allowed"; | 266 | reason = "Hypergrid teleport not allowed"; |
diff --git a/OpenSim/Region/CoreModules/Framework/InventoryAccess/HGInventoryAccessModule.cs b/OpenSim/Region/CoreModules/Framework/InventoryAccess/HGInventoryAccessModule.cs index 80257bd..6bb758e 100644 --- a/OpenSim/Region/CoreModules/Framework/InventoryAccess/HGInventoryAccessModule.cs +++ b/OpenSim/Region/CoreModules/Framework/InventoryAccess/HGInventoryAccessModule.cs | |||
@@ -92,7 +92,7 @@ namespace OpenSim.Region.CoreModules.Framework.InventoryAccess | |||
92 | m_HomeURI = thisModuleConfig.GetString("HomeURI", m_HomeURI); | 92 | m_HomeURI = thisModuleConfig.GetString("HomeURI", m_HomeURI); |
93 | m_OutboundPermission = thisModuleConfig.GetBoolean("OutboundPermission", true); | 93 | m_OutboundPermission = thisModuleConfig.GetBoolean("OutboundPermission", true); |
94 | m_ThisGatekeeper = thisModuleConfig.GetString("Gatekeeper", string.Empty); | 94 | m_ThisGatekeeper = thisModuleConfig.GetString("Gatekeeper", string.Empty); |
95 | m_RestrictInventoryAccessAbroad = thisModuleConfig.GetBoolean("RestrictInventoryAccessAbroad", false); | 95 | m_RestrictInventoryAccessAbroad = thisModuleConfig.GetBoolean("RestrictInventoryAccessAbroad", true); |
96 | } | 96 | } |
97 | else | 97 | else |
98 | m_log.Warn("[HG INVENTORY ACCESS MODULE]: HGInventoryAccessModule configs not found. ProfileServerURI not set!"); | 98 | m_log.Warn("[HG INVENTORY ACCESS MODULE]: HGInventoryAccessModule configs not found. ProfileServerURI not set!"); |
@@ -351,6 +351,7 @@ namespace OpenSim.Region.CoreModules.Framework.InventoryAccess | |||
351 | 351 | ||
352 | private void ProcessInventoryForArriving(IClientAPI client) | 352 | private void ProcessInventoryForArriving(IClientAPI client) |
353 | { | 353 | { |
354 | // No-op for now, but we may need to do something for freign users inventory | ||
354 | } | 355 | } |
355 | 356 | ||
356 | // | 357 | // |
@@ -397,6 +398,7 @@ namespace OpenSim.Region.CoreModules.Framework.InventoryAccess | |||
397 | 398 | ||
398 | private void ProcessInventoryForLeaving(IClientAPI client) | 399 | private void ProcessInventoryForLeaving(IClientAPI client) |
399 | { | 400 | { |
401 | // No-op for now | ||
400 | } | 402 | } |
401 | 403 | ||
402 | #endregion | 404 | #endregion |
diff --git a/OpenSim/Services/HypergridService/HGSuitcaseInventoryService.cs b/OpenSim/Services/HypergridService/HGSuitcaseInventoryService.cs index 556a0da..677bd7b 100644 --- a/OpenSim/Services/HypergridService/HGSuitcaseInventoryService.cs +++ b/OpenSim/Services/HypergridService/HGSuitcaseInventoryService.cs | |||
@@ -71,7 +71,7 @@ namespace OpenSim.Services.HypergridService | |||
71 | m_ConfigName = configName; | 71 | m_ConfigName = configName; |
72 | 72 | ||
73 | if (m_Database == null) | 73 | if (m_Database == null) |
74 | m_log.WarnFormat("[XXX]: m_Database is null!"); | 74 | m_log.ErrorFormat("[HG SUITCASE INVENTORY SERVICE]: m_Database is null!"); |
75 | 75 | ||
76 | // | 76 | // |
77 | // Try reading the [InventoryService] section, if it exists | 77 | // Try reading the [InventoryService] section, if it exists |
@@ -301,7 +301,7 @@ namespace OpenSim.Services.HypergridService | |||
301 | 301 | ||
302 | public override bool AddFolder(InventoryFolderBase folder) | 302 | public override bool AddFolder(InventoryFolderBase folder) |
303 | { | 303 | { |
304 | m_log.WarnFormat("[HG SUITCASE INVENTORY SERVICE]: AddFolder {0} {1}", folder.Name, folder.ParentID); | 304 | //m_log.WarnFormat("[HG SUITCASE INVENTORY SERVICE]: AddFolder {0} {1}", folder.Name, folder.ParentID); |
305 | // Let's do a bit of sanity checking, more than the base service does | 305 | // Let's do a bit of sanity checking, more than the base service does |
306 | // make sure the given folder's parent folder exists under the suitcase tree of this user | 306 | // make sure the given folder's parent folder exists under the suitcase tree of this user |
307 | 307 | ||
@@ -323,7 +323,7 @@ namespace OpenSim.Services.HypergridService | |||
323 | 323 | ||
324 | public override bool UpdateFolder(InventoryFolderBase folder) | 324 | public override bool UpdateFolder(InventoryFolderBase folder) |
325 | { | 325 | { |
326 | m_log.DebugFormat("[HG SUITCASE INVENTORY SERVICE]: Update folder {0}, version {1}", folder.ID, folder.Version); | 326 | //m_log.DebugFormat("[HG SUITCASE INVENTORY SERVICE]: Update folder {0}, version {1}", folder.ID, folder.Version); |
327 | if (!IsWithinSuitcaseTree(folder.Owner, folder.ID)) | 327 | if (!IsWithinSuitcaseTree(folder.Owner, folder.ID)) |
328 | { | 328 | { |
329 | m_log.DebugFormat("[HG SUITCASE INVENTORY SERVICE]: folder {0} not within Suitcase tree", folder.Name); | 329 | m_log.DebugFormat("[HG SUITCASE INVENTORY SERVICE]: folder {0} not within Suitcase tree", folder.Name); |
@@ -584,7 +584,7 @@ namespace OpenSim.Services.HypergridService | |||
584 | { | 584 | { |
585 | if (a.Wearables[i][j].ItemID == itemID) | 585 | if (a.Wearables[i][j].ItemID == itemID) |
586 | { | 586 | { |
587 | m_log.DebugFormat("[HG SUITCASE INVENTORY SERVICE]: item {0} is a wearable", itemID); | 587 | //m_log.DebugFormat("[HG SUITCASE INVENTORY SERVICE]: item {0} is a wearable", itemID); |
588 | return true; | 588 | return true; |
589 | } | 589 | } |
590 | } | 590 | } |
@@ -593,7 +593,7 @@ namespace OpenSim.Services.HypergridService | |||
593 | // Check attachments | 593 | // Check attachments |
594 | if (a.GetAttachmentForItem(itemID) != null) | 594 | if (a.GetAttachmentForItem(itemID) != null) |
595 | { | 595 | { |
596 | m_log.DebugFormat("[HG SUITCASE INVENTORY SERVICE]: item {0} is an attachment", itemID); | 596 | //m_log.DebugFormat("[HG SUITCASE INVENTORY SERVICE]: item {0} is an attachment", itemID); |
597 | return true; | 597 | return true; |
598 | } | 598 | } |
599 | 599 | ||
diff --git a/bin/Robust.HG.ini.example b/bin/Robust.HG.ini.example index 82ef44d..4ecc6b0 100644 --- a/bin/Robust.HG.ini.example +++ b/bin/Robust.HG.ini.example | |||
@@ -485,8 +485,15 @@ HGAssetServiceConnector = "HGAssetService@8002/OpenSim.Server.Handlers.dll:Asset | |||
485 | ; * | 485 | ; * |
486 | [HGInventoryService] | 486 | [HGInventoryService] |
487 | ; For the InventoryServiceInConnector | 487 | ; For the InventoryServiceInConnector |
488 | LocalServiceModule = "OpenSim.Services.HypergridService.dll:HGInventoryService" | 488 | LocalServiceModule = "OpenSim.Services.HypergridService.dll:HGSuitcaseInventoryService" |
489 | ;; alternatives: | ||
490 | ;; HG1.5, more permissive, not recommended, but still supported | ||
491 | ;LocalServiceModule = "OpenSim.Services.HypergridService.dll:HGInventoryService" | ||
492 | ;; HG1.0, totally permissive, not recommended, but OK for grids with 100% trust | ||
493 | ;LocalServiceModule = "OpenSim.Services.InventoryService.dll:XInventoryService" | ||
494 | |||
489 | UserAccountsService = "OpenSim.Services.UserAccountService.dll:UserAccountService" | 495 | UserAccountsService = "OpenSim.Services.UserAccountService.dll:UserAccountService" |
496 | AvatarService = "OpenSim.Services.AvatarService.dll:AvatarService" | ||
490 | HomeURI = "http://127.0.0.1:8002" | 497 | HomeURI = "http://127.0.0.1:8002" |
491 | 498 | ||
492 | ; * The interface that local users get when they are in other grids. | 499 | ; * The interface that local users get when they are in other grids. |
diff --git a/bin/config-include/StandaloneCommon.ini.example b/bin/config-include/StandaloneCommon.ini.example index 84de0ec..f28de43 100644 --- a/bin/config-include/StandaloneCommon.ini.example +++ b/bin/config-include/StandaloneCommon.ini.example | |||
@@ -47,36 +47,6 @@ | |||
47 | DefaultAssetLoader = "OpenSim.Framework.AssetLoader.Filesystem.dll" | 47 | DefaultAssetLoader = "OpenSim.Framework.AssetLoader.Filesystem.dll" |
48 | AssetLoaderArgs = "assets/AssetSets.xml" | 48 | AssetLoaderArgs = "assets/AssetSets.xml" |
49 | 49 | ||
50 | [HGInventoryService] | ||
51 | HomeURI = "http://127.0.0.1:9000" | ||
52 | |||
53 | [HGAssetService] | ||
54 | HomeURI = "http://127.0.0.1:9000" | ||
55 | |||
56 | ;; The asset types that this grid can export to / import from other grids. | ||
57 | ;; Comma separated. | ||
58 | ;; Valid values are all the asset types in OpenMetaverse.AssetType, namely: | ||
59 | ;; Unknown, Texture, Sound, CallingCard, Landmark, Clothing, Object, Notecard, LSLText, | ||
60 | ;; LSLBytecode, TextureTGA, Bodypart, SoundWAV, ImageTGA, ImageJPEG, Animation, Gesture, Mesh | ||
61 | ;; | ||
62 | ;; Leave blank or commented if you don't want to apply any restrictions. | ||
63 | ;; A more strict, but still reasonable, policy may be to disallow the exchange | ||
64 | ;; of scripts, like so: | ||
65 | ; DisallowExport ="LSLText" | ||
66 | ; DisallowImport ="LSLBytecode" | ||
67 | |||
68 | |||
69 | [HGInventoryAccessModule] | ||
70 | HomeURI = "http://127.0.0.1:9000" | ||
71 | Gatekeeper = "http://127.0.0.1:9000" | ||
72 | |||
73 | ;; If you want to protect your assets from being copied by foreign visitors | ||
74 | ;; uncomment the next line. You may want to do this on sims that have licensed content. | ||
75 | ; OutboundPermission = False | ||
76 | |||
77 | [HGFriendsModule] | ||
78 | ; User level required to be able to send friendship invitations to foreign users | ||
79 | ;LevelHGFriends = 0; | ||
80 | 50 | ||
81 | [GridService] | 51 | [GridService] |
82 | ;; For in-memory region storage (default) | 52 | ;; For in-memory region storage (default) |
@@ -97,11 +67,6 @@ | |||
97 | ;; change this to the address of your simulator | 67 | ;; change this to the address of your simulator |
98 | Gatekeeper="http://127.0.0.1:9000" | 68 | Gatekeeper="http://127.0.0.1:9000" |
99 | 69 | ||
100 | [Messaging] | ||
101 | ; === HG ONLY === | ||
102 | ;; change this to the address of your simulator | ||
103 | Gatekeeper = "http://127.0.0.1:9000" | ||
104 | |||
105 | [LibraryModule] | 70 | [LibraryModule] |
106 | ; Set this if you want to change the name of the OpenSim Library | 71 | ; Set this if you want to change the name of the OpenSim Library |
107 | ;LibraryName = "My World's Library" | 72 | ;LibraryName = "My World's Library" |
@@ -140,41 +105,6 @@ | |||
140 | ;AllowedClients = "" | 105 | ;AllowedClients = "" |
141 | ;DeniedClients = "" | 106 | ;DeniedClients = "" |
142 | 107 | ||
143 | [GatekeeperService] | ||
144 | ExternalName = "http://127.0.0.1:9000" | ||
145 | |||
146 | ; Does this grid allow incoming links to any region in it? | ||
147 | ; If false, HG TPs happen only to the Default regions specified in [GridService] section | ||
148 | AllowTeleportsToAnyRegion = true | ||
149 | |||
150 | ;; Regular expressions for controlling which client versions are accepted/denied. | ||
151 | ;; An empty string means nothing is checked. | ||
152 | ;; | ||
153 | ;; Example 1: allow only these 3 types of clients (any version of them) | ||
154 | ;; AllowedClients = "Imprudence|Hippo|Second Life" | ||
155 | ;; | ||
156 | ;; Example 2: allow all clients except these | ||
157 | ;; DeniedClients = "Twisted|Crawler|Cryolife|FuckLife|StreetLife|GreenLife|AntiLife|KORE-Phaze|Synlyfe|Purple Second Life|SecondLi |Emerald" | ||
158 | ;; | ||
159 | ;; Note that these are regular expressions, so every character counts. | ||
160 | ;; Also note that this is very weak security and should not be trusted as a reliable means | ||
161 | ;; for keeping bad clients out; modified clients can fake their identifiers. | ||
162 | ;; | ||
163 | ;; | ||
164 | ;AllowedClients = "" | ||
165 | ;DeniedClients = "" | ||
166 | |||
167 | ;; Are foreign visitors allowed? | ||
168 | ;ForeignAgentsAllowed = true | ||
169 | ;; | ||
170 | ;; If ForeignAgentsAllowed is true, make exceptions using AllowExcept. | ||
171 | ;; Leave blank or commented for no exceptions. | ||
172 | ; AllowExcept = "http://griefer.com:8002, http://enemy.com:8002" | ||
173 | ;; | ||
174 | ;; If ForeignAgentsAllowed is false, make exceptions using DisallowExcept | ||
175 | ;; Leave blank or commented for no exceptions. | ||
176 | ; DisallowExcept = "http://myfriendgrid.com:8002, http://myboss.com:8002" | ||
177 | |||
178 | 108 | ||
179 | [FreeswitchService] | 109 | [FreeswitchService] |
180 | ;; If FreeSWITCH is not being used then you don't need to set any of these parameters | 110 | ;; If FreeSWITCH is not being used then you don't need to set any of these parameters |
@@ -279,6 +209,44 @@ | |||
279 | ; Example: | 209 | ; Example: |
280 | ; Region_Test_1 = "DisallowForeigners" | 210 | ; Region_Test_1 = "DisallowForeigners" |
281 | 211 | ||
212 | ;; | ||
213 | ;; HG configurations | ||
214 | ;; | ||
215 | [GatekeeperService] | ||
216 | ExternalName = "http://127.0.0.1:9000" | ||
217 | |||
218 | ; Does this grid allow incoming links to any region in it? | ||
219 | ; If false, HG TPs happen only to the Default regions specified in [GridService] section | ||
220 | AllowTeleportsToAnyRegion = true | ||
221 | |||
222 | ;; Regular expressions for controlling which client versions are accepted/denied. | ||
223 | ;; An empty string means nothing is checked. | ||
224 | ;; | ||
225 | ;; Example 1: allow only these 3 types of clients (any version of them) | ||
226 | ;; AllowedClients = "Imprudence|Hippo|Second Life" | ||
227 | ;; | ||
228 | ;; Example 2: allow all clients except these | ||
229 | ;; DeniedClients = "Twisted|Crawler|Cryolife|FuckLife|StreetLife|GreenLife|AntiLife|KORE-Phaze|Synlyfe|Purple Second Life|SecondLi |Emerald" | ||
230 | ;; | ||
231 | ;; Note that these are regular expressions, so every character counts. | ||
232 | ;; Also note that this is very weak security and should not be trusted as a reliable means | ||
233 | ;; for keeping bad clients out; modified clients can fake their identifiers. | ||
234 | ;; | ||
235 | ;; | ||
236 | ;AllowedClients = "" | ||
237 | ;DeniedClients = "" | ||
238 | |||
239 | ;; Are foreign visitors allowed? | ||
240 | ;ForeignAgentsAllowed = true | ||
241 | ;; | ||
242 | ;; If ForeignAgentsAllowed is true, make exceptions using AllowExcept. | ||
243 | ;; Leave blank or commented for no exceptions. | ||
244 | ; AllowExcept = "http://griefer.com:8002, http://enemy.com:8002" | ||
245 | ;; | ||
246 | ;; If ForeignAgentsAllowed is false, make exceptions using DisallowExcept | ||
247 | ;; Leave blank or commented for no exceptions. | ||
248 | ; DisallowExcept = "http://myfriendgrid.com:8002, http://myboss.com:8002" | ||
249 | |||
282 | [UserAgentService] | 250 | [UserAgentService] |
283 | ;; User level required to be contacted from other grids | 251 | ;; User level required to be contacted from other grids |
284 | ;LevelOutsideContacts = 0 | 252 | ;LevelOutsideContacts = 0 |
@@ -299,3 +267,57 @@ | |||
299 | ;; If ForeignTripsAllowed is true, make exceptions using AllowExcept. | 267 | ;; If ForeignTripsAllowed is true, make exceptions using AllowExcept. |
300 | ;; Leave blank or commented for no exceptions. | 268 | ;; Leave blank or commented for no exceptions. |
301 | ; AllowExcept_Level_200 = "http://griefer.com:8002, http://enemy.com:8002" | 269 | ; AllowExcept_Level_200 = "http://griefer.com:8002, http://enemy.com:8002" |
270 | |||
271 | [HGInventoryService] | ||
272 | HomeURI = "http://127.0.0.1:9000" | ||
273 | |||
274 | [HGAssetService] | ||
275 | HomeURI = "http://127.0.0.1:9000" | ||
276 | |||
277 | ;; The asset types that this grid can export to / import from other grids. | ||
278 | ;; Comma separated. | ||
279 | ;; Valid values are all the asset types in OpenMetaverse.AssetType, namely: | ||
280 | ;; Unknown, Texture, Sound, CallingCard, Landmark, Clothing, Object, Notecard, LSLText, | ||
281 | ;; LSLBytecode, TextureTGA, Bodypart, SoundWAV, ImageTGA, ImageJPEG, Animation, Gesture, Mesh | ||
282 | ;; | ||
283 | ;; Leave blank or commented if you don't want to apply any restrictions. | ||
284 | ;; A more strict, but still reasonable, policy may be to disallow the exchange | ||
285 | ;; of scripts, like so: | ||
286 | ; DisallowExport ="LSLText" | ||
287 | ; DisallowImport ="LSLBytecode" | ||
288 | |||
289 | |||
290 | [HGInventoryAccessModule] | ||
291 | HomeURI = "http://127.0.0.1:9000" | ||
292 | Gatekeeper = "http://127.0.0.1:9000" | ||
293 | |||
294 | ;; If you want to protect your assets from being copied by foreign visitors | ||
295 | ;; uncomment the next line. You may want to do this on sims that have licensed content. | ||
296 | ;; true = allow exports, false = disallow exports. True by default. | ||
297 | ; OutboundPermission = True | ||
298 | |||
299 | ;; Send visual reminder to local users that their inventories are unavailable while they are traveling | ||
300 | ;; and available when they return. True by default. | ||
301 | ;RestrictInventoryAccessAbroad = True | ||
302 | |||
303 | [HGFriendsModule] | ||
304 | ; User level required to be able to send friendship invitations to foreign users | ||
305 | ;LevelHGFriends = 0; | ||
306 | |||
307 | [Messaging] | ||
308 | ; === HG ONLY === | ||
309 | ;; change this to the address of your simulator | ||
310 | Gatekeeper = "http://127.0.0.1:9000" | ||
311 | |||
312 | |||
313 | [EntityTransfer] | ||
314 | ;; User level from which local users are allowed to HG teleport. Default 0 (all users) | ||
315 | ;LevelHGTeleport = 0 | ||
316 | |||
317 | ;; Are local users restricted from taking their appearance abroad? | ||
318 | ;; Default is no restrictions | ||
319 | ;RestrictAppearanceAbroad = false | ||
320 | |||
321 | ;; If appearance is restricted, which accounts' appearances are allowed to be exported? | ||
322 | ;; Comma-separated list of account names | ||
323 | AccountForAppearance = "Test User, Astronaut Smith" | ||
diff --git a/bin/config-include/StandaloneHypergrid.ini b/bin/config-include/StandaloneHypergrid.ini index 76d588c..195e780 100644 --- a/bin/config-include/StandaloneHypergrid.ini +++ b/bin/config-include/StandaloneHypergrid.ini | |||
@@ -152,7 +152,13 @@ | |||
152 | ;; This greatly restricts the inventory operations while in other grids | 152 | ;; This greatly restricts the inventory operations while in other grids |
153 | [HGInventoryService] | 153 | [HGInventoryService] |
154 | ; For the InventoryServiceInConnector | 154 | ; For the InventoryServiceInConnector |
155 | LocalServiceModule = "OpenSim.Services.HypergridService.dll:HGInventoryService" | 155 | LocalServiceModule = "OpenSim.Services.HypergridService.dll:HGSuitcaseInventoryService" |
156 | ;; alternatives: | ||
157 | ;; HG1.5, more permissive, not recommended, but still supported | ||
158 | ;LocalServiceModule = "OpenSim.Services.HypergridService.dll:HGInventoryService" | ||
159 | ;; HG1.0, totally permissive, not recommended, but OK for grids with 100% trust | ||
160 | ;LocalServiceModule = "OpenSim.Services.InventoryService.dll:XInventoryService" | ||
161 | |||
156 | UserAccountsService = "OpenSim.Services.UserAccountService.dll:UserAccountService" | 162 | UserAccountsService = "OpenSim.Services.UserAccountService.dll:UserAccountService" |
157 | AvatarService = "OpenSim.Services.AvatarService.dll:AvatarService" | 163 | AvatarService = "OpenSim.Services.AvatarService.dll:AvatarService" |
158 | 164 | ||