Compare commits

..

1480 Commits

Author SHA1 Message Date
Melanie
d1870d0c47 Merge branch 'careminster-presence-refactor' of ssh://melanie@3dhosting.de/var/git/careminster into careminster-presence-refactor 2011-05-24 04:03:36 +01:00
Melanie
3612ce4888 Merge branch 'master' into careminster-presence-refactor 2011-05-24 04:03:08 +01:00
Melanie
61d4291da5 Create a method to force the script engine to save state from outside 2011-05-24 03:17:12 +01:00
Melanie
4b088dca69 Merge branch 'master' into careminster-presence-refactor 2011-05-24 03:11:51 +01:00
Melanie
62e0c96036 Allow disabling the legacy backup mechanism to avoid the object clone if
backup is not used.
2011-05-24 03:37:25 +02:00
Melanie
d5841e07c2 Create a method to force the script engine to save state from outside 2011-05-24 02:40:59 +02:00
Melanie
178d541dca Add an event for an orderly region shutdown that fires once per region before
the SceneGraph is torn down.
2011-05-24 01:19:48 +01:00
Melanie
8b42f824d3 Add an event for an orderly region shutdown that fires once per region before
the SceneGraph is torn down.
2011-05-24 00:53:28 +02:00
Melanie
b9fb7cdf9f Merge branch 'master' into careminster-presence-refactor 2011-05-23 03:39:20 +01:00
Melanie
24c00acedc Fix Mantis #4429: Allow llGiveInventory to work across sim borders. 2011-05-23 02:52:28 +01:00
Melanie
9c1f799582 Implement llGodLikeRezObject and llGetUsedMemory 2011-05-22 21:01:31 +02:00
BlueWall
dc95e38e42 Add stubs for unimplemented lsl functions 2011-05-22 14:59:18 -04:00
Melanie
89705b19c7 Merge branch 'careminster-presence-refactor' of ssh://3dhosting.de/var/git/careminster into careminster-presence-refactor 2011-05-22 20:00:59 +02:00
Melanie
be1996f121 Merge branch 'master' into careminster-presence-refactor 2011-05-22 20:23:25 +01:00
Justin Clark-Casey (justincc)
bb9b317f15 Get rid of OpenSim.Tests.Common.Setup subpackage in favour of just OpenSim.Tests.Common instead 2011-05-21 01:05:20 +01:00
Justin Clark-Casey (justincc)
4073f10133 rename test helpers enclosing package from Setup to Helpers 2011-05-21 00:51:34 +01:00
Justin Clark-Casey (justincc)
94553d4753 rename UserInventoryTestsUtils -> UserInventoryHelpers for consistency 2011-05-21 00:48:01 +01:00
Justin Clark-Casey (justincc)
156cc1418b test helper rename for consistency 2011-05-21 00:44:58 +01:00
Justin Clark-Casey (justincc)
d7e5b76d73 refactor: rename AddSceneObjectItem to AddSceneObject 2011-05-21 00:39:42 +01:00
Justin Clark-Casey (justincc)
084059319c refactor: move scene object item creation code into TaskInventoryHelpers 2011-05-21 00:37:20 +01:00
Justin Clark-Casey (justincc)
9103fe84d5 move test task inventory notecard item creation into a new TastInventoryHelpers class 2011-05-21 00:25:58 +01:00
Justin Clark-Casey (justincc)
0050bb438c refactor: use SceneSetupHelpers.CreateSceneObject() 2011-05-21 00:15:22 +01:00
Justin Clark-Casey (justincc)
534ee52a12 rename UserProfileTestUtils to UserAccountHelpers to be consistent with other test helper names 2011-05-21 00:11:52 +01:00
Justin Clark-Casey (justincc)
3fed61a5d5 refactor: in TaskInventoryTests, use UserProfileTestUtils.CreateUserWithInvetory() 2011-05-21 00:07:24 +01:00
Justin Clark-Casey (justincc)
bc43cef581 minor: remove mono compiler warning 2011-05-21 00:05:00 +01:00
Justin Clark-Casey (justincc)
90567a9eaa refactor Scene.RezObject() to use AddNewSceneObject() rather than copy/pasting code with small differences 2011-05-21 00:02:53 +01:00
Justin Clark-Casey (justincc)
f2095ea279 refactor TestRezObjectFromInventoryItem() 2011-05-20 23:45:39 +01:00
Justin Clark-Casey (justincc)
4b0fc4faef implement Scene.GetSceneObjectGroup(string name) to match the equivalent GetSOP method 2011-05-20 23:41:14 +01:00
Justin Clark-Casey (justincc)
91a9f30b16 implement Scene.GetSceneObjectGroup(UUID fullID) using existing index 2011-05-20 23:34:34 +01:00
Justin Clark-Casey (justincc)
7ed419217f add test for rezzing an object from a prim item 2011-05-20 23:22:27 +01:00
Melanie
e62d1cc480 Merge branch 'master' into careminster-presence-refactor 2011-05-20 22:38:05 +01:00
Melanie
fdbcd2fbf9 Add a missing virtual keyword 2011-05-20 23:27:16 +02:00
Melanie
8a46484a59 Make public interface methods in MySQLSimulation data virtual so the CM
data layer can inherit from it
2011-05-20 23:17:46 +02:00
Justin Clark-Casey (justincc)
9fc29e1595 Implement llGetLinKNumberOfSides().
Based on code in http://opensimulator.org/mantis/view.php?id=5489  Thanks onesong.
2011-05-20 20:19:32 +01:00
Justin Clark-Casey (justincc)
6e7b588235 Merge branch 'master' of ssh://opensimulator.org/var/git/opensim 2011-05-20 20:06:51 +01:00
Kim King
a2c19847b4 ScriptEngine/Shared: Fix bug 5473 (v2). 2011-05-20 20:00:55 +01:00
BlueWall
584bce36ac Merge branch 'master' of ssh://opensimulator.org/var/git/opensim 2011-05-19 01:35:11 -04:00
BlueWall
926a100652 Add stub for llGetLinkNumberOfSides(integer link) 2011-05-19 01:34:11 -04:00
Justin Clark-Casey (justincc)
bdd7849094 Allow item links to be deleted even when other deletes and purges are disabled.
If these links are not deleted, then they will build up in the player's inventory until they can no longer log in.
Accidental deletion of links due to bugs or other causes is potentially inconvenient but on a par with items being
accidentally moved.  When a link is deleted, the target of the link is never touched.
This is a general solution that accounts for the use of links anywhere in the user's inventory.
2011-05-19 00:51:14 +01:00
Tom
74dd619575 If a response cannot be obtained (the script has no handler) return a more friendly 500 error instead of crashing out with a null reference and letting the connection hang 2011-05-17 19:12:37 -07:00
Tom
1f17960e67 Also fix the locking of url.requests and tidy the locks in general 2011-05-17 18:56:55 -07:00
Tom
3d49f5bf57 Merge branch 'careminster-presence-refactor' of ssh://3dhosting.de/var/git/careminster into careminster-presence-refactor 2011-05-17 18:44:54 -07:00
Tom
e847d1d83f Lock m_requestMap properly to prevent some nasty access errors and the resulting downward spiral 2011-05-17 18:44:07 -07:00
Justin Clark-Casey (justincc)
6dcc87b1ad Accidentally committed too early
Revert "Allow item links to be deleted even when other deletes and purges are disabled."

This reverts commit 491279f99a.
2011-05-18 00:23:35 +01:00
Justin Clark-Casey (justincc)
c562b9ef19 correct small mistake in "delete object name <name>" usage summary 2011-05-18 00:22:09 +01:00
Justin Clark-Casey (justincc)
491279f99a Allow item links to be deleted even when other deletes and purges are disabled.
If these links are not deleted, then they will build up in the player's inventory until they can no longer log in.
Accidental deletion of links due to bugs or other causes is potentially inconvenient but on a par with items being
accidentally moved.  When a link is deleted, the target of the link is never touched.
This is a general solution that accounts for the use of links anywhere in the user's inventory.
2011-05-17 22:31:16 +01:00
Melanie
f9203ca7e0 Add a message packing library to binary-pack AgentCircuitData for faster
teleporting
2011-05-17 22:38:45 +02:00
Justin Clark-Casey (justincc)
784f70f704 don't throw a null reference if an inventory link target doesn't exist when we're inspecting in order to send the required inventory folders 2011-05-17 02:25:05 +01:00
Justin Clark-Casey (justincc)
467d7060ca Merge branch 'master' of ssh://opensimulator.org/var/git/opensim 2011-05-17 01:58:51 +01:00
Justin Clark-Casey (justincc)
4232b1a89b convert tabs to spaces 2011-05-17 01:57:18 +01:00
Kim King
901448a8eb Fixup documentation for AutoBackupModule. 2011-05-17 01:55:54 +01:00
Melanie
6bac16fd88 Fix up handling of the estate dialog to prevent duplication of ban list names.
Allow more than 61 names in ban list without crashing the viewer.
2011-05-15 14:55:36 +02:00
Diva Canto
a2f034c554 Changed yet more Warns to Debugs. 2011-05-14 13:36:55 -07:00
Diva Canto
be6feff331 Also changed a couple of messages in WebUtil from Wanr/Info to Debug. 2011-05-14 13:09:59 -07:00
Melanie
37a7b87862 Merge branch 'master' into careminster-presence-refactor 2011-05-14 21:09:52 +01:00
Diva Canto
082a9ecd31 Merge branch 'master' of ssh://opensimulator.org/var/git/opensim 2011-05-14 12:57:34 -07:00
Diva Canto
a3aa839d75 Stop spamming Nebadon's console when assets aren't found in the asset server. 2011-05-14 12:56:50 -07:00
Melanie
344815ab79 Globally throttle script channel 0 comms to 5/s with 10s burst to prevent lag
griefing attacks
2011-05-14 17:24:59 +02:00
Melanie
d773d89145 Plug a hole that allows selling a copy of no copy objects when using hacked god mode to fool the viewer into thinking it can set that sale type 2011-05-14 17:24:22 +02:00
Melanie
c4fad3d887 Fix up a linking issue 2011-05-14 09:13:31 +02:00
Justin Clark-Casey (justincc)
e3b8d42bbc refactor: improve PrimLimitsModule to call ILandObject.GetSimulatorMaxPrimCount() rather than use copy/pasted code 2011-05-14 02:51:29 +01:00
Justin Clark-Casey (justincc)
340e3ccf16 refactor: remove thisObject argument from ILandObject.Get*MaxPrimCount() instance methods since it didn't make sense to use anything other than the instance themselves. 2011-05-14 02:42:47 +01:00
Justin Clark-Casey (justincc)
bef1ffa7db simplify code in llGetParcelMaxPrims() to use existing code in LandObject rather than duping the algo 2011-05-14 02:34:46 +01:00
Justin Clark-Casey (justincc)
1d86079141 Correct llGetParcelMaxPrims() to use the same calculation as used elsewhere instead of the old 0.22 prims/meter squared fudge factor.
Thanks to tglion for this.
2011-05-14 01:26:04 +01:00
Justin Clark-Casey (justincc)
26ce1d27d0 Minor doc change to see if this provokes a good panda build 2011-05-14 01:07:06 +01:00
Oren Hurvitz
64d868fb64 When loading an OAR that doesn't have parcels, create a default parcel 2011-05-14 00:41:32 +01:00
SignpostMarv Martin
cb6cd3714e The get_grid_info REST call now encodes XML Entities 2011-05-14 00:31:54 +01:00
Makopoppo
7a54638b57 Swapped the two restart command descriptions each other 2011-05-14 00:25:31 +01:00
Justin Clark-Casey (justincc)
5573fcfa93 Fix adding/removing/replacing outfits in viewer 2
To get this to work, I had to disable the dupe link check I put in a couple of commits ago.
When the viewer adds wearables to an existing outfit, it first requests deletes of all the existing links before creating a new set.
Since these messages are async, the creates were being received before the deletes had a chance to complete, resulting in missing current outfit links.
However, the dupe check shouldn't be as important now that broken links have been fixed - it was the broken links that were causing the client to create dupes.
Tested on kokua 0.1.0 WIP and SL 2.6.3.  I now have no problems managing outfits on my standalone.
2011-05-14 00:10:27 +01:00
Melanie
75d4956ee5 Merge branch 'master' into careminster-presence-refactor 2011-05-13 12:05:46 +01:00
Melanie
59d8588ae1 Merge branch 'master' of melanie@opensimulator.org:/var/git/opensim 2011-05-13 12:03:16 +01:00
Melanie
eceedba23b Fix the cert validation handler so that it will not block other parts of
the server doing ssl successfully.
2011-05-13 12:02:49 +01:00
Diva Canto
e39dec6f37 Hopefully this fixes offline messages. The problem was: the server is not setting the ContentLength of the response. That comes up to OpenSim as ContentLength=-1, which made the existing test fail. 2011-05-12 20:48:24 -07:00
Diva Canto
1cc70df3b4 One more thing printed out. #OfflineIM 2011-05-12 20:20:08 -07:00
Diva Canto
84f2a779b2 Merge branch 'master' of ssh://opensimulator.org/var/git/opensim 2011-05-12 19:57:15 -07:00
Diva Canto
301321c853 Instrument the heck out of offline messages. THIS IS VERY VERBOSE. 2011-05-12 19:56:59 -07:00
Justin Clark-Casey (justincc)
5f9edd195c Fix broken inventory links on viewer 2.
It appears that if the viewer requests a folder containing links, we must also send the folders that contain the link targets first.
This was tested with Kokua 0.1.0 WIP though I predict it will also work with other viewer 2s
2011-05-13 03:24:19 +01:00
Diva Canto
691283c44e One more debug message for offline IMs. 2011-05-12 19:10:44 -07:00
Diva Canto
9e310a0c0f Sequencing the using and try clauses as they were before, but this shows that that obsolete function is not catching 404's as it should... 2011-05-12 18:53:22 -07:00
Diva Canto
42bfab84b8 Bummer, can't print the data I wanted to see. Printing just the context. 2011-05-12 18:47:14 -07:00
Diva Canto
f54a36bd59 Tracking a problem with offline IMs coming in as null list. 2011-05-12 17:34:26 -07:00
Diva Canto
e9e4c009b4 This makes compression of fatpacks actually work. Previously they always failed. See comment in WebUtil. 2011-05-11 20:44:03 -07:00
Justin Clark-Casey (justincc)
9988bff9e3 Add a smidgen of method doc about the fact that item links reuse the asset id item slot 2011-05-12 03:18:53 +01:00
Justin Clark-Casey (justincc)
ac12ace6f1 Prevent viewer 2 from creating a duplicate outfit inventory links.
I believe this is safe since there is a 1-1 correspondence between link item and worn item (i.e. you can't be wearing the same item at two spots simultaneously in one outfit).
This should stop lots of duplicate links being created when viewer 2 is used.
However, this doesn't prevent broken inventory links, which I believe is timing related since the effect is not consistent (e.g. keep relogging and the viewer should end up seeing them correctly) .  I think we actually see this problem on viewer 1 as well.
It might be easier just to implement the Fetch*2 inventory caps which are documented at http://wiki.secondlife.com/wiki/Inventory_API.  WebFetch* has been deprecated by Linden Lab since viewer 2.5.1 and according to the sl wiki, "has numerous bugs".
2011-05-12 02:46:13 +01:00
Diva Canto
7fa2489a6e Revert "Functional improvement: close the stream. Non-functional: add debug messages to find out why updates are getting an error. WARNING: MASSIVE CONSOLE SPAM ON TPs."
This reverts commit 5548f83750.
2011-05-11 13:15:27 -07:00
Diva Canto
af2e12d2b4 One more debug message. Don't use this unless your name is nebadon. 2011-05-11 10:43:50 -07:00
Diva Canto
5548f83750 Functional improvement: close the stream. Non-functional: add debug messages to find out why updates are getting an error. WARNING: MASSIVE CONSOLE SPAM ON TPs. 2011-05-11 10:21:42 -07:00
Diva Canto
47735468d2 Somewhat reverting the last commit. The viewer ignores 255's on tiles that were previously on, so we need to send 254 (offline) explicitly. Also removing the +/-4 for HGMap, because it makes the map flicker. 2011-05-10 09:02:25 -07:00
Diva Canto
e1a4a8d857 Changed the Access flag on HGMap to 255 (does not exist) and clarified the other value 254 too. Meanings taken from libomv. 2011-05-09 18:28:16 -07:00
Diva Canto
7e2b35bbb3 Fixes gray tiles around +/-4 when user clicks on an empty tile. Affects regions above 4096 primarily. 2011-05-09 11:35:41 -07:00
Melanie
1bd949614a Merge branch 'master' into careminster-presence-refactor 2011-05-09 18:37:35 +01:00
Diva Canto
8a5f6dc7a5 Fixes gray tiles on map search for viewers 1. 2011-05-09 10:25:42 -07:00
Diva Canto
c0a69bfaab The map is seriously broken. This doesn't fix it, but at least provides one more piece of data that seems to be required -- agent flags, which seem to be different in Viewer 2. WARNING: changes IClientAPI. 2011-05-08 22:50:04 -07:00
Melanie
fbfed0ae9b Merge branch 'master' into careminster-presence-refactor 2011-05-09 03:21:15 +01:00
Melanie
fd66903f74 Convert the prim count module into a permissionsmodule 2011-05-09 03:16:01 +01:00
E. Allen Soard
527b4e7c7e Incremental - Just did some cleanup of comments and class name change to clean up from using BareBonesNonShared as a template. 2011-05-09 03:14:54 +01:00
E. Allen Soard
279ed08de1 Incremental patch to add config options to enable/disable the prim limits module to OpenSim.ini. EnforcePrimLimits is set to false by default to emulate the current behavior. 2011-05-09 03:14:48 +01:00
E. Allen Soard
65d595597d Adds an optional module to enforce prim limits on a given parcel Takes into account acculmitive prim allowance when multiple parcels are owned by the same avatar on the same region. Does not handle prims that are moved by a script or account for temporary objects at the time of creation. other wise handles all tested cases including: Creating a new object from the build menu Moving an object from another parcel duplicating an object via shift move rezing an object from a script 2011-05-09 03:14:41 +01:00
Melanie
9daad86717 Convert the prim count module into a permissionsmodule 2011-05-09 02:47:40 +02:00
E. Allen Soard
f644c0346b Incremental - Just did some cleanup of comments and class name change to clean up from using BareBonesNonShared as a template. 2011-05-09 02:35:57 +02:00
E. Allen Soard
939026d874 Incremental patch to add config options to enable/disable the prim limits module to OpenSim.ini. EnforcePrimLimits is set to false by default to emulate the current behavior. 2011-05-09 02:35:32 +02:00
E. Allen Soard
d3c3feb6b1 Adds an optional module to enforce prim limits on a given parcel Takes into account acculmitive prim allowance when multiple parcels are owned by the same avatar on the same region. Does not handle prims that are moved by a script or account for temporary objects at the time of creation. other wise handles all tested cases including: Creating a new object from the build menu Moving an object from another parcel duplicating an object via shift move rezing an object from a script 2011-05-09 02:35:04 +02:00
Melanie
2b88d8f93f Add commands to delete objects by name, UUID, creator or owner 2011-05-09 01:28:23 +01:00
Diva Canto
00f10c900a Merge branch 'master' of ssh://opensimulator.org/var/git/opensim 2011-05-08 16:51:41 -07:00
Diva Canto
3a5e841b0b Fix content-type to be application/x-www-form-urlencoded 2011-05-08 16:51:04 -07:00
Diva Canto
a650c74d23 Comment verbose debug message in GetTexture 2011-05-08 16:50:36 -07:00
Melanie
c164be1ee5 Fix bans so the region owner and estate managers can't be banned by renters 2011-05-09 01:12:21 +02:00
Melanie
d511c1e355 Merge branch 'master' into careminster-presence-refactor 2011-05-09 01:28:53 +01:00
Melanie
73a9ebc21e Merge branch 'careminster-presence-refactor' of ssh://3dhosting.de/var/git/careminster into careminster-presence-refactor 2011-05-09 01:00:35 +02:00
Melanie
66a5906548 Merge branch 'master' into careminster-presence-refactor 2011-05-09 01:04:55 +01:00
Melanie
dbf623a3d2 Add commands to delete objects by name, UUID, creator or owner 2011-05-09 00:59:32 +02:00
Melanie
7cc5286f2d Merge branch 'master' into careminster-presence-refactor 2011-05-08 23:53:07 +01:00
Melanie
c8b9558039 Also compress the actual fatpacks 2011-05-08 23:52:31 +01:00
Melanie
ade09d0fa1 Also compress the actual fatpacks 2011-05-08 23:23:33 +02:00
Melanie
784e8afaa8 Merge branch 'master' into careminster-presence-refactor 2011-05-08 22:06:14 +01:00
Melanie
e345f03895 Remove a spammy debug I left in. Disable TP cancel button at the point
of no return.
2011-05-08 22:05:33 +01:00
Melanie
1fbf4c8300 Remove a spammy debug I left in. Disable TP cancel button at the point
of no return.
2011-05-08 21:36:51 +02:00
Melanie
b451cc1ebb Merge branch 'master' into careminster-presence-refactor 2011-05-08 20:23:06 +01:00
Melanie
1be67914fa Merge branch 'master' of melanie@opensimulator.org:/var/git/opensim 2011-05-08 20:20:40 +01:00
Melanie
9688db2f68 Enable compressed (gzip) fatpack transfers. 2011-05-08 20:20:00 +01:00
Melanie
763666e2d6 Enable compressed (gzip) fatpack transfers. 2011-05-08 19:50:35 +02:00
Diva Canto
25809caaeb Mantis #5472 2011-05-08 09:28:15 -07:00
BlueWall
d40e4562f2 Add missing configs for ssl in Robust.HG.ini 2011-05-07 18:54:21 -04:00
Diva Canto
72fb0d5b93 Mantis #5470 -- add forgotten MSSQL's GridUserStore. Thank you MrMonkE 2011-05-07 14:56:59 -07:00
Justin Clark-Casey (justincc)
d4fcba08af Add module with "appearance show" command.
At the moment, this command just asks the AvatarFactory to perform the existing baked texture check for each avatar in the simulator and returns "OK" or "corrupt".
This is for debugging purposes
2011-05-07 01:06:55 +01:00
Diva Canto
737add1683 Removed SimpleRegionInfo, which was obsolete and not used anywhere. 2011-05-06 17:02:46 -07:00
dahlia
eaa33cf478 adjust avatar terse update packet filter distance error threshold based on avatar speed 2011-05-06 16:56:54 -07:00
Justin Clark-Casey (justincc)
b140aef87a refactor: simplify ConfigSettings 2011-05-06 22:51:36 +01:00
Justin Clark-Casey (justincc)
04ecd748d9 remove further mono compiler warnings 2011-05-06 22:47:41 +01:00
Justin Clark-Casey (justincc)
3d095e84d6 minor: remove mono compiler warnings 2011-05-06 22:45:03 +01:00
Justin Clark-Casey (justincc)
f5ec332474 remove obsolete [StandAlone] config section parsing, none of which was actually used since being superseded by the connector architecture in 0.7 2011-05-06 22:41:07 +01:00
Justin Clark-Casey (justincc)
913e6b70c6 minor: slightly shorten "show digest" printing code 2011-05-06 22:13:56 +01:00
Justin Clark-Casey (justincc)
621279e498 on asset "show digest" command, print out the asset type name (e.g. texture) as well as its number 2011-05-06 22:04:26 +01:00
Justin Clark-Casey (justincc)
9ff94a3a44 Say which filename an asset has been dumped to on a successful dump 2011-05-06 21:58:41 +01:00
Justin Clark-Casey (justincc)
2ef8e03773 Change command help text for "show capabilities" to "show caps", as this is the actual command that has to be typed on the console.
Thanks to makopoppo for the patch - http://opensimulator.org/mantis/view.php?id=5467
2011-05-06 21:21:02 +01:00
Justin Clark-Casey (justincc)
7c3e8a106b Merge branch 'master' of https://github.com/allquixotic/opensim-autobackup 2011-05-06 20:51:55 +01:00
Diva Canto
74e981e796 One more bug fix concerning library items that weren't being copied to user's inventory. Also commented verbose debug message. 2011-05-06 09:56:27 -07:00
Diva Canto
50c0069f7d Merge branch 'master' of ssh://opensimulator.org/var/git/opensim 2011-05-06 09:09:13 -07:00
Diva Canto
eafc01cf8f Bug fix: iars under Library weren't being loaded. 2011-05-06 09:08:24 -07:00
BlueWall
68bb0f81e2 Merge branch 'master' of ssh://opensimulator.org/var/git/opensim 2011-05-05 20:07:19 -04:00
Justin Clark-Casey (justincc)
fd44540c02 add descriptive explanations for region restart functionality 2011-05-06 01:06:28 +01:00
BlueWall
e4e95706d5 Add support for llRequestSecureURL() if ssl is enabled 2011-05-05 19:57:10 -04:00
BlueWall
8ca7938753 Adding ssl support
Adding ssl support for "Out of Band" applications such as the remote
	admin module or Robust services
2011-05-05 19:56:54 -04:00
Justin Clark-Casey (justincc)
8755a48cde fix command display for debugging 'emergency-monitoring' 2011-05-06 00:34:04 +01:00
Justin Clark-Casey (justincc)
46baadbb65 remove the NDesk.Options using since didn't end up needing it 2011-05-06 00:22:19 +01:00
Justin Clark-Casey (justincc)
bc49a0bc5d Add "dump asset" command to the asset service for debugging purposes.
This command dumps the asset with the given id to a file with the same name.
2011-05-06 00:09:08 +01:00
Melanie
5591abf9d1 Allow attachments to track the user's camera 2011-05-05 15:10:59 +02:00
Melanie
e7e88c4db1 Merge branch 'master' into careminster-presence-refactor 2011-05-05 13:28:15 +01:00
Melanie
1bdac6ed19 Fix up nant linux build break 2011-05-05 13:27:44 +01:00
Melanie
f5bb6edd85 Squish a warning 2011-05-05 13:01:46 +01:00
Melanie
4f588ad7ba Fix up some paths in prebuild 2011-05-05 12:52:31 +01:00
Melanie
3149e6e851 Fix up some paths in prebuild 2011-05-05 12:13:56 +01:00
Melanie
4beb0c9b9b Merge branch 'master' into careminster-presence-refactor 2011-05-05 09:49:10 +01:00
Diva Canto
e8944d6c31 Test m_Enabled on RemoveRegion. 2011-05-04 20:40:25 -07:00
Diva Canto
6d34932775 Merge branch 'master' into caps 2011-05-04 20:30:33 -07:00
Melanie
6008ffe943 Merge branch 'master' into careminster-presence-refactor 2011-05-05 00:34:48 +01:00
Diva Canto
6c503e75ac Put the previous state back in the attachments in case the agent transfer fails. 2011-05-04 12:04:35 -07:00
Diva Canto
df7dacd004 Fixes mantis #5461. 2011-05-04 11:34:18 -07:00
Diva Canto
a0f3b23065 Merge branch 'master' into caps 2011-05-04 07:31:32 -07:00
dahlia
4c59d57596 use getters instead of member variables in velocity network filter code and add some more descriptive comments. 2011-05-04 03:29:06 -07:00
dahlia
13ab00e45a adjust terse avatar update filtering to send updates when distance traveled does not match expected distance, rather than at a fixed time period. this should smooth avatar motion somewhat when moving in a straight line and velocity is constant. 2011-05-03 19:47:50 -07:00
Melanie
3f7050173d Attempt to make teleports more reliable. This may break redirection on login 2011-05-03 22:33:53 +02:00
Melanie
61263e2ce3 Some private changes to the prioritizer: 30m steps instead of 10 and disable
the broken frontback math. Much better user experience.
2011-05-03 16:58:39 +02:00
Melanie
aa73f99de6 Revert the CM prioritizer to the core version 2011-05-03 16:44:45 +01:00
Melanie
af55eda16b Merge branch 'master' into careminster-presence-refactor 2011-05-03 14:26:18 +01:00
Diva Canto
98b84802e4 Changed the defaults, so that it behaves exactly is it has been behaving (no WebFetch cap by default). 2011-05-02 20:19:36 -07:00
Diva Canto
ac9697edbe Fixed: EventQueueGet and other caps were being wrongly deregistered. Also CapabilitiesModule was being instantiated twice (damn Mono.Addins). 2011-05-02 19:45:47 -07:00
Diva Canto
6b52c1d6cd Fix the GetTexture path to /CAPS/GetTexture for now until we have real capabilities. 2011-05-02 16:16:10 -07:00
Diva Canto
883f21dd02 WebFetchInventoryDescendents working. Tested with robust. 2011-05-02 14:33:34 -07:00
Diva Canto
2d403d5b18 Merge branch 'master' into caps 2011-05-02 11:56:51 -07:00
Diva Canto
aba9ffdbd0 Refactored the GetMesh module into a handler and a module, to be the same as GetTexture. 2011-05-02 11:56:40 -07:00
Diva Canto
f7d3720126 Increased timeout for fat UpdateAgent to 200secs. Nebadon's 3800-prim alien avatar takes 6secs to transfer between sims on the same machine... 2011-05-02 09:20:08 -07:00
Diva Canto
51d0b8b4e9 Oops, forgot this one. 2011-05-02 09:06:21 -07:00
Diva Canto
8cc547c277 Turns out that it's a bad idea to let Agent position updates linger for a long time on certain versions of mono. It's better to abort them if they take too long. So timeout is now an argument. Currently: 20secs for CreateAgent, 100secs for UpdateAgent (fat), 10 secs for UpdateAgent (Position); all of these divided by 4, for ReadWrite, as Mic had before. 2011-05-02 09:04:34 -07:00
Diva Canto
10180760b7 Works! 2011-05-02 08:48:55 -07:00
Sean McNamara
0995fedcac AutoBackupModule: Implement per-region settings in Regions.ini. 2011-05-02 04:32:31 -04:00
Sean McNamara
fffd42f5cb Merge git://opensimulator.org/git/opensim 2011-05-02 02:23:18 -04:00
Sean McNamara
2aab033aaa First pass at fixing justincc's feedback v2 ( http://opensimulator.org/mantis/view.php?id=5440 )
Fixing everything here (I think) except the per-region config. That's next.
2011-05-02 02:20:50 -04:00
Diva Canto
2d21052fa3 Start to drill down on GetTexture. Read the config and do different things. 2011-05-01 19:09:08 -07:00
Diva Canto
f79400e94c Broke down Caps.cs into a generic Caps object that simply registers/unregisters capabilities and a specific bunch of capability implementations in Linden space called BunchOfCaps.
Renamed a few methods that were misnomers.
Compiles but doesn't work.
2011-05-01 18:22:53 -07:00
Diva Canto
275046cf02 Change GetTextureModule.cs to conform to the new IRegion module interface. NOTHING OF THIS WORKS. Compiles. 2011-05-01 12:03:00 -07:00
Diva Canto
126d2adeba Move CapabilitiesModule back to CoreModules. This one belongs there. 2011-05-01 12:02:07 -07:00
Diva Canto
f10666c7ba How this might look like from a configuration perspective. Changes OpenSimDefaults.ini. 2011-05-01 10:07:54 -07:00
Diva Canto
8cc9d22b89 Merge branch 'master' into caps 2011-05-01 09:31:26 -07:00
Diva Canto
bbe41c75e1 Fixed confusing OSDMap that comes as the response of QueryAccess in the case it fails. 2011-05-01 09:30:23 -07:00
Diva Canto
f0bf64b6de Merge branch 'master' into caps 2011-05-01 09:11:16 -07:00
Diva Canto
6b2b036387 Added OpenSim.Capabilities.Handlers. For the moment it has only the GetTexture handler. The region module in Linden space uses it. WARNING: nothing of this works yet, it just compiles. 2011-05-01 09:08:18 -07:00
Diva Canto
d4323dd753 Increased Timeout to 30 secs. 2011-04-30 18:08:48 -07:00
Diva Canto
91a604d4b6 Removed XXX Debug. Increased ReadWriteTimeout on ServiceOSDRequest, because it was _way_ too low and is probably making writes abort in the middle. 2011-04-30 17:40:21 -07:00
Diva Canto
56df746133 XXX DEBUGGING! 2011-04-30 16:53:43 -07:00
Diva Canto
00e94b0ba8 Check for RegionID instead of RegionHandle. Other minor tweaks 2011-04-30 16:53:11 -07:00
Diva Canto
e3c27d8527 Nope, that didn't feel right. Moving all those modules to Linden space. 2011-04-30 13:24:25 -07:00
Diva Canto
c062138dad Moved several cap-based-service-providing modules from where they were into a newly created CoreModules/Caps. Not all. 2011-04-30 12:23:40 -07:00
Diva Canto
3e79842312 Renamed OpenSim.Framework.Capabilities.dll to OpenSim.Capabilities.dll 2011-04-30 11:03:22 -07:00
Diva Canto
d8ee0cbe1c First stab at cleaning up Caps. Compiles. Untested. 2011-04-30 09:24:15 -07:00
Melanie
6becb7b80f Merge branch 'master' into careminster-presence-refactor 2011-04-30 16:20:40 +01:00
Melanie
99b35d3ca6 When coming in from a legacy region without fatpacks, start scripts the
usual way
2011-04-30 16:20:20 +01:00
Melanie
8a398ef02d When coming in from a legacy region without fatpacks, start scripts the
usual way
2011-04-30 16:01:54 +02:00
Melanie
27891fddcf Merge branch 'careminster-presence-refactor' of ssh://3dhosting.de/var/git/careminster into careminster-presence-refactor 2011-04-30 14:23:20 +02:00
Melanie
d1cf1fe3d7 Merge branch 'master' into careminster-presence-refactor 2011-04-30 14:37:37 +01:00
Melanie
98fe37051a Set the attachment data on scripted rez to allow toasters to work. 2011-04-30 14:22:46 +02:00
Diva Canto
4d5d6222f7 Delaying starting the scripts on TPs and crossings until the agent is root. 2011-04-29 17:09:48 -07:00
Diva Canto
412503b216 Merge branch 'master' of ssh://opensimulator.org/var/git/opensim 2011-04-29 15:52:40 -07:00
Diva Canto
0d49611f6d Remove the scripts of the attachments in the departing region and recreate them if fail. 2011-04-29 15:52:06 -07:00
Dan Lake
8f14c3f04f Merge branch 'master' of ssh://opensimulator.org/var/git/opensim 2011-04-29 15:49:49 -07:00
Dan Lake
d565041e16 Fix crash when [Mesh] section is missing from configuration files 2011-04-29 15:49:10 -07:00
Diva Canto
73caa4e94a Minor correction to yesterday's changes. Make normal prim crossing (no attach) work well again. 2011-04-29 08:42:51 -07:00
Diva Canto
e462b926ac Minor improvement in version checking (Simulation service) 2011-04-29 08:01:44 -07:00
Diva Canto
97790075fe Merge branch 'master' of ssh://opensimulator.org/var/git/opensim 2011-04-28 20:47:34 -07:00
Diva Canto
9892e115cc Fatpack message on agent transfers: 1 message only (UpdateAgent) containing the agent and all attachments. Preserves backwards compatibility -- older sims get passed attachments one by one. Meaning that I finally introduced versioning in the simulation service. 2011-04-28 20:19:54 -07:00
Justin Clark-Casey (justincc)
5e578c9755 Merge branch 'master' of ssh://opensimulator.org/var/git/opensim 2011-04-28 23:43:42 +01:00
Justin Clark-Casey (justincc)
cd7517ccb9 Stop CHANGED_INVENTORY firing twice if a notecard is edited in prim.
Addresses http://opensimulator.org/mantis/view.php?id=5444
Fix is to stop the asset transaction calling UpdateInventoryItem() since the caller is doing it anyway, which is more correct.
This did not effect scripts.
2011-04-28 22:59:12 +01:00
Diva Canto
35f190cc92 One less [Serializable] -- ClientInfo. 2011-04-28 09:06:57 -07:00
Diva Canto
549dc5aeb9 Eliminated sAgentCircuitData, a data structure that has been obsolete for quite some time. 2011-04-28 08:58:04 -07:00
Diva Canto
5c227da497 Added MrMonkE to the contributors. Fixed contributors. 2011-04-28 07:36:34 -07:00
Diva Canto
7ecf689584 Thank you MrMonkE for a patch that seems to bring the MSSQL data layer up to speed with 0.7.x. 2011-04-28 07:28:29 -07:00
Justin Clark-Casey (justincc)
50aa93137d Fix a bug where physical objects rezzed with an initial velocity by script do not receive this velocity.
This is a minimal fix for the 0.7.1 release, pending a non copy/paste solution.
This hopefully addresses http://opensimulator.org/mantis/view.php?id=5457
The bug was introduced in commit 3ba5eeb
2011-04-28 00:59:21 +01:00
Justin Clark-Casey (justincc)
5e3893ca5c add the executable bit to all bundled DLLs so that these are preserved when using git or untarring releases under cygwin on windows
Mono doesn't care if the
2011-04-27 23:57:26 +01:00
Diva Canto
e0576b56d3 Thank you Snoopy for a patch that adds some filtering to client versions allowed at login and HG-login times. NOTE: additional (optional) configuration variables in [LoginService] and [GatekeeperService]. See .examples. 2011-04-27 07:02:37 -07:00
Justin Clark-Casey (justincc)
12010849b8 Bump minimum required mono to 2.4.3 from 2.4.2. OpenSim fails at runtime below 2.4.3 due to unimplemented ServicePointManager.get_ServerCertificateValidationCallback() 2011-04-27 02:25:49 +01:00
Justin Clark-Casey (justincc)
1b43c05c3d Change default ini.example port used by Freeswitch in grid settings to 8004.
This is to facilitate running Freeswitch in a separate ROBUST shell, as on grid setups there can be quite a lot of traffic flowing between FreeSWITCH and ROBUST.  However, running in a spearate shell is not mandatory.
2011-04-27 02:05:16 +01:00
Justin Clark-Casey (justincc)
d722f22102 adjust freeswitch grid connector to port 8003 to agree with the default 8003 used in OpenSim.ini.example
Adjusting to 8003 seems sensible since this service doesn't need to be exposed to viewers.
2011-04-27 01:53:57 +01:00
dahlia
16f6f55f2d network traffic reduction - decrease update frequency for moving avatars when velocity is unchanged 2011-04-26 16:22:44 -07:00
Melanie
57efed988c Merge branch 'careminster-presence-refactor' of ssh://melanie@3dhosting.de/var/git/careminster into careminster-presence-refactor 2011-04-26 23:41:57 +01:00
Melanie
4ed54dcc01 Merge branch 'careminster-presence-refactor' of ssh://3dhosting.de/var/git/careminster into careminster-presence-refactor 2011-04-26 23:20:13 +02:00
Melanie
e713b7e3bb Try to repair attachments ion the fly if they are detached and reattached. 2011-04-26 23:18:52 +02:00
Mic Bowman
1505fbb647 Add back the high prioritization for other avatars in the
BestAvatarResponsiveness prioritizer.
2011-04-26 08:54:05 -07:00
Sean McNamara
587aa91e36 Merge git://opensimulator.org/git/opensim 2011-04-26 11:45:38 -04:00
Mic Bowman
36fef21e52 Merge branch 'master' into queuetest 2011-04-26 08:42:21 -07:00
Sean McNamara
c82c7e6ed9 Wait for OnOarFileSaved event callback before executing script
We want to execute the (optional) user script after I/O is done on the oar.
I wasn't aware that ArchiveRegion is asynchronous -- now I am.
Should fully resolve comment 0018290 at
http://opensimulator.org/mantis/view.php?id=5440
2011-04-26 11:42:06 -04:00
Diva Canto
e579a990b4 Removed stale client components: MXP and VWoHTTP. 2011-04-25 18:59:01 -07:00
dahlia
037373b825 recover from unhandled exception from bad rotation data while processing entity updates in LLClientView.cs 2011-04-25 17:11:54 -07:00
Mic Bowman
b9bca893ef Removed debug message in the token bucket code 2011-04-25 16:13:16 -07:00
Mic Bowman
13f141a4d5 Fix the totals shown by show throttle 2011-04-25 15:36:59 -07:00
Melanie
a6c53b1ba2 Merge branch 'queuetest' into careminster-presence-refactor 2011-04-25 23:26:37 +01:00
Melanie
9bf5e94b70 Merge branch 'master' into careminster-presence-refactor 2011-04-25 23:18:32 +01:00
Mic Bowman
b7eda288bf Merge branch 'master' into queuetest 2011-04-25 15:12:53 -07:00
Mic Bowman
77ab7ce084 Fixed the transmission of throttles from root agent to child
agents. Child throttles are based on the number of child agents
known to the root and at least 1/4 of the throttle given to
the root.
2011-04-25 15:11:29 -07:00
Diva Canto
ef4f1fc4ba Made things consistent between LocalInventoryServiceConnector and RemoteXInventoryServiceConnector on GetFolderContent. 2011-04-25 11:00:48 -07:00
Mic Bowman
2fefb7adee Merge branch 'master' into queuetest 2011-04-25 10:55:19 -07:00
Mic Bowman
024c12abc3 Cleaned up various configuration options. Removed the category throttle
limits because the only ones used now are the defaults (which are overwritten
by the client throttles anyway). Updated the default rates to correspond to
about 350kbps.

Also added a configuration to disable adaptive throttle. The default
is the previous behavior (no adaptation).
2011-04-25 10:44:41 -07:00
Diva Canto
3a38bd8854 Addresses mantis #5449 -- crashing exception in SendInventoryFolderDetails. 2011-04-25 08:53:48 -07:00
Mic Bowman
1d7c83c39f Merge branch 'master' into queuetest 2011-04-25 08:41:21 -07:00
Diva Canto
0d5a80ad78 Removed unused libraries: RAILS.dll and dependencies. 2011-04-24 19:14:39 -07:00
Diva Canto
35c09cae8c Removed unused libraries Castle.* 2011-04-24 19:06:48 -07:00
Diva Canto
507f0e9ffd Upped VERSION_NUMBER in master to 0.7.2. 2011-04-24 16:21:01 -07:00
Diva Canto
e3c3d626fb Commented verbose debug message. 2011-04-24 16:14:24 -07:00
Sean McNamara
d287e0ac68 Merge git://opensimulator.org/git/opensim 2011-04-23 18:33:08 -04:00
Sean McNamara
440d54a521 AutoBackup: Removed unneeded imports. 2011-04-23 18:32:08 -04:00
Sean McNamara
082fad6dd2 Fix most issues raised by justincc: http://opensimulator.org/mantis/view.php?id=5440 2011-04-23 18:29:13 -04:00
Mic Bowman
e2c6ed236d Fix a bug looping through the priority queues. This should fix the problem
of not all prims being sent without reprioritization.
2011-04-23 12:17:10 -07:00
E. Allen Soard
44e43d9d24 Added MaxAgents configuration option to RegionConfig.ini allowing region hosters to setup regions maintaining more control over system resources. 2011-04-23 00:40:08 +01:00
Justin Clark-Casey (justincc)
d5256094d9 print invalid command message to the console, not the log 2011-04-23 00:16:55 +01:00
Mic Bowman
a3bd769cb3 Added a second immediate queue to be used for the BestAvatar policy
and currently used for all of an avatars attachments by the other
policies. Also changed the way items are pulled from the update queues
to bias close objects even more.
2011-04-22 14:55:23 -07:00
Mic Bowman
08e58e7ca6 Set the initial rate for the adaptive throttle to 160Kpbs
or about 15 packets per second.
2011-04-22 14:02:34 -07:00
Mic Bowman
3534f4492a Various clean ups. Removed some debugging code. Added a new "show pqueues"
command to look at the entity update priority queue. Added a "name" parameter
to show queues, show pqueues and show throttles to look at data for a specific
user.
2011-04-22 14:01:12 -07:00
Melanie
c411ab54ee Merge branch 'master' into careminster-presence-refactor 2011-04-22 08:55:12 +01:00
BlueWall
cbe49ed917 Merge branch 'master' of /home/opensim/var/repo/opensim 2011-04-21 19:08:31 -04:00
BlueWall
b8e282324e fix merge conflicts with OpenSimDefaults.ini 2011-04-21 19:06:54 -04:00
BlueWall
e0002f6b64 some mesh config asthetics 2011-04-21 19:04:41 -04:00
Mic Bowman
0897647709 Merge branch 'queuetest' of ssh://opensimulator.org/var/git/opensim into queuetest 2011-04-21 15:41:15 -07:00
Mic Bowman
c5159ad8d0 Add some locking on the child list for the token bucket
hiearchy. A few other cosmetic changes.
2011-04-21 15:40:38 -07:00
Dan Lake
7f28dd4b31 Refactor UnackedPacketCollection so ProcessQueues will handle Adds, Acks, and Removes in that order. 2011-04-21 15:40:32 -07:00
Melanie
0c68fbdb1a Merge branch 'master' into careminster-presence-refactor 2011-04-21 23:06:01 +01:00
Melanie
398bb2149a Merge branch 'master' of melanie@opensimulator.org:/var/git/opensim 2011-04-21 23:04:01 +01:00
Melanie
13d6e05d5a Implement agent limits 2011-04-21 23:03:38 +01:00
Melanie
a1dce960d7 Add fix a minor bug 2011-04-21 22:45:46 +02:00
Melanie
282e116f94 Honor agent limit for region crossings and teleports 2011-04-21 22:34:49 +02:00
BlueWall
5e99d93651 Merge branch 'master' of ssh://opensimulator.org/var/git/opensim 2011-04-21 15:16:12 -04:00
BlueWall
d9055c8dc3 Group collada meshies settings under [Mesh] in OpensimDefaults.ini 2011-04-21 15:15:24 -04:00
Justin Clark-Casey (justincc)
223c90c751 Remove duplicated freeswitch settings. 2011-04-21 19:31:37 +01:00
Justin Clark-Casey (justincc)
60685c3517 Adjust freeswitch logging to be somewhat less noisy. However, there is still quite a large amount of logging present for debug purposes. 2011-04-21 19:17:38 +01:00
Justin Clark-Casey (justincc)
e36cab99fd minor: small amount of method doc and some commented out odds and ends 2011-04-21 18:45:05 +01:00
Justin Clark-Casey (justincc)
44999dce76 Merge branch 'master' of ssh://opensimulator.org/var/git/opensim 2011-04-21 18:44:04 +01:00
Justin Clark-Casey (justincc)
63c1b7e475 Alter uuid gather so that it properly analyzes coalesced objects.
This should correct save all the assets required for the items within the coalesced objects in an IAR.  This should also correctly gather the items on hypergrid takes.
2011-04-21 18:12:29 +01:00
Melanie
204b8b7b7e Merge branch 'queuetest' into careminster-presence-refactor 2011-04-21 16:51:39 +01:00
Melanie
09b6d717bf Merge branch 'master' into careminster-presence-refactor 2011-04-21 16:28:29 +01:00
Mic Bowman
371576d1dd Merge branch 'master' into queuetest 2011-04-21 08:23:01 -07:00
Dan Lake
3640d0204f Added ability to remove unacked packet from UnackedPacketCollection without an acknowledgement from the network. This prevents RTT and throttles from being updated as they would when an ACK is actually received. Also fixed stats logging for unacked bytes and resent packets in this case. 2011-04-21 01:51:08 -07:00
Dan Lake
b5ab33b5e1 bug fix. Now when an unacked update packet is handled through ResendPrimUpdates, it is removed from the UnackedPacketCollection. 2011-04-20 23:08:51 -07:00
Mic Bowman
7759bda833 Added an "immediate" queue to the priority queue. This is
per Melanie's very good suggestion. The immediate queue is
serviced completely before all others, making it a very good
place to put avatar updates & attachments.

Moved the priority queue out of the LLUDP directory and
into the framework. It is now a fairly general utility.
2011-04-20 21:58:49 -07:00
Mic Bowman
294b49ca3d Merge branch 'queuetest' of ssh://opensimulator.org/var/git/opensim into queuetest
Conflicts:
	OpenSim/Region/ClientStack/LindenUDP/LLClientView.cs
2011-04-20 16:28:33 -07:00
Mic Bowman
2b737c9cc2 Adds the first pass at an adaptive throttle to slow start new
clients. If the sent packets are ack'ed successfully the throttle
will open quickly up to the maximum specified by the client and/or
the sims client throttle.

This still needs a lot of adjustment to get the rates correct.
2011-04-20 16:23:33 -07:00
dahlia
212326eeb0 fix meshing failure on sculpt maps smaller than 64x64 2011-04-19 22:16:10 -07:00
Justin Clark-Casey (justincc)
ccc26f7443 Get Viewer 2 voice working with OpenSim.
See http://opensimulator.org/mantis/view.php?id=5336
It turns out that viewer 2 was upset by the lack of a response to viv_watcher.php.  This would send it into a continuous login loop.
Viewer 1 was quite happy to ignore the lack of response.
This commit puts in the bare minimum 'OK' message in response to viv_watcher.php.  This allows viewer 2 voice to connect and appears to work.
However, at some point we need to fill out the watcher response, whatever that is.
2011-04-20 01:02:40 +01:00
Justin Clark-Casey (justincc)
b786860bac synchronize Robust.HG.ini.example FreeSWITCH config with other config files 2011-04-19 22:38:43 +01:00
Justin Clark-Casey (justincc)
575257f3fe For consistency, uncomment ColladaMesh option in OpenSimDefaults.ini. Thanks for the spot, Ai Austin. 2011-04-19 21:58:55 +01:00
Justin Clark-Casey (justincc)
2fa210243b Clean up freeswitch config to what is currently required. Add explanation to config parameters. Clean up some log messages. 2011-04-19 21:54:26 +01:00
Mic Bowman
82de87ce99 Converted the property request queue to use the same retransmission
mechanism as the entity update queues.
2011-04-19 11:22:04 -07:00
Dan Lake
08d8a3e580 Requeue unacknowledged entity updates rather than resend then "as is".
Often, by the time the UDPServer realizes that an entity update packet
has not been acknowledged, there is a newer update for the same entity
already queued up or there is a higher priority update that should be
sent first. This patch eliminates 1:1 packet resends for unacked entity
update packets. Insteawd, unacked update packets are decomposed into the
original entity updates and those updates are placed back into the
priority queues based on their new priority but the original update
timestamp. This will generally place them at the head of the line to be
put back on the wire as a new outgoing packet but prevents the resend
queue from filling up with multiple stale updates for the same entity.
This new approach takes advantage of the UDP nature of the Linden protocol
in that the intent of a reliable update packet is that if it goes
unacknowledge, SOMETHING has to happen to get the update to the client.
We are simply making sure that we are resending current object state
rather than stale object state.

Additionally, this patch includes a generalized callback mechanism so
that any caller can specify their own method to call when a packet
expires without being acknowledged. We use this mechanism to requeue
update packets and otherwise use the UDPServer default method of just
putting expired packets in the resend queue.
2011-04-19 08:10:01 -07:00
Dan Lake
6e4d970dae Requeue unacknowledged entity updates rather than resend then "as is".
Often, by the time the UDPServer realizes that an entity update packet
has not been acknowledged, there is a newer update for the same entity
already queued up or there is a higher priority update that should be
sent first. This patch eliminates 1:1 packet resends for unacked entity
update packets. Insteawd, unacked update packets are decomposed into the
original entity updates and those updates are placed back into the
priority queues based on their new priority but the original update
timestamp. This will generally place them at the head of the line to be
put back on the wire as a new outgoing packet but prevents the resend
queue from filling up with multiple stale updates for the same entity.
This new approach takes advantage of the UDP nature of the Linden protocol
in that the intent of a reliable update packet is that if it goes
unacknowledge, SOMETHING has to happen to get the update to the client.
We are simply making sure that we are resending current object state
rather than stale object state.

Additionally, this patch includes a generalized callback mechanism so
that any caller can specify their own method to call when a packet
expires without being acknowledged. We use this mechanism to requeue
update packets and otherwise use the UDPServer default method of just
putting expired packets in the resend queue.
2011-04-18 16:48:49 -07:00
Justin Clark-Casey (justincc)
36c4e94ef7 Move mesh on/off swtich from [Startup] to [Mesh] in anticipation of future config parameters.
Default remains true.
OpenSimDefault.ini changed so if you haven't overriden this switch then you don't need to do anything.
2011-04-18 23:22:04 +01:00
Justin Clark-Casey (justincc)
f5a041d012 bump default IAR version to 0.2 and 1.1 for the --profile version.
There are no changes in this bump, they just signal a point at which the control file comes first in the archive.
2011-04-18 23:00:41 +01:00
Justin Clark-Casey (justincc)
6109605038 bump oar version number to 0.6.
This commit contains no data changes - the version bump is to establish a version at which the control file must come first in the archive.
2011-04-18 22:42:36 +01:00
Justin Clark-Casey (justincc)
6600aa2baf Add regression test to check that OARs start with the control file. 2011-04-18 22:35:33 +01:00
Justin Clark-Casey (justincc)
e00e518692 add test to ensure that an IAR starts with the control file 2011-04-18 22:24:42 +01:00
Justin Clark-Casey (justincc)
61619ddefc refactor: split out the code which actually copies a particular bundle to inventory 2011-04-18 21:59:01 +01:00
Justin Clark-Casey (justincc)
71114d4ad1 refactor: rename DeleteToInventory() to CopyToInventory()
DeleteToInventory() is misleading - it is the caller that decides whether to delete or not
2011-04-18 21:34:26 +01:00
Justin Clark-Casey (justincc)
5a404a9ab1 Fix bug where objects were being coalesced in the wrong positions.
This addresses http://opensimulator.org/mantis/view.php?id=5441
The bug was due to a pre-existing mistake in creating the inventory stored position
2011-04-18 21:07:11 +01:00
Melanie
ccf63a9c63 Merge branch 'master' into careminster-presence-refactor 2011-04-18 21:04:09 +01:00
Justin Clark-Casey (justincc)
8533c63d89 Merge branch 'master' of ssh://opensimulator.org/var/git/opensim 2011-04-18 20:36:26 +01:00
Melanie
d1913f2429 Merge branch 'master' into careminster-presence-refactor 2011-04-18 20:17:29 +01:00
Justin Clark-Casey (justincc)
419fc9427e Provide a configuration setting to control whether multiple taken objects are coalesced to inventory
This is the CoalesceMultipleObjectsToInventory setting in [Inventory] in OpenSimDefaults.ini
Default is true.
2011-04-18 20:03:53 +01:00
Mic Bowman
452ae375f0 Merge branch 'master' into test-merge0418 2011-04-18 11:29:43 -07:00
Melanie
ec0aa7a90b Fix up client implementations 2011-04-17 23:17:05 +02:00
Melanie
dbf52b8cd1 Correct the delegate for classified deletes 2011-04-17 22:54:23 +01:00
Melanie
0e3580066b Merge branch 'master' into careminster-presence-refactor 2011-04-17 21:46:27 +01:00
Melanie
03e725ad87 Mantis #5442: Add admin_save_heightmap 2011-04-17 21:43:16 +01:00
Melanie
c02e0e930d Merge branch 'careminster-presence-refactor' of ssh://3dhosting.de/var/git/careminster into careminster-presence-refactor 2011-04-17 18:42:06 +02:00
Melanie
474910c9d6 Merge branch 'master' into careminster-presence-refactor 2011-04-17 18:48:53 +01:00
Melanie
2761810531 Fix the cert validation handler so that it will not block other parts of
the server doing ssl successfully.
2011-04-17 18:28:06 +02:00
Melanie
5db8dcb563 Fix agent animation updates 2011-04-17 17:11:33 +02:00
Dan Lake
70084c5e3a More descriptive debug msg for ServiceOSDRequest failures. 2011-04-16 15:29:28 -07:00
Mic Bowman
3e0e1057ac Remove the call to remove tokens from the parent. Under heavy load
this appears to cause problems with the system timer resolution.
This caused a problem with tokens going into the root throttle as
bursts leading to some starvation.

Also changed EnqueueOutgoing to always queue a packet if there
are already packets in the queue. Ensures consistent ordering
of packet sends.
2011-04-15 16:44:53 -07:00
Diva Canto
cd6dce1108 Fixes mantis #5431 -- coalesced objects in HG-enabled regions. Needs more testing to make sure HG inventory isn't broken by this (it shouldn't). 2011-04-15 16:42:40 -07:00
Justin Clark-Casey (justincc)
ed74be6599 Make remote admin error messages more helpful on windows.
Also, make log messages conform more with convention.
2011-04-15 23:54:30 +01:00
Justin Clark-Casey (justincc)
1dba671f45 refactor: separate out code that adds permissions 2011-04-15 23:32:46 +01:00
BlueWall
065d3f42c7 Merge branch 'master' of /home/opensim/lib/develop/BlueWall 2011-04-15 18:28:46 -04:00
BlueWall
fc365f2a31 Thanks Snoopy for a patch that allows setting of perms on items given to new avatars 2011-04-15 18:23:37 -04:00
Justin Clark-Casey (justincc)
9c7f14bf36 minor: remove a small amount of code duplication 2011-04-15 23:07:23 +01:00
Justin Clark-Casey (justincc)
98c5ed2c79 Merge branch 'master' of ssh://opensimulator.org/var/git/opensim 2011-04-15 22:49:59 +01:00
Justin Clark-Casey (justincc)
52d9230392 refactor: split out some rez code into a separate CreateItemForObject() method 2011-04-15 22:47:47 +01:00
BlueWall
37d2b6243b Merge branch 'master' of ssh://opensimulator.org/var/git/opensim 2011-04-14 21:16:30 -04:00
BlueWall
40bf417da7 Add ColladaMesh switch 2011-04-14 21:15:42 -04:00
Justin Clark-Casey (justincc)
66a62678e5 get rid of all traces of the now used mock service infrastructure 2011-04-15 01:37:27 +01:00
Justin Clark-Casey (justincc)
631654a38d remove old code for a mock grid service, which got removed some time back 2011-04-15 01:30:49 +01:00
Justin Clark-Casey (justincc)
ba73df39a3 remove any reference to a mock authentication service since it doesn't exist and we don't use it 2011-04-15 01:26:07 +01:00
Justin Clark-Casey (justincc)
54e8855819 remove mock asset service for tests in favour of always using the real one 2011-04-15 01:23:26 +01:00
Justin Clark-Casey (justincc)
79bd430e08 Remove the mock inventory service for tests and just use the real one all the time with an in-memory data plugin 2011-04-15 01:10:26 +01:00
Justin Clark-Casey (justincc)
ad70cddcfc extend TestLoadCoalesecedItem() to check loaded object ids and positions 2011-04-15 00:56:40 +01:00
Justin Clark-Casey (justincc)
a0d80140f2 Make all the objects in a coalescence reappears after being loaded from an IAR. This still doesn't work proprerly since some required textures/contained item assets might be missing.
From pure code inspection, it looks like the uuid gatherer may get most asset uuids because the scene object serializer naively pulls non-root parts from all contained scene objects into one mega-object.  However, root part uuids may well still be missing, and there may be other odd artifacts from this bug.
It appears that storing the size of the coalescence and the offsets is redundant, since one can work out this information from the position data already in the scene object groups.
2011-04-15 00:42:06 +01:00
Justin Clark-Casey (justincc)
821e67fb95 implement stub TestLoadCoalesecedItem(). Doesn't do what it's meant to do yet. 2011-04-14 20:59:52 +01:00
Justin Clark-Casey (justincc)
55387542ea simplify InventoryArchiveTestCase setup 2011-04-14 20:35:00 +01:00
Justin Clark-Casey (justincc)
1569148b49 simplify TestSaveItemToIarV0_1() 2011-04-14 20:32:27 +01:00
Justin Clark-Casey (justincc)
e439264824 simplify TestRezObject() 2011-04-14 20:23:48 +01:00
Justin Clark-Casey (justincc)
c644ab6a2c Make scene object parts created by the test utils unit sized. 2011-04-14 20:21:44 +01:00
Justin Clark-Casey (justincc)
4b05e667cb Merge branch 'master' of ssh://opensimulator.org/var/git/opensim 2011-04-14 20:15:34 +01:00
Mic Bowman
22b307ea1c Merge branch 'master' into queuetest 2011-04-14 11:59:25 -07:00
Justin Clark-Casey (justincc)
aaf9125869 simplify coalesced object tests by using existing scene object set up utils
this change makes it possible to set an absolute position on a group before it is put into a scene.
2011-04-14 17:33:55 +01:00
Mic Bowman
6ed6b46aad Comment out the warning if the prioritizer runs without a fully
initialized scene presence. Not sure why we are dumping updates
to a client that isn't there yet...
2011-04-13 21:01:51 -07:00
Mic Bowman
590d20903c Merge branch 'testmerge' into queuetest
Conflicts:
	OpenSim/Region/ClientStack/LindenUDP/LLClientView.cs
2011-04-13 15:41:17 -07:00
Mic Bowman
bf91d1b077 remove packet monitoring debugging code 2011-04-13 15:37:25 -07:00
Mic Bowman
b33aac737a Fixed the update of items in the priority queue to enable both
types of property updates to be specified. Not sure if one form
of property update should supercede another. But for now the old
OpenSim behavior is preserved by sending both.
2011-04-13 15:37:25 -07:00
Mic Bowman
5e7aba4f88 fixed a couple bugs with the property queues 2011-04-13 15:37:25 -07:00
Mic Bowman
3fe22126ca First pass at moving object property requests into a queue similar
to the entity update queue. The number of property packets can
become significant when selecting/deselecting large numbers of
objects.

This is experimental code.
2011-04-13 15:37:25 -07:00
Mic Bowman
5b89c66c97 New tokenbucket algorithm. This one provides fair sharing of the queues
when client and simulator throttles are set. This algorithm also uses
 pre-defined burst rate of 150% of the sustained rate for each of the
 throttles.

Removed the "state" queue. The state queue is not a Linden queue and
appeared to be used just to get kill packets sent.
2011-04-13 15:37:25 -07:00
Mic Bowman
4c62203b3b Merge branch 'queuetest' of ssh://opensimulator.org/var/git/opensim into queuetest 2011-04-13 15:31:12 -07:00
Justin Clark-Casey (justincc)
c5465414b6 Use common coalesced serialization code for both tests and the InventoryAccessModule.
Continue to restore original absolute positions of stored scene objects, though it's possible that these aren't used again
2011-04-13 22:55:26 +01:00
Justin Clark-Casey (justincc)
c81f5bfc5c Adjust the quanterions used in the rez coalsced object tests to get sensible bounding box and offset numbers.
Extend test to check position of objects in the rezzed coalescence.
2011-04-13 22:29:12 +01:00
BlueWall
c0fcc430fe Merge branch 'master' of /home/git/repo/OpenSim into queuetest 2011-04-13 17:03:30 -04:00
Justin Clark-Casey (justincc)
68cc5b46fe refactor: move code to obtain the coalescence size and object offsets into CoalescedSceneObjects from the serializer. 2011-04-13 21:48:16 +01:00
Justin Clark-Casey (justincc)
d8d28c3737 Fix bug where rezzing coalesced objects would give all objects the same name as the item.
This now only happens for the first object (which was the item selected last when the coalesce was originally taken)
This matches the expected behaviour of the environment as seen on the Linden Labs grid.
2011-04-13 21:31:45 +01:00
Justin Clark-Casey (justincc)
58efd761d1 Add coalesced scene objects class and serializer. This is currently only used by the TestRezCoalescedObject() regression test.
This structure matches the existing one for SceneObjects and will allow code to be reused by the uuid gatherer, other tests, etc.
Test is not yet fully implemented due to a bug in rezzing coalesced objects where they all get the same name as the item.
Only one object should get the same name as the item, which appears to be the one selected last when the the objects were coalesced in the first place.
This bug will be addressed shortly.
2011-04-13 21:17:43 +01:00
BlueWall
dec9c2283b Add ColladaMesh switch 2011-04-13 16:10:18 -04:00
Justin Clark-Casey (justincc)
08fd1d9bbd factor out some test code into the SetUp() 2011-04-13 18:11:04 +01:00
Justin Clark-Casey (justincc)
6613daa82a Add a regression test for rezzing a single object into a scene from user inventory 2011-04-13 17:46:36 +01:00
BlueWall
d3457eae7a Merge branch 'master' of /home/git/repo/OpenSim 2011-04-13 09:53:44 -04:00
dahlia
90b810c27e force mesh proxy for simple box prims with path cut 2011-04-12 22:47:30 -07:00
Diva Canto
7592a033df Moved 3 request handlers from OpenSim.Framework.Servers.HttpServer up to OpenSim.Framework -- just pasted them in WebUtil. This is so that code that uses the Service connectors don't need to include the HttpServer dll -- that was odd. 2011-04-12 20:24:28 -07:00
Diva Canto
16c911dcbb Implemented terrain save-tile command. Does the opposite of load-tile. For now, only saves to .png. 2011-04-12 19:46:27 -07:00
Diva Canto
5c870fce54 Bug fix in object serialization -- sculpt data was wrong. 2011-04-12 19:45:33 -07:00
Mic Bowman
b84ad81740 remove packet monitoring debugging code 2011-04-12 15:58:57 -07:00
Mic Bowman
78c04d61ca Fixed the update of items in the priority queue to enable both
types of property updates to be specified. Not sure if one form
of property update should supercede another. But for now the old
OpenSim behavior is preserved by sending both.
2011-04-12 15:58:57 -07:00
Mic Bowman
1a0f107012 fixed a couple bugs with the property queues 2011-04-12 15:58:57 -07:00
Mic Bowman
69d014e1dc First pass at moving object property requests into a queue similar
to the entity update queue. The number of property packets can
become significant when selecting/deselecting large numbers of
objects.

This is experimental code.
2011-04-12 15:58:57 -07:00
Mic Bowman
2f43687589 New tokenbucket algorithm. This one provides fair sharing of the queues
when client and simulator throttles are set. This algorithm also uses
 pre-defined burst rate of 150% of the sustained rate for each of the
 throttles.

Removed the "state" queue. The state queue is not a Linden queue and
appeared to be used just to get kill packets sent.
2011-04-12 15:58:57 -07:00
Mic Bowman
317617cfda remove packet monitoring debugging code 2011-04-12 15:55:21 -07:00
Mic Bowman
80ba3de902 Fixed the update of items in the priority queue to enable both
types of property updates to be specified. Not sure if one form
of property update should supercede another. But for now the old
OpenSim behavior is preserved by sending both.
2011-04-12 15:40:57 -07:00
Justin Clark-Casey (justincc)
424995e138 Move example HttpProxy setting to OpenSim.ini.example and tidy 2011-04-12 23:22:21 +01:00
Justin Clark-Casey (justincc)
bed463666c minor typo correction. thanks Ai Austin. 2011-04-12 23:16:43 +01:00
Mic Bowman
7fa085b3fa fixed a couple bugs with the property queues 2011-04-12 14:40:57 -07:00
Justin Clark-Casey (justincc)
da4a9653a2 minor: remove some mono compiler warnings 2011-04-12 22:33:06 +01:00
Justin Clark-Casey (justincc)
b0889ed92a refactor: simplify bRayEndIsIntersection boolean set from RayEndIsIntersection byte 2011-04-12 22:30:43 +01:00
Justin Clark-Casey (justincc)
8e0d2cc43b If an object is rezzed directly from a prim inventory then give it the rotation it was stored with. 2011-04-12 22:21:46 +01:00
Justin Clark-Casey (justincc)
3ba5eeb6c3 Allow a null rotation to be passed in to RezObject so that we can control whether to use the serialized rotation or not. Not used yet. 2011-04-12 22:15:40 +01:00
Mic Bowman
3afddb9033 Merge branch 'test-select' into queuetest 2011-04-12 12:39:02 -07:00
Mic Bowman
0e97629ee7 Merge branch 'master' into queuetest 2011-04-12 12:38:47 -07:00
Mic Bowman
095e602c4a First pass at moving object property requests into a queue similar
to the entity update queue. The number of property packets can
become significant when selecting/deselecting large numbers of
objects.

This is experimental code.
2011-04-12 12:36:36 -07:00
Justin Clark-Casey (justincc)
98d7de22dc Fix (add) ability to rez objects by dragging them out of another prim's inventory.
This should happen if the client supplies a task ID with the RezObject call.
The rez goes through the same code as llRezObject(), so the same perms are applied.
Rotation isn't yet preserved, this should be fixed shortly.
2011-04-12 18:31:41 +01:00
Sean McNamara
049bce4d00 Fixup the global defaults config parsing code. 2011-04-12 01:14:21 -04:00
Melanie
42b96a8be0 Merge branch 'master' into careminster-presence-refactor 2011-04-12 00:27:39 +01:00
Justin Clark-Casey (justincc)
621d5b58e1 minor: add a bit more method doc to IInventoryService.GetItem() 2011-04-11 23:56:04 +01:00
Justin Clark-Casey (justincc)
49d80f5711 Include code to return more information about the NullReferenceException seen in
http://opensimulator.org/mantis/view.php?id=5403 prior to doing something about it.
2011-04-11 23:07:56 +01:00
Justin Clark-Casey (justincc)
64dc7e9f14 minor: remove now inaccurate comment 2011-04-11 22:35:07 +01:00
Justin Clark-Casey (justincc)
e8ecb2898c minor: remove some mono compiler warnings 2011-04-11 22:33:24 +01:00
Justin Clark-Casey (justincc)
3a98fb080a minor: adjust some spacing and indentation 2011-04-11 22:29:08 +01:00
E. Allen Soard
464fa45ec9 Implimented HTTP_VERIFY_CERT for llHttpRequest 2011-04-11 22:22:11 +01:00
Justin Clark-Casey (justincc)
333a2913cf slightly tweak OpenSim.ini.example text 2011-04-11 22:02:12 +01:00
Justin Clark-Casey (justincc)
0bd6bc8fba create "config show" as a region console command synonym for "config get".
This is to create greater consistency with all the other show commands.
2011-04-11 21:59:26 +01:00
Justin Clark-Casey (justincc)
d6948b15c4 Make it more obvious when it happens that DLL plugin loading fails. Improve exception output on Windows. 2011-04-11 21:51:17 +01:00
Justin Clark-Casey (justincc)
fda393b088 Add information comment to top of OpenSimDefaults.ini and make file consistent 2011-04-11 21:42:28 +01:00
Justin Clark-Casey (justincc)
e9c2beadec Add more instructions to OpenSim.ini.example to try and make it more understandable for new users. 2011-04-11 20:43:11 +01:00
Sean McNamara
95a6ee0a37 Fix NREs harder. 2011-04-11 13:20:46 -04:00
Sean McNamara
4ad05fb01d Fix some NREs on certain paths. 2011-04-11 13:12:26 -04:00
Sean McNamara
4974a1ce69 AutoBackup: Support region-independent settings too. 2011-04-11 12:34:26 -04:00
Mic Bowman
6e9cdb9ce3 New tokenbucket algorithm. This one provides fair sharing of the queues
when client and simulator throttles are set. This algorithm also uses
 pre-defined burst rate of 150% of the sustained rate for each of the
 throttles.

Removed the "state" queue. The state queue is not a Linden queue and
appeared to be used just to get kill packets sent.
2011-04-11 09:06:28 -07:00
Mic Bowman
72a24cf023 Merge branch 'queuetest' of ssh://opensimulator.org/var/git/opensim into queuetest
Conflicts:
	OpenSim/Region/ClientStack/LindenUDP/LLClientView.cs
	OpenSim/Region/Framework/Scenes/Prioritizer.cs
2011-04-11 08:41:36 -07:00
Mic Bowman
f778056c7a Removed some priority queue debugging code 2011-04-11 08:37:43 -07:00
Mic Bowman
ebc249e3be Changed the "not in scene" check in the prioritizier to just
a warning. There appears to be a race condition on slow logins
that attempts to prioritize before the scene presence is fully
initialized.
2011-04-10 17:02:40 -07:00
Mic Bowman
19c6d1d569 Split the priority queue class into a seperate file. LLClientView
is big enough.
2011-04-10 16:57:02 -07:00
Mic Bowman
83dc2470f2 Fix a bug in the computation of the RTO. Basically... the RTO (the
time to wait to retransmit packets) always maxed out (no retransmissions
for 24 or 48 seconds.

Note that this is going to cause faster (and more) retransmissions. Fix
for dynamic throttling needs to go with this.
2011-04-10 16:57:02 -07:00
Mic Bowman
0bd06d8ba8 Fixed the prioritizer functions for the new priority queues 2011-04-10 16:57:02 -07:00
Mic Bowman
77cf9405de Implements adaptive queue management and fair queueing for
improved networking performance.

Reprioritization algorithms need to be ported still. One is
in place.
2011-04-10 16:57:02 -07:00
Sean McNamara
9c0f3c73b1 Merge git://opensimulator.org/git/opensim 2011-04-10 18:28:54 -04:00
Justin Clark-Casey (justincc)
707b6673c9 minor: remove mono compiler warnings 2011-04-09 00:25:00 +01:00
Justin Clark-Casey (justincc)
2aa3984796 Update ODE for mac from source code in opensim-libs SVN library. This version is r1755 + patches as detailed in the svn logs.
This brings it into line with the Windows and Linux libraries.
This is a universal dylib with x86_64, i386 and ppc parts.  However, even on a 64 bit Intel machine Mono can only P/INVOKE the i386 version right now.  ppc is untested.
The configuration used to compile was

CFLAGS="-g -O2 -isysroot /Developer/SDKs/MacOSX10.6.sdk -arch i386 -arch x86_64 -arch ppc" CXXFLAGS="-g -O2 -isysroot /Developer/SDKs/MacOSX10.6.sdk -arch i386 -arch x86_64 -arch ppc" LDFLAGS="-arch i386 -arch x86_64 -arch ppc" ./configure --enable-old-trimesh --disable-asserts --enable-shared --disable-dependency-tracking --disable-demos --without-x

--disable-demos --without-x is required to build ODE on Mac OS X
CFLAGS, CXXFLAGS and --disable-dependency-tracking are necessary to build the universal dylib (some compilation lines use CFLAGS instead of CXXFLAGS)
The other settings are tweaks for using ODE with OpenSim
2011-04-08 20:50:23 +01:00
Melanie
18f7a24cc7 Merge branch 'master' into careminster-presence-refactor 2011-04-08 04:19:45 +01:00
Melanie
abea0c74c2 Add support for the new display name related functions in LSL. This does not
implement the display names functionality as such, but it allows scripts
that are display name aware to function as if the display name were implemented
and set to the avatar name.
2011-04-08 04:19:17 +01:00
Melanie
738daadace Merge branch 'master' into careminster-presence-refactor 2011-04-08 04:16:29 +01:00
Melanie
33dd74e410 Add support for the new display name related functions in LSL. This does not
implement the display names functionality as such, but it allows scripts
that are display name aware to function as if the display name were implemented
and set to the avatar name.
2011-04-08 03:50:27 +02:00
Justin Clark-Casey (justincc)
d31175060f trivial whitespace removal to trigger a panda rebuild 2011-04-08 00:42:35 +01:00
Justin Clark-Casey (justincc)
9ba787be67 Remove old SQLite library 2011-04-08 00:33:33 +01:00
Justin Clark-Casey (justincc)
0ced677510 Revert master version number to 0.7.1 for now to make merging easier. 2011-04-07 23:22:19 +01:00
Justin Clark-Casey (justincc)
9d40c0dcc7 Remove the SQLite legacy adaptor. This is no longer needed now that the main adaptor works on Mac OS X.
The SQLite legacy adapator was also not at all well maintained, even worse than the mainline sqlite adapator.
2011-04-07 23:20:04 +01:00
Justin Clark-Casey (justincc)
1b1e6f78fd Bundle a built-from-source Mac OS X sqlite3 universal dylib with OpenSim and use this instead of the system one.
This means that Mac OS X users can now use the standard sqlite adaptor instead of the legacy one.
This is SQLite 3.7.5.  I configured the build with the line

CFLAGS="-Os -g -isysroot /Developer/SDKs/MacOSX10.6.sdk -arch i386 -arch x86_64 -arch ppc7400 -DSQLITE_ENABLE_COLUMN_METADATA" LDFLAGS="-arch i386 -arch x86_64 -arch ppc7400" ./configure --disable-dependency-tracking

The SQLITE_ENABLE_COLUMN_METADATA flag exports the metadata symbols that modern Mono SQLite adaptors need.
The -Os removes debugging symbols (as per the sqlite3 source pkg README)
The other parts are to cross compile for x86_64, i386 and ppc.  On Mac OS X, Mono can actually only P/INVOKE 32-bit libraries even on 64 bit platforms so i386 is being used.  The dylib has not been tested on ppc.
2011-04-07 21:44:54 +01:00
Justin Clark-Casey (justincc)
a6b1927cff bump main branch version number to 0.7.2. A separate 0.7.1-post-fixes branch now exists. 2011-04-06 22:05:07 +01:00
Justin Clark-Casey (justincc)
9bc2705f37 Fix bug where on duplication, the root part local id was continually used in populating the local id scene object index instead of each part's local id 2011-04-06 20:52:36 +01:00
Justin Clark-Casey (justincc)
8318915d7e Signal prim count taint if the AbsolutePosition of a scene object changes.
This updates prim counts correctly if an object is moved by something other than an avatar (e.g. scripts, region modules)
Create TestMoveOwnerObject() regression test for this case.
2011-04-06 20:48:00 +01:00
Justin Clark-Casey (justincc)
63533412f8 Improve previous ILandObject method doc.
For test code, take a part name prefix when creating objects, so that these can be more easily identified in the logs
2011-04-06 18:57:50 +01:00
Justin Clark-Casey (justincc)
fa202a05e9 Add method doc to some land bitmap methods in ILandObject.
Also changes prim count tests to use the correct upper region bounds, though the method actually ignores the overage.
2011-04-06 17:19:31 +01:00
Melanie
407c2b1823 Merge branch 'master' into careminster-presence-refactor 2011-04-06 09:22:55 +01:00
Justin Clark-Casey (justincc)
2497962360 Change some text to make the autoreturn mechanism more obvious, and align with the fact that it's one word rather than two. 2011-04-05 22:25:00 +01:00
Justin Clark-Casey (justincc)
acacee98c6 properly refresh object owner list when refresh button is hit on land parcel object tab 2011-04-05 22:15:06 +01:00
Justin Clark-Casey (justincc)
0e465da187 remove now unused individual LandData prim counts.
However, the calls to the land management module to record prims need to remain, since they were also being used to return owner object lists, etc.
This is probably why prim counts were being done there in the first place.
2011-04-05 21:25:54 +01:00
Justin Clark-Casey (justincc)
f030ba8992 replace magic numbers in llGetParcelPrimCount() with constants 2011-04-05 20:39:58 +01:00
Justin Clark-Casey (justincc)
dc6ce24443 switch llGetParcelPrimCount() to use new prim counts module 2011-04-05 20:31:52 +01:00
Justin Clark-Casey (justincc)
3d400fc663 If an object is selected, then don't include it in owner/group/others prim counts.
This fixes the total prim count that the viewer displays when prims are selected - it appears to ignore the total that we pass it and adds up the counts separately.
2011-04-05 18:24:23 +01:00
Justin Clark-Casey (justincc)
c1dec225ab Handle the client's parcel info requests asynchronously rather than synchronously.
Handling these synchronously kills the inbound packet loop if many requests are made for remote land and those requests are handled slowly or timeout (timeout is 10s)
This can happen if a user searches for "land for sale" and then clicks many of the parcels in the list (or just presses down arrow to move through every entry).
2011-04-05 17:47:11 +01:00
Teravus Ovares (Dan Olivares)
18e206d2ed * Bugfix - Compile NullEstateData implement public List<int> IEstateDataStore.GetEstatesByOwner(UUID) 2011-04-04 23:45:28 -04:00
Mic Bowman
d5e0674213 Merge branch 'master' of ssh://opensimulator.org/var/git/opensim 2011-04-04 20:04:01 -07:00
Mic Bowman
b2fbadeae8 Updates NullStorage plugin.
Thanks MisterBlue...
2011-04-04 20:02:13 -07:00
Justin Clark-Casey (justincc)
f58941e89f Make the "All Estates" option work from the client (this makes chosen changes to all the estates that the user owns).
This applies to adding/removing estate users, groups, managers and bans.
This is the application of the AllEstates_0.5.patch from http://opensimulator.org/mantis/view.php?id=5420
Thanks very much, Snoopy!
2011-04-05 01:30:13 +01:00
Mic Bowman
65af4bacc9 Merge branch 'queuetest' of ssh://opensimulator.org/var/git/opensim into queuetest
Conflicts:
	OpenSim/Region/ClientStack/LindenUDP/LLClientView.cs
	OpenSim/Region/Framework/Scenes/Prioritizer.cs
2011-04-04 14:25:21 -07:00
Mic Bowman
8b134f37f2 Fix a bug in the computation of the RTO. Basically... the RTO (the
time to wait to retransmit packets) always maxed out (no retransmissions
for 24 or 48 seconds.

Note that this is going to cause faster (and more) retransmissions. Fix
for dynamic throttling needs to go with this.
2011-04-04 14:18:26 -07:00
Mic Bowman
15c4bbea59 Fixed the prioritizer functions for the new priority queues 2011-04-04 13:19:45 -07:00
Mic Bowman
6885b7220c Implements adaptive queue management and fair queueing for
improved networking performance.

Reprioritization algorithms need to be ported still. One is
in place.
2011-04-04 11:41:07 -07:00
Melanie
ebfccbea81 Merge branch 'master' into careminster-presence-refactor 2011-04-03 20:32:26 +01:00
Melanie
adb14ad20a Implement rezzing coalesced objects 2011-04-03 20:32:04 +01:00
Melanie
a4b3439025 Implement rezzing coalesced objects 2011-04-03 20:26:18 +01:00
Melanie
b385d4aa03 Implement taking of coalesced objects.
WARNING!!!!!
You can TAKE them, but you can't REZ them again. Only the first of the contained
objects will rez, the rest is inaccessible until rezzing them is implemented.
Also, rotations are not explicitly stored. This MAY work. Or not.
2011-04-03 20:24:44 +01:00
Melanie
0069ec2c84 Merge branch 'master' into careminster-presence-refactor 2011-04-03 14:17:21 +01:00
Melanie
e8e940e33e Make CHANGED_OWNER work for deeding and god-mode in-world change 2011-04-03 14:16:41 +01:00
Melanie
15e0b55e66 Merge branch 'master' into careminster-presence-refactor 2011-04-03 14:16:28 +01:00
Melanie
89a65df160 Merge branch 'careminster-presence-refactor' of ssh://melanie@3dhosting.de/var/git/careminster into careminster-presence-refactor 2011-04-03 14:15:29 +01:00
Melanie
4256693a9e Make CHANGED_OWNER work for deeding and god-mode in-world change 2011-04-03 13:50:19 +02:00
Justin Clark-Casey (justincc)
4f56c732bc Comment out some startup logging lines to make up for the one I added earlier on.
Most of these are where the region modules are telling us they are disabled.  Convention is only to log when enabled (even that is really noisy)
2011-04-02 02:29:42 +01:00
Justin Clark-Casey (justincc)
7bba0177fe If land is not group owned (group ID is always UUID.Zero) then don't check if a prim should be added to the group count 2011-04-02 01:53:47 +01:00
Justin Clark-Casey (justincc)
8e668abc6d add test for removing group owned objects 2011-04-02 01:46:06 +01:00
Justin Clark-Casey (justincc)
01b399055b add test for adding group object, factor out initial zero counts test 2011-04-02 01:37:46 +01:00
Justin Clark-Casey (justincc)
c13502a5cf add remove others object prim count test 2011-04-02 01:15:17 +01:00
Justin Clark-Casey (justincc)
2c86f6ba7d refactor: rename m_dummyUserId to m_otherUserId 2011-04-02 01:13:10 +01:00
Justin Clark-Casey (justincc)
5b0936d4b5 If the land has no group ownership (it is UUID.Zero) then don't put prims in the group count when they are also not group owned.
Also adds simple test for others owned count when an object is added
2011-04-02 01:07:52 +01:00
Melanie
112dceb4a0 Merge branch 'master' into careminster-presence-refactor 2011-04-01 22:05:07 +01:00
Melanie
3a113f9902 A stab at making CHANGED_OWNER work 2011-04-01 22:04:29 +01:00
Melanie
3053b60143 Merge branch 'careminster-presence-refactor' of ssh://melanie@3dhosting.de/var/git/careminster into careminster-presence-refactor 2011-04-01 21:52:04 +01:00
Melanie
95e524dde1 A stab at making CHANGED_OWNER work 2011-04-01 18:49:53 +02:00
Melanie
329fa73695 Merge branch 'master' into careminster-presence-refactor 2011-04-01 07:44:43 +01:00
dahlia
e974fde953 check threat configuration for LSL print() 2011-03-31 22:56:04 -07:00
dahlia
8c8a0a182e implement LSL "print()" API function 2011-03-31 21:14:53 -07:00
Justin Clark-Casey (justincc)
8f4bf43534 When asked to join region to existing estate, make first estate name the default instead of None 2011-04-01 00:55:05 +01:00
Justin Clark-Casey (justincc)
e1ceb461c0 Make default answer for 'do you wish to join region to an existing estate' yes instead of no. 2011-04-01 00:51:10 +01:00
Justin Clark-Casey (justincc)
39c610c165 Log which address and port the UDP listener is configured for. This will match that given for InternalAddress in the config (e.g. 0.0.0.0)
Can't obtain actually bound address until the UDP socket is used for the first time.
2011-04-01 00:41:52 +01:00
Justin Clark-Casey (justincc)
4d0cffa06e If the prim count gets an object with invalid bounds, don't try to count it.
This appears to be the more probable explanation for some failures seen.  Either we're counting attachments which are temporarily out of bounds (shouldn't be due to the IsAttachment) check or we're counting scene objects which have out of bounds co-ordinates (seems more likely)
2011-03-31 23:56:26 +01:00
Justin Clark-Casey (justincc)
6ae76ede98 suspend check that IAR control file is loaded for now
I was mistaken - some previous opensim versions don't save this file first.  Will have to bump iar version number and only check iars after the bump
2011-03-31 23:09:06 +01:00
Justin Clark-Casey (justincc)
88bd38690a Remove unused RegionInfo.getInternalEndPointPort() in favour of RegionInfo.InternalEndPoint.Port 2011-03-31 23:03:42 +01:00
Justin Clark-Casey (justincc)
efd0c003a3 Put in temporary logging message to find out if scene objects are requesting land objects for co-ordinates outside the region 2011-03-31 22:47:18 +01:00
Justin Clark-Casey (justincc)
7bba31e8d9 remove some mono compiler warnings 2011-03-31 22:20:12 +01:00
Justin Clark-Casey (justincc)
8022400bd4 Remove unused Datastore parameter from RegionInfo (legacy from early 2008) 2011-03-31 22:16:09 +01:00
Melanie
83c78029e3 Make the login service's call to the sim time out quicker so we have a
chance to try fallback before the client quits
2011-03-31 15:48:42 +02:00
Justin Clark-Casey (justincc)
f7ed7fc05d When a new parcel is created, make sure the prim counts are updated.
This is done by tainting the counts where appropriate
2011-03-30 00:42:02 +01:00
Justin Clark-Casey (justincc)
8b16f7d976 (re)implement selected prim count.
This does not currently count objects that are sat upon (which the viewer ui implies should be included in this count)
2011-03-30 00:13:07 +01:00
Justin Clark-Casey (justincc)
f754dedbef Merge branch 'primcounts' 2011-03-29 23:08:44 +01:00
Justin Clark-Casey (justincc)
fe258753a0 disable prim count debug logging temporarily 2011-03-29 23:07:01 +01:00
Tom
45548873bd Fix llGetParcelPrimOwners so that it returns LSL_Strings in the list rather than C# Strings 2011-03-29 09:28:27 -07:00
Diva Canto
309eb712a3 Improvement over 2 commits ago: make the hyperlink check understand port 80. 2011-03-28 19:34:55 -07:00
Diva Canto
d3771e5366 Added code to load a terrain tile of tiff/jpg format. Previously it only worked for one single region. 2011-03-28 16:48:12 -07:00
Diva Canto
2d209d3844 Fix mantis #5413. WARNING: new config variable in section [GridService] of the simulators called Gatekeeper -- intended to have the URL of the grid's Gatekeeper service (so that it can be checked against). See ini.examples. 2011-03-28 16:46:04 -07:00
Tom
c39b391b6a Many scripted items use long lists of llSetLinkPrimitiveParams rules to make prims "teleport" or jump large distances. When teleporting to 10,000 meters, this results in 1,000 SetPos calls, which severely rapes the physics and update system. This change modifies this behaviour to only provide one update after all the rules have been executed. 2011-03-28 13:28:59 -07:00
Mic Bowman
61371c7c16 Implements adaptive queue management and fair queueing for
improved networking performance.

Reprioritization algorithms need to be ported still. One is
in place.
2011-03-28 10:00:53 -07:00
Marck
5a61c76455 The actual change to README.txt about running on Linux. 2011-03-28 13:35:31 +02:00
Marck
dd72a69ea5 More touchup for SQLite.
Apply the same change to both the 32-bit and 64-bit DLL target paths. This makes the previous addition to the instructions in the README for running on Linux unnecessary.
2011-03-28 13:13:21 +02:00
BlueWall
fe6900b305 Touchup for SQLite 2011-03-27 19:38:40 -04:00
Tom
f7276dda02 Flag root prim changes for persistence 2011-03-27 14:20:25 -07:00
Melanie
a62b435a39 Merge branch 'master' into careminster-presence-refactor 2011-03-27 21:41:54 +01:00
Tom
2d2a1acfae Upgrade terse to full update on root rotation change. Not entirely sure why, but it seems that the terse update causes the first prim to rotate improperly on occasion (only temporary, it's fixed by the full update on deselect, but this will prevent confusion.) 2011-03-27 13:43:32 -07:00
Melanie
f25749f025 Merge branch 'master' of melanie@opensimulator.org:/var/git/opensim 2011-03-27 21:22:31 +01:00
Tom
553a195493 Fix issues with UpdateRootRotation and also increase efficiency 2011-03-27 13:09:19 -07:00
Justin Clark-Casey (justincc)
435d72f106 Add SignpostMarv to contributors 2011-03-26 02:46:00 +00:00
Justin Clark-Casey (justincc)
797128a6ad Rename some member fields to standard m_ OpenSim code convention 2011-03-26 02:44:46 +00:00
Justin Clark-Casey (justincc)
83f48c26d6 add header file 2011-03-26 02:43:41 +00:00
Justin Clark-Casey (justincc)
de0730a54c Add OpenSim.Server.Base reference in prebuild.xml. Initialize svc_checks dictionary in WebkeyOrPasswordAuthenticationService, which was what was causing the load failure. 2011-03-26 02:42:50 +00:00
SignpostMarv Martin
361b3e7ab8 Removing hard-coded plugin loading in favour of direct class instantiation 2011-03-26 02:39:30 +00:00
SignpostMarv Martin
3f4be42a87 Altering log feedback 2011-03-26 02:28:11 +00:00
SignpostMarv Martin
e93531e124 Fixing bug that occurs when using web login- the result was not checked 2011-03-26 02:28:11 +00:00
SignpostMarv Martin
3bc859a834 Making combined auth service re-use the existing auth services instead of duplicating code
Signed-off-by: SignpostMarv Martin <me@signpostmarv.name>
2011-03-26 02:28:11 +00:00
SignpostMarv Martin
0e808950fb InfoFormat > DebugFormat
Signed-off-by: SignpostMarv Martin <me@signpostmarv.name>
2011-03-26 02:28:11 +00:00
SignpostMarv Martin
6153c45973 LLLoginHandlers now supports both password & web login
Signed-off-by: SignpostMarv Martin <me@signpostmarv.name>
2011-03-26 02:28:11 +00:00
SignpostMarv Martin
af3956348f Adding a combined auth service, allowing users to login with either web login or password
Signed-off-by: SignpostMarv Martin <me@signpostmarv.name>
2011-03-26 02:28:11 +00:00
SignpostMarv Martin
482686daab WebkeyAuthenticationService is now no longer a stub!
Signed-off-by: SignpostMarv Martin <me@signpostmarv.name>
2011-03-26 02:28:11 +00:00
Justin Clark-Casey (justincc)
f2d2470c25 When an object is duplicated, add it to the full/local id SOG indexes as well as Entities 2011-03-26 02:24:32 +00:00
Justin Clark-Casey (justincc)
b11e3d33f1 add save of LLClientView I forgot from last commit 2011-03-26 02:20:16 +00:00
Justin Clark-Casey (justincc)
541cd3e8c8 move total parcel prim calculations into IPrimCounts instead of doing this in LLClientView
need to move selected prim counts from LandData/LMM still
2011-03-26 02:19:28 +00:00
Justin Clark-Casey (justincc)
bfd9cc44b4 When an object is duplicated, add the dupe to the uuid/local id indexes as well as the basic entities list.
Added a prim counts test to reinforce this - shift-copy was no incrementing prim count.  This will sometime become a basic scene test.
New code needs to be refactored so we just call SceneGraph.AddSceneObject().  This will happen in the near future.
With this, basic owner prim counts on a single parcel appear to be working fine (with the same previous existing taint calls as used by the land management module).
More work to do.
2011-03-26 02:05:53 +00:00
Justin Clark-Casey (justincc)
3d0e072d50 Merge branch 'master' into primcounts 2011-03-26 00:57:52 +00:00
Justin Clark-Casey (justincc)
26d16567e1 Make SceneGraph.ForEachSOG() execute once for each SOG, not once for each prim (e.g. a SOG with 3 prims would have the action executed three times).
To do this, a new SceneObjectGroupsByFullID index in SceneGraph which just index's prims by their root part UUID, in order to avoid the inefficiency of filtering existing lists.
Existing callers to SceneGraph.ForEachSOG() did not fail due to the multiple per SOG action executions - they were probably just much less efficient.
Code suggests that no callers expected ForEachSOG() to execute actions on sog multiple times
2011-03-26 00:53:19 +00:00
Justin Clark-Casey (justincc)
f30bf429c2 refactor: rename SOG collections in SceneGraph to make it clearer that they are indexing each part's UUID, not just the root part. 2011-03-26 00:42:48 +00:00
Justin Clark-Casey (justincc)
cc8897fceb Add test for PCM taint. This currently fails due to unexpected behaviour of SceneGraph.ForEachSOG(). This will be corrected soon.
Also adds lots of temproarily debug logging
2011-03-26 00:34:49 +00:00
Justin Clark-Casey (justincc)
d8e1c380e6 minor: make it clearer in the log where we're loading region config files and not the regions themselves 2011-03-25 23:36:58 +00:00
Justin Clark-Casey (justincc)
3a55d59b45 in region web loader, print out url that config is being loaded from (this wasn't being done anywhere). 2011-03-25 23:29:06 +00:00
Justin Clark-Casey (justincc)
ea72745d43 Log the xml/ini regions config files that opensim loads from, and the regions that it loaded from them
This will show up with the lines [REGION LOADER FILE SYSTEM]: Loading config files from ./Regions, etc.
2011-03-25 23:18:47 +00:00
Justin Clark-Casey (justincc)
6ae04448f7 Start using IPrimCounts populated by PrimCountModule instead of LandData counts populated by LandManagementModule.
In order to pass ILandObject into IClientAPI.SendLandProperties(), had to push ILandObject and IPrimCounts into OpenSim.Framework from OpenSim.Region.Framework.Interfaces, in order to avoid ci
Counts are showing odd behaviour at the moment, this will be addressed shortly.
2011-03-25 23:05:51 +00:00
Justin Clark-Casey (justincc)
7f5019b0f2 Add ILandObject.IPrimCounts for the new prim count module.
Not functional yet, but tests now act against this object rather than interrogating the module directly
2011-03-25 21:47:54 +00:00
Melanie
8338b74d3f Add giving lists of items to another prim 2011-03-25 02:39:17 +01:00
Melanie
5ef490b5ad Switching vivox to https for production use 2011-03-25 01:10:41 +01:00
Justin Clark-Casey (justincc)
eaa37d15f2 factor out common test setup code in PCM tests 2011-03-23 23:28:23 +00:00
Justin Clark-Casey (justincc)
f001aab8aa extend TestAddOwnerObject() to add a second object 2011-03-23 23:19:15 +00:00
Justin Clark-Casey (justincc)
ebbe3afaf1 Add PrimCountModuleTests.TestRemoveOwnerObject().
Also adds SceneSetupHelpers methods to easily create sogs with different part UUIDs
2011-03-23 23:14:55 +00:00
Justin Clark-Casey (justincc)
d5c7ae5c6b refactor common sop setup parts into a single method 2011-03-23 22:40:23 +00:00
Justin Clark-Casey (justincc)
de88227bc4 refactor: simplify part of AddSceneObject() test setup by moving sog construction into SceneSetupHelpers.CreateSceneObject() 2011-03-23 22:29:27 +00:00
Justin Clark-Casey (justincc)
88673c86a4 use a 3 part object for the pcm test rather than a 1 part, for improved test coverage 2011-03-23 22:17:47 +00:00
Justin Clark-Casey (justincc)
f1f4985ab6 user a non UUID.Zero user in pcm test to avoid any special treatment of UUID.Zero 2011-03-23 22:14:04 +00:00
Justin Clark-Casey (justincc)
654aa7abeb Extend simple PCM add object test to check all counts 2011-03-23 22:12:20 +00:00
Justin Clark-Casey (justincc)
08c3cd6b36 Add method doc to the Get*() methods on PrimCountModule 2011-03-23 22:04:14 +00:00
Justin Clark-Casey (justincc)
67cafbd33a remove a rogue Console.WriteLine() from the last commit. 2011-03-23 21:54:02 +00:00
Justin Clark-Casey (justincc)
d011896341 Add generic EventManager.OnObjectAddedToScene and get PrimCountModule to listen for that rather than EventManager.OnParcelPrimCountAdd
OnParcelPrimCountAdd had the wrong semantics for the PrimCountModule - it was invoked for every entity in the scene, not just new ones, which would screw up the untainted count.
Extend automated test for this scenario.
2011-03-23 21:53:14 +00:00
Marck
9c979dd0fc Fix a typo in the SQLite DLL config and amend the instructions for running on Linux.
Under Linux (and probably also under OSX), the operating system must be able to find the new SQLite DLL in the library search path.
2011-03-23 08:35:39 +01:00
Justin Clark-Casey (justincc)
b34743e5fe Add an initial confidence-building TestAddObject() for prim counts. 2011-03-22 23:47:36 +00:00
Melanie
3dc9b0ef18 Remove a spammy debug 2011-03-23 00:32:19 +01:00
Melanie
985f78dbf5 Merge branch 'careminster-presence-refactor' of ssh://3dhosting.de/var/git/careminster into careminster-presence-refactor 2011-03-23 00:06:43 +01:00
Melanie
bbbcb45398 Fudge the group join permissions for god user in god mode. Allows to join
every group without an invite.
2011-03-23 00:05:27 +01:00
Melanie
78a7c6cace Remove the forced landmark and home poermissions because they are now in the
database
2011-03-23 00:02:41 +01:00
Melanie
edf9f3d630 Raise the position for lures by 2m to prevent the target avatar getting stuck
in a prim.
2011-03-23 00:01:41 +01:00
BlueWall
be878795aa Typo fix 2011-03-22 17:36:01 -04:00
BlueWall
97d46648cd More SQLite work. 2011-03-22 16:42:12 -04:00
Kitto Flora
764e8c2a43 Merge branch 'careminster-presence-refactor' of ssh://3dhosting.de/var/git/careminster into careminster-presence-refactor 2011-03-22 20:33:24 +00:00
Melanie
c330f89fb1 Add some more fields to Estate settings and make them work.
Run alter table estate_settings add column AllowLandmark tinyint not null default 1, add column AllowParcelChanges tinyint not null default 1, add column AllowSetHome tinyint not null default 1;
to make this work.
2011-03-22 10:43:43 +01:00
Melanie
3cfaf4c225 Adding a helper function lifted from Aurora. Not for core. 2011-03-22 09:29:40 +01:00
Melanie
a073ca57da Add a definition for a region flag to omit a region from traffic counting 2011-03-22 09:23:46 +01:00
BlueWall
e3c327a305 Merge branch 'master' of /home/opensim/src/OpenSim/Core 2011-03-21 22:06:43 -04:00
Justin Clark-Casey (justincc)
7acade00b9 On initial setup, include estate and regions names in questions to make it clearer what they relate to. 2011-03-21 23:26:35 +00:00
Justin Clark-Casey (justincc)
3382de4d8b In initial setup, stop a user being able to create a new estate with the same name as an existing estate. 2011-03-21 23:16:57 +00:00
Justin Clark-Casey (justincc)
060a53b896 On initial opensim setup, don't ask the user whether they want to join an existing opensim estate when there aren't any. Proceed directly to estate setup instead. 2011-03-21 22:57:20 +00:00
Justin Clark-Casey (justincc)
ee7cfc2854 refactor: use EstateDataService property directly instead of loading it into a local variable 2011-03-21 22:47:02 +00:00
Justin Clark-Casey (justincc)
2d1f0d224c minor: slightly adjust previous method doc. 2011-03-21 22:27:16 +00:00
Justin Clark-Casey (justincc)
793bfb5a66 add method doc to IEstateDataService and IEstateDataStore interfaces 2011-03-21 22:25:20 +00:00
Justin Clark-Casey (justincc)
d3a20a1e92 On initial region registration, if the user chooses the option to make the region part of an existing estate, then list the existing region names. 2011-03-21 21:37:06 +00:00
Tom
b70596c15c Merge branch 'careminster-presence-refactor' of ssh://3dhosting.de/var/git/careminster into careminster-presence-refactor 2011-03-21 13:31:22 -07:00
Tom
4d4765aa28 Since we've plugged the leak, now increase URLs to 5000 since the limit is being hit in several sims 2011-03-21 13:30:53 -07:00
Melanie
fb890e543f Don't send a windlight profile to clients if windlight is not set for
that region. This should restore normal day and night cycles for
regions without WL settings.
2011-03-21 08:02:56 +00:00
Melanie
e4f143fb1c Merge branch 'master' into careminster-presence-refactor 2011-03-21 07:57:56 +00:00
Melanie
7b11a83c08 Don't send a windlight profile to clients if windlight is not set for
that region. This should restore normal day and night cycles for
regions without WL settings.
2011-03-21 05:52:29 +01:00
BlueWall
f4a30f3a23 Upgrade SQLite:
Fixes metadata issues. Tested on Linux and Windows - may fix
	issues seen on OSx as well.
2011-03-18 12:12:08 -04:00
Melanie
1241cc50f1 Revert "Switch Vivox voice module to https"
This reverts commit a8096b52cd.
2011-03-18 11:25:08 +01:00
Melanie
a8096b52cd Switch Vivox voice module to https 2011-03-18 10:59:32 +01:00
BlueWall
a3651eb5d0 Thanks Kevin Cozens for a patch that:
Fixes several spelling mistakes
2011-03-17 05:48:42 -04:00
Melanie
13aae75ad8 Prevent god users from being stopped logging into a region 2011-03-16 22:43:49 +01:00
Justin Clark-Casey (justincc)
04e3ae3733 Merge branch 'master' of ssh://opensimulator.org/var/git/opensim 2011-03-16 00:15:48 +00:00
Justin Clark-Casey (justincc)
aadd0e8d42 minor: bring comment into line with code reality 2011-03-16 00:14:58 +00:00
BlueWall
d4ed38821f Merge branch 'master' of ssh://opensimulator.org/var/git/opensim 2011-03-15 17:17:28 -04:00
BlueWall
28c335e25f Hello, World! 2011-03-15 17:16:50 -04:00
Justin Clark-Casey (justincc)
fdcf910e00 Fix a bug in T015_LargeSceneObjects() where the large scene object was stored 31 times (1 time for each added part) instead of once at the end, even though only the largest 31 prim scene object was retrieved and tested.
This considerably speeds up the test, when on sqlite it now only takes 2 seconds rather than 30+
2011-03-14 23:35:03 +00:00
Justin Clark-Casey (justincc)
38c3be07b8 when retrieving a sog in database tests, don't bother adding the scene since this isn't used 2011-03-14 23:32:44 +00:00
Justin Clark-Casey (justincc)
8509678e48 Add method doc to T015_LargeSceneObjects() and slightly clean up formatting.
This test takes a considerable time on SQLite but should remain since it's testing storage and retrieval of a scene object with 31 parts.
2011-03-14 23:26:50 +00:00
Justin Clark-Casey (justincc)
48c62eb51b Add current method output to all persistence level tests so that we can track where we are in the test suite 2011-03-14 23:17:15 +00:00
Justin Clark-Casey (justincc)
9885f68f44 When setting media on a prim values, use generic object permissions instead of media permissions.
Media permissions are just meant to be checked when we want to know if a user should be shown the navigation bar or allowed to navigate.  It should not be checked when we're setting the media up.
This bug was preventing a user from ever setting any more values if they had unchecked the owner settings.
2011-03-14 22:47:14 +00:00
Justin Clark-Casey (justincc)
2868f3fc72 Merge branch 'master' of ssh://opensimulator.org/var/git/opensim 2011-03-14 21:56:58 +00:00
Melanie
cee5e3e264 Up the timeout on slow requests to 3000 to stop console spam. Make sure
request method and target are reported correctly and drop the txn id
as it's empty 99% of the time.
2011-03-14 14:51:13 +00:00
Melanie
3dc877c59f Merge branch 'master' into careminster-presence-refactor 2011-03-14 14:48:00 +00:00
Melanie
f54ddd88a2 Up the timeout on slow requests to 3000 to stop console spam. Make sure
request method and target are reported correctly and drop the txn id
as it's empty 99% of the time.
2011-03-14 12:56:50 +01:00
Melanie
4a5560a86e Change avatar picker search to work properly when two name parts are used 2011-03-12 13:06:13 +01:00
Justin Clark-Casey (justincc)
f6f8d124d1 minor: remove mono compiler warning 2011-03-12 00:52:43 +00:00
Justin Clark-Casey (justincc)
f6b638fec9 factor inventory file loading into its own method 2011-03-12 00:49:13 +00:00
Justin Clark-Casey (justincc)
c4060e56ef factor out iar asset load code into its own method 2011-03-12 00:35:40 +00:00
Justin Clark-Casey (justincc)
a3c7c04ead refactor: make boolean load indicators on load iars instance fields 2011-03-12 00:28:23 +00:00
Justin Clark-Casey (justincc)
367ed585e0 introduce iar load checks which make sure archive.xml comes first, then inventory nodes, then assets
this is necessary for correct loading.  "save iar" always saves in this order so there shouldn't be any problems - these checks are to give better feedback to other systems that may construct IARs.
2011-03-12 00:21:52 +00:00
Justin Clark-Casey (justincc)
cb863851e0 Update/simplify test running instructions 2011-03-11 22:38:51 +00:00
Mic Bowman
836ab6b0e8 Change how map blocks are encoded to make map search
work with viewer 2.
2011-03-10 15:23:46 -08:00
Justin Clark-Casey (justincc)
ad1dea5aff Add test for simple case where creator account with appropriate uuid exists on the target system for an iar load 2011-03-10 22:56:11 +00:00
Justin Clark-Casey (justincc)
8d69e68311 refactor: rename test user account fields 2011-03-10 22:52:41 +00:00
Justin Clark-Casey (justincc)
9ecb745ed7 factor out common scene setup code in InventoryArchiveTestCase 2011-03-10 22:48:19 +00:00
Justin Clark-Casey (justincc)
66d2d35425 extend TestLoadIarV0_1AbsentCreator() to check serialized object CreatorId as well 2011-03-10 22:40:24 +00:00
Justin Clark-Casey (justincc)
ce4421497e re-enable item.CreatorId check in TestLoadIarV0_1AbsentCreator() 2011-03-10 22:38:52 +00:00
Justin Clark-Casey (justincc)
b821f748ac For objects loaded from an IAR, make sure the CreatorID points towards the OSP resolved ID if newer CreationData is not present.
This should resolve issues where the creator for rezzed objects was being shown as "Unknown user" where previous behaviour was to show the OSP resolved account.
This is being done by parsing the serialized objects and updating the CreatorID if no CreationData exists.  This operation might be expensive for sculpties where the sculpt texture is inlined with the object data.  Will just have to see.
This relies on the IAR streaming inventory data before asset data (as is currently the case).  Will need to introduce more stringent checks for file order on loading (much like JAR zips must start with the manifest file).
This is for IAR loading only.  Tests updated to check this behaviour.
2011-03-10 21:56:15 +00:00
Justin Clark-Casey (justincc)
db2ad62c9b in AssetHelpers.CreateAsset(), create objects using the 'original' xml format rather than 'xml2' 2011-03-10 19:52:19 +00:00
Justin Clark-Casey (justincc)
a151afebe3 When setting up default iar for testing, use iar archiving code rather than constructing the tar manually 2011-03-10 19:40:19 +00:00
Melanie
9165a5207d Merge branch 'master' into careminster-presence-refactor 2011-03-10 07:14:03 +00:00
Justin Clark-Casey (justincc)
4dd60b7dce Change existing users load iar test so that it fulfills it's original intention (i.e. OSPA resolution, which is still active).
Will need to write a separate test for the simplest case where creator accounts with appropriate uuids exist on iar load.
2011-03-10 00:19:17 +00:00
Justin Clark-Casey (justincc)
549b0ea17c Split the inventory path testing parts of TestLoadIarV0_1ExistingUsers() into a new test TestLoadIarToInventoryPaths() 2011-03-10 00:06:32 +00:00
Justin Clark-Casey (justincc)
fa1996155e Make the item created in the default test iar an object rather than a script 2011-03-09 23:58:26 +00:00
Justin Clark-Casey (justincc)
07f68c8318 minor: change the order of some default iar setup in test case 2011-03-09 23:54:52 +00:00
Justin Clark-Casey (justincc)
9456bb77fb Upgrade nunit.framework.dll to version 2.5.9. Fix up tests appropriately.
This version removes the NUnit.Framework.SyntaxHelpers namespace, so any modules with their own tests will need to delete this using statement.
2011-03-09 23:25:24 +00:00
Justin Clark-Casey (justincc)
20aeace8d7 Add log messages on teleport failure to better pin down the cause. 2011-03-09 22:03:12 +00:00
Justin Clark-Casey (justincc)
3e5b1a1de5 Update MySql.Data.dll to version 6.3.6.
This version fixes a bug so that MySqlCommand.CommandTimeout = 0 now correctly sets an infinite command timeout.  This might help with failures on long-running migrations.
The mysql.data.dll v2 is used from the mysql package (as opposed to v4).  The v4 version (probably standing for NET 4.0) does not work under mono 2.6.7, which is still commonly used.
2011-03-09 20:55:44 +00:00
Justin Clark-Casey (justincc)
ae507bb060 Split out path tests from InventoryArchiveTests. Factor common code into test case parent 2011-03-09 01:53:27 +00:00
Justin Clark-Casey (justincc)
2fa8fc5052 remove inventory service preserving code from SceneSetupHelpers too 2011-03-09 01:37:31 +00:00
Justin Clark-Casey (justincc)
f375a5e9cb Simplify SceneSetupHelpers class by removing all code which was originally preserving service instances between tests. This wasn't being used anyway and just leads to hard to diagnose test failures. 2011-03-09 01:31:47 +00:00
Justin Clark-Casey (justincc)
8a2360bf81 Simplify TestLoadIarV0_1AbsentUsers() to use common IAR test setup. Make static dictionaries on NullUserAccountData instance instead to stop user accounts being carried over between tests 2011-03-09 01:21:31 +00:00
Justin Clark-Casey (justincc)
743a6b0da5 Make -m shortcut option for --merge on load iar specific. Correct some log message origins. 2011-03-08 22:44:02 +00:00
Diva Canto
9923a2ff10 Pull up Assembly of the MySQL classes as a protected property, so that it can be overwritten in subclasses. That way extensions can decide in which assembly migration resources should be looked up. This is just a refactor -- no functional changes whatsoever. 2011-03-08 09:02:29 -08:00
Justin Clark-Casey (justincc)
9b345ebf73 factor out SetPartMediaFlags() function in MoapModule. 2011-03-05 02:42:47 +00:00
Justin Clark-Casey (justincc)
2e46027c14 Construct test load iar only once and reuse for each test, rather than recreating it every time 2011-03-05 02:34:44 +00:00
Justin Clark-Casey (justincc)
9e579a7891 Fold ClearMediaEntry() back into SetMediaEntry() 2011-03-05 02:21:53 +00:00
Justin Clark-Casey (justincc)
9f85ee29ac Change MoapModule.ClearMediaEntry to set TextureEntryFace.MediaFlags back to false
Implement test for ClearMediaEntry()
2011-03-05 02:18:03 +00:00
Mic Bowman
12d5a20094 Merge branch 'master' of ssh://opensimulator.org/var/git/opensim 2011-03-04 17:18:49 -08:00
Mic Bowman
3c0d607f45 Changed order of checks for local regions when processing
AgentUpdate messages. Should improve throttles and reprioritization
when an avatar is moving.
2011-03-04 17:17:53 -08:00
Justin Clark-Casey (justincc)
8efb01b3df minor: remove some mono compiler warnings 2011-03-05 01:15:27 +00:00
Justin Clark-Casey (justincc)
72cb498fd0 minor: Make MoapModule namespace consistent with other modules 2011-03-05 01:13:59 +00:00
Justin Clark-Casey (justincc)
481ca910da add test for MoapModule.SetMediaUrl() 2011-03-05 01:07:05 +00:00
Justin Clark-Casey (justincc)
3c89527b22 Fix bug where llSetPrimMediaParams() reported success but never set the media texture.
We weren't setting the TextureEntryFace.MediaFlags = true when a media texture was set directly via a script.  This was being done when the viewer was setting them directly.
2011-03-05 00:06:51 +00:00
Melanie
0719ffa6fa Change protection from being teleported home to extend to incognito gods. 2011-03-01 23:34:02 +01:00
Diva Canto
b82b0b1677 Normalizing comparison to lower case, just in case ppl set their config vars inconsistently. (maybe related to mantis #5386) 2011-03-01 09:20:50 -08:00
Sean McNamara
60989521a6 Merge git://opensimulator.org/git/opensim 2011-02-28 15:08:35 -05:00
Sean McNamara
b3c42e952f Fix small bug with remove region; update settings docs.
Our impl of IRegionModuleBase.RemoveRegion didn't remove the scene from the states map.
2011-02-28 11:54:07 -05:00
Sean McNamara
018645f9f8 First pass at busy heuristics. Compile-tested only. 2011-02-28 11:45:50 -05:00
Sean McNamara
a01c44e74d Be smarter about stopping timers. Cleanup formatting.
Use a boolean flag to tell timers that fire after IRegionModuleBase.Close() is called that they should not execute.
Also, I used MonoDevelop's auto-formatting feature to format the code uniformly. No guarantee about variable names though.
2011-02-28 11:04:54 -05:00
Melanie
cea47491de Fix a few little things 2011-02-27 19:49:23 +00:00
Melanie
9b277b372b Merge branch 'master' into careminster-presence-refactor 2011-02-27 19:47:37 +00:00
Melanie
11105d38bd Fix a few little things 2011-02-27 18:55:17 +01:00
Sean McNamara
34b6904939 First working commit of AutoBackupModule.
It seems to do something! Heuristics are still TODO, but this is alpha 1.
2011-02-26 22:09:19 -05:00
Sean McNamara
d3511ca592 Start the timer. (Could it be that simple?) 2011-02-25 09:03:11 -05:00
Sean McNamara
cb049aa15f s/True/true 2011-02-25 08:58:42 -05:00
Sean McNamara
bb1f03abc6 Make timer auto-respawn. 2011-02-25 08:57:48 -05:00
Sean McNamara
7fa8ed0c47 Config works, but timer isn't firing. Hmm. 2011-02-25 08:48:02 -05:00
Sean McNamara
2da9bb3ca2 Try to fix config one more time.
Note that the way we specify settings has changed significantly here.
2011-02-25 08:31:10 -05:00
Justin Clark-Casey (justincc)
2b04cab1ee change some log messages from info to debug 2011-02-25 02:15:06 +00:00
Justin Clark-Casey (justincc)
0f545abfc1 Make the file expiration defaults the same whether the whole [FLOTSAM ASSET CACHE] section is missing or just the particular config values 2011-02-25 01:31:38 +00:00
Justin Clark-Casey (justincc)
939c47ac52 instead of using different default memory expiration depending on whether there is a [FLOTSAM ASSET CACHE] section present at all, use the same default all the time
this simplifies the code
2011-02-25 01:25:38 +00:00
Justin Clark-Casey (justincc)
beff0ac32f log actual cache directory for FlotsamAssetCache instead of always logging the default 2011-02-25 01:18:43 +00:00
Justin Clark-Casey (justincc)
197cc3883f Fix bug where having no maximum memory cache timeout would cause the flotsam asset cache to try using Double.MaxValue, which would cause the underlying OpenMetaverse.ExpiringCache to choke.
There is probably an underlying bug to fix in ExpiringCache.
2011-02-25 01:16:47 +00:00
Justin Clark-Casey (justincc)
2f5394e70d Fix bug where avatars in other regions would not always show up on the mini-map 2011-02-24 22:33:54 +00:00
Melanie
9be1d2aef1 Merge branch 'master' into careminster-presence-refactor 2011-02-24 02:37:21 +00:00
Justin Clark-Casey (justincc)
db7c758b7f On a Grid Handler exception, explicitly log the exception message and stack trace so that we get somewhat better diagnostics on windows 2011-02-24 00:55:50 +00:00
Mic Bowman
1bb0bae78a Forces the owner of a rezzed object to be the "rezzer" of the
object rather than the owner of the inventory item. In theory,
this shouldn't happen unless you are using grid-wide library
for inventory.
2011-02-22 13:30:38 -08:00
Mic Bowman
5a16fa882c Parameterizes the view distance used to compute and manage
child agents in neighbor regions. This means you can extend
the view on a simulator beyond the default 3x3 regions.

This uses a region default draw distance and should be
replaced at some point by the avatar specified draw distance.
That will require more careful, dynamic recomputation of child
agents every time the draw distance changes.

WARNING: this is experimental and has known instabilities. specifically
all regions "within site" should be running the same default draw distance
or agents will not be closed correctly.
2011-02-22 13:23:54 -08:00
Marck
af22b7cb1a GetRegion(s)ByName with SQLite behaves like it does with other databases.
The in-memory storage of region data that is used by default with SQLite now handles wildcards in region names in the same way as SQL queries do with other databases.
2011-02-22 13:00:45 +01:00
Melanie
87e9acf714 Merge branch 'careminster-presence-refactor' of ssh://3dhosting.de/var/git/careminster into careminster-presence-refactor 2011-02-21 04:16:33 +01:00
Melanie
1a31f7b579 Allow modifying a no mod object through llGiveInventoryItem if the object
sets allowed drop. This makes breedables feasible.
2011-02-21 04:14:49 +01:00
Melanie
efd8d03c59 Prevent giving copies of no copy scripts or transferring no trans scripts
through LSL
2011-02-21 04:02:47 +01:00
Melanie
04dc43f591 Prevent attaching things you don't own from inworld. Simple solution for a
complex issue
2011-02-21 04:02:16 +01:00
Mike Rieker
86decb2aa8 throttle group notices to max of 4 threads at a time
...otherwise it can create hundreds of threads and hang
2011-02-20 15:57:57 +00:00
Sean McNamara
c2658c2f14 More relevant console messages, and maybe fix config problem 2011-02-19 23:14:43 -05:00
Sean McNamara
7eac0af559 Fix an actual bug in the timer interval calculation (minutes -> msec) 2011-02-19 23:07:54 -05:00
Sean McNamara
e5c08a553c More debug messages 2011-02-19 22:55:32 -05:00
Sean McNamara
3c9bf5c476 Fix config source stuff harder (debug console prints only; no fix yet) 2011-02-19 22:47:05 -05:00
Sean McNamara
06a4810d21 Fix config source by taking it from Initialize 2011-02-19 22:29:45 -05:00
Sean McNamara
99e8260282 Add [Modules] option for unconditionally disabling entire module globally (for easy configuration) 2011-02-19 22:08:19 -05:00
Sean McNamara
dfa63ff031 Let GetNextFile do all the string-building work for SEQUENTIAL. 2011-02-19 20:15:38 -05:00
Sean McNamara
85654f82a5 First cut of AutoBackupModule; only compile-tested so far 2011-02-19 12:25:04 -05:00
Melanie
5a78161e74 Restore heartbeat thread 2011-02-19 01:32:20 +01:00
Melanie
4834b47679 Merge branch 'master' into careminster-presence-refactor 2011-02-19 01:59:49 +00:00
Justin Clark-Casey (justincc)
9e47018cfb Remove test T020_TestMakeRootAgent() which hasn't been active for ages anyway
This test was non-viable.  Keeping inactive T021_TestCrossToNewRegion() around for now since it's still useful for reference purposes in constructing a future working test.
2011-02-19 00:14:13 +00:00
Justin Clark-Casey (justincc)
b3a1d8c7f7 Remove unused SceneSetupHelpers.DeleteObjectAsync().
Calling async code in automated tests is never a good idea - things become very fragile very quickly
2011-02-19 00:11:08 +00:00
Justin Clark-Casey (justincc)
9d668b09ca remove unused code to share services between scenes in SceneSetupHelpers - this is done differently elsewhere 2011-02-19 00:07:16 +00:00
Justin Clark-Casey (justincc)
60fe3d48ee Put some CapabilitiesModule null checks in Scene
Stop tests setting up a capabilities module by default
2011-02-18 23:50:54 +00:00
Justin Clark-Casey (justincc)
8249d77991 If GridService.GetNeighbours() could not find the region then log a warning rather than causing a null reference on the normal log line
This also extends the TestChildAgentEstablished() test to actually activate the EntityTransferModule, though the test is not yet viable
2011-02-18 23:25:59 +00:00
Justin Clark-Casey (justincc)
5c92f62941 minor: remove mono compiler warning 2011-02-18 23:10:46 +00:00
Justin Clark-Casey (justincc)
dd9efc1838 extend TestChildAgentEstablished() test slightly to put in EntityTransferModule. Not yet enabled. 2011-02-18 23:05:56 +00:00
Justin Clark-Casey (justincc)
eb699df5f6 On SceneSetupHelpers, go back to calling ScenePresence.CompleteMovement() for the last stage of AddRootAgent() instead of SP.MakeRootAgent()
Going this extra step doesn't appear to cause any test failures.
This is arguably better for test purposes, though at some stage another method may arise which does just call AddRootAgent().
2011-02-18 22:49:19 +00:00
Justin Clark-Casey (justincc)
023f953f39 remove another unused test teardown method 2011-02-18 22:25:45 +00:00
Justin Clark-Casey (justincc)
c155f57dbe remove unused test teardown method 2011-02-18 22:22:51 +00:00
Justin Clark-Casey (justincc)
c763edf56d separate attachment tests out into their own class 2011-02-18 22:20:08 +00:00
Justin Clark-Casey (justincc)
60d47836ce minor: remove mono compiler warning 2011-02-18 22:00:52 +00:00
Justin Clark-Casey (justincc)
88da253c94 Add very basic test which invokes the scene update loop once and checks the frame number.
This makes Scene.Update() match its original description of performing a single update, which also matches the semantics of SOG and ScenePresence.
2011-02-18 21:54:44 +00:00
Justin Clark-Casey (justincc)
e774679f62 minor: add method doc to a few ScenePresence methods 2011-02-18 21:19:16 +00:00
Justin Clark-Casey (justincc)
4725221435 Stop the avatar sometimes pausing for more than a second on the border when region crossing.
This restores a RemoveFromPhysicalScene() call in ScenePresence.CheckForBorderCrossing() when the agent has been placed in transit.
If we don't remove the agent from the physical scene, then the method continues to be called via ScenePresence.Update()
until the handover of the client between regions is completed.  Since this handover can take more than 1000ms (due to the 1000ms
event queue polling response from the server), this results in the avatar pausing on the border for the entire handover period.
2011-02-18 20:54:00 +00:00
Melanie
c79f79fc84 Add needed dummy to sample money 2011-02-17 18:51:43 +01:00
Marck
4f9c3c73ad Add support for new naming syntax of linked regions to osTeleportAgent and osTeleportOwner. 2011-02-17 13:47:13 +01:00
Marck
47a5d8d742 Make osTeleportOwner work in foreign regions by relaxing the restrictions on teleporting an agent. 2011-02-17 13:47:12 +01:00
Diva Canto
dd4a503a22 Merge branch 'master' of ssh://opensimulator.org/var/git/opensim 2011-02-16 09:57:43 -08:00
Diva Canto
c6f2d66eae Fix bug introduced by Query Access. The response does not come in a packaged _Result field, it comes as simple OSDMap with 2 fields in it.
Also in this commit: comment out irrelevant debug message on AuthService.
2011-02-16 09:57:12 -08:00
Marck
25265c964f Changed console command "alert" and added new command "alert-user".
This addresses Mantis #4709.
Command "alert" always sends a message to everybody; the variant "alert general" has been removed. Sending messages to one user is done with the dedicated command "alert-user".
2011-02-16 18:36:57 +01:00
Marck
5c15c5e0ff Changed default directory for storing map tile images from remote regions. 2011-02-16 18:36:40 +01:00
Diva Canto
fc84225038 XFF capitalization strikes again -- this time in the XMLRPC method. mantis #5386 2011-02-16 08:18:49 -08:00
Melanie
918c12c965 Change the QUERYACCESS method to eliminate spurious access denied messages 2011-02-16 08:06:11 +00:00
Melanie
3f93db8371 Streamline ban line processing. Remove remnants of old advisory messages.
Centralize ban checking and prepare for adding a "ban and eject" function.
2011-02-16 05:23:30 +01:00
Melanie
cfce0aa448 Change the QUERYACCESS method to eliminate spurious access denied messages 2011-02-16 05:22:05 +01:00
Melanie
ccd6e5d071 Merge branch 'master' into careminster-presence-refactor 2011-02-16 02:41:49 +00:00
Diva Canto
5d6d0aa142 Catch HttpServer exception: mantis #5381 2011-02-15 08:38:37 -08:00
BlueWall
c9d2194ecb Merge branch 'master' of /home/opensim/src/OpenSim/Core 2011-02-14 12:54:51 -05:00
BlueWall
c75e916ccf Set filter to send proper rotations for root part
This allows the root prim, alone or in a set, to send it's
	rotation. This fixes unsitting the avatar on sit-offsest
	type teleports where the sit target is in the root prim of
	a linkset.
2011-02-13 07:42:53 -08:00
Marck
19d3792278 Fix and simplify QBasedComparer.
Make parsing of qvalues independent from a system's language setting and ensure that the comparison adheres to a descending order.
2011-02-13 11:11:49 +01:00
BlueWall
6601771f81 Set filter to send proper rotations for root part
This allows the root prim, alone or in a set, to send it's
	rotation. This fixes unsitting the avatar on sit-offsest
	type teleports where the sit target is in the root prim of
	a linkset.
2011-02-13 00:30:43 -05:00
BlueWall
0d495ced4c Revert "Fix unsitting of avatar on linked sets"
This reverts commit b492f1ce99.
2011-02-13 00:29:06 -05:00
Diva Canto
c169a62f55 Typo 2011-02-12 18:05:25 -08:00
BlueWall
b492f1ce99 Fix unsitting of avatar on linked sets 2011-02-12 20:50:24 -05:00
BlueWall
c0e1742d47 Merge branch 'master' of /home/opensim/src/OpenSim/Core 2011-02-12 20:42:11 -05:00
Diva Canto
059e9eaf98 Fixed a couple of tests in the HttpServer. Not sure if this is enough. Mantis #5373 and #5384 2011-02-12 14:38:46 -08:00
Melanie
ba03e2e262 Add the country functions in the careminster API 2011-02-12 20:59:09 +01:00
Diva Canto
a8ced66e87 Improved error message on TP failure 2011-02-12 07:28:21 -08:00
Justin Clark-Casey (justincc)
9801bf03f8 minor: add comment explaining that GetRegionsByName needs to stay in TeleportAgent for its side effects. 2011-02-12 01:14:12 +00:00
Justin Clark-Casey (justincc)
03d82a5a85 Fix bug where "My estate" name was always used even if the user entered a different name on initial setup.
Turns out we had stopped saving estate settings immediately after the name change.  The scene constructor then reloade the settings and oblitereted the different name.
This code could be more efficient since there's no reason for scene to reload the settings when they are already known to be valid.
Thanks to Thoneve for the spot on this.
2011-02-12 01:08:56 +00:00
Justin Clark-Casey (justincc)
7e21c1eadf Hack in a crude temporary "estate show" command
This will show the estate for each region, along with that estate's id and the estate owner.
This is temporary because the command output might change.
This commit also converts the estate module from the old to the new region module format
2011-02-12 00:46:01 +00:00
Justin Clark-Casey (justincc)
26727ee044 refactor: split out estate management commands into separate class 2011-02-11 23:32:38 +00:00
Justin Clark-Casey (justincc)
754c244f46 In SQLiteSimulationData.RemoveLandObject(), don't manually remove the row from the data adaptor's Rows list in addition to calling Delete.
This matches the behaviour for other deletions and stops this operation failing on Windows .NET (though mono is fine with the duplication).
Probably a holdover from copying code from the older legacy adaptor.
Resolves http://opensimulator.org/mantis/view.php?id=5361
2011-02-11 23:06:14 +00:00
Melanie
413f0c6848 Merge branch 'careminster-presence-refactor' of ssh://3dhosting.de/var/git/careminster into careminster-presence-refactor 2011-02-11 23:53:52 +01:00
Melanie
e2762a68b3 Merge branch 'master' into careminster-presence-refactor 2011-02-12 00:42:10 +00:00
Justin Clark-Casey (justincc)
98af0db8c0 minor: Add some more information to the mesh_sculpted_prim [PHYSICS] setting 2011-02-11 22:16:53 +00:00
Justin Clark-Casey (justincc)
8fd58aa00c add estate name to show regions console command 2011-02-11 22:10:02 +00:00
Diva Canto
45382e6f82 Reinstated a couple of null checks related to the previous revert. 2011-02-10 06:26:26 -08:00
Diva Canto
89bb5c0941 Revert "Hunting down mantis #5365"
This reverts commit ebeef02fef.
2011-02-10 06:09:04 -08:00
Diva Canto
21715396fa Put the Ack of UseCircuitCode back to where it used to be. Some ppl are reporting login issues. 2011-02-09 17:45:19 -08:00
BlueWall
0f736e5601 Merge branch 'master' of /home/opensim/src/OpenSim/Core 2011-02-09 14:45:40 -05:00
Diva Canto
f33e51e2ff Comment instrumentation out. Not needed anymore. Left in comments, in case it is needed again. Mantis #5365 2011-02-09 09:50:26 -08:00
Diva Canto
1cd951e5ae Fix the negative number problem in TokenBucket. mantis #5365 2011-02-09 09:39:53 -08:00
Diva Canto
830fee145d Revert "Brute-force debug -- mantis #5365"
This reverts commit 585473aade.
2011-02-09 08:35:36 -08:00
Diva Canto
1bba9c6300 Revert "Don't build strings unless we're in emergency debugging."
This reverts commit ba202ea9b0.
2011-02-09 08:35:21 -08:00
Diva Canto
477a869fb2 More detection of negatives. 2011-02-09 08:08:57 -08:00
Diva Canto
473fac4dc7 Detect negative dripAmounts in TokenBuckets. These negatives result from overflown integer operations. Also added Total to the scene throttles in show throttles. 2011-02-09 08:06:20 -08:00
Diva Canto
ba202ea9b0 Don't build strings unless we're in emergency debugging. 2011-02-08 21:09:10 -08:00
Diva Canto
585473aade Brute-force debug -- mantis #5365 2011-02-08 20:12:33 -08:00
Diva Canto
117462cba1 Avoid potential race conditions on UseCircuitCode. I artificially made the race condition happen, and got very similar results to those described in mantis #5365 -- no prims/avie sent back. 2011-02-08 17:53:01 -08:00
Diva Canto
f431bd20ec Minor addition to the previous commit 2011-02-08 14:49:50 -08:00
Diva Canto
82846afe4b Minor improvement to previous commit. 2011-02-08 12:37:37 -08:00
Melanie
f62cb1fcbe Temp fix (or is it a fox?) for map weirdness 2011-02-08 21:13:31 +01:00
Diva Canto
ac7bc78555 Added emergency monitoring of UDP Outgoing packets thread. Just type "emergency-monitoring on/off" 2011-02-08 12:06:14 -08:00
Diva Canto
34bd41d186 Comment previous debug 2011-02-08 11:16:38 -08:00
Diva Canto
305c755cfb XFF header again -- debug. 2011-02-08 07:50:01 -08:00
Diva Canto
d627122cdc Mantis #5368 -- exception on WorldMap 2011-02-07 19:44:55 -08:00
Diva Canto
d934add021 Thanks Tokeiito for noticing this bug. mantis #5366 2011-02-07 14:49:18 -08:00
Melanie
8c20f94939 Merge branch 'careminster-presence-refactor' of ssh://3dhosting.de/var/git/careminster into careminster-presence-refactor 2011-02-07 22:26:09 +01:00
Melanie
076f2ac8db Merge branch 'master' into careminster-presence-refactor 2011-02-07 23:07:36 +00:00
Melanie
6becaf65e1 Fix merge issues 2011-02-07 22:28:59 +00:00
Melanie
3889e68c54 Merge branch 'master' into careminster-presence-refactor
Conflicts:
	OpenSim/Region/CoreModules/Avatar/Inventory/Archiver/InventoryArchiverModule.cs
	OpenSim/Region/ScriptEngine/Shared/Api/Implementation/LSL_Api.cs
	OpenSim/Server/Handlers/Simulation/AgentHandlers.cs
	OpenSim/Services/Connectors/SimianGrid/SimianGridMaptileModule.cs
	OpenSim/Services/GridService/HypergridLinker.cs
2011-02-07 22:08:53 +00:00
Melanie
e8ba3d3a10 Prevent a nonexistent inventory item from throwing an exception 2011-02-07 22:25:43 +01:00
Diva Canto
ebeef02fef Hunting down mantis #5365
Revert "refactor: remove redundant null checks"

This reverts commit 6e58996b4d.
2011-02-07 07:45:03 -08:00
Diva Canto
98ea78fc77 New command: show pending-objects 2011-02-06 19:39:29 -08:00
Diva Canto
2c7e87c45b Better output for show neighbours 2011-02-06 07:51:20 -08:00
Diva Canto
3411d4867d Honor check of m_Enabled in WorldViewModule. 2011-02-05 19:40:55 -08:00
Diva Canto
cc81d924ca Fixed Caps handlers leak 2011-02-05 19:34:02 -08:00
Diva Canto
30fa5ad1e2 One more diagnosis command:
show caps
2011-02-05 19:21:12 -08:00
Diva Canto
b20ab1063f Added a couple of console commands to help diagnose issues:
show circuits: shows the lists of agent circuit data
show http-handlers: shows the currently registered http handlers
2011-02-05 17:57:30 -08:00
Diva Canto
3a2a48a8ca Add sane packing of ServiceURLs -- OSDMap. The old way (OSDArray) is still supported for backwards compatibility, but will be removed in the future. 2011-02-05 08:20:13 -08:00
Diva Canto
67555994ad Amend to yesterday's deletions: forgot to delete the RemoteInventory module in th addin.xml file. 2011-02-05 07:55:54 -08:00
Melanie
f78831ec98 Merge branch 'master' of melanie@opensimulator.org:/var/git/opensim 2011-02-05 04:25:14 +00:00
Melanie
4e0b0f0f4c Fix a typo in the QUERYACCESS method name 2011-02-05 04:24:43 +00:00
Diva Canto
632babf8fb Added an additional debug message, and removed a bunch of files that weren't being used anymore -- the old RemotsInventory connectors stuff. 2011-02-04 19:19:38 -08:00
Diva Canto
f5a3eb9fd5 Added a config var to HGInventoryAccessModule called OutboundPermission that controls whether the sim lets asset POSTs happen to foreign grids or not. It's True by default. If ppl want to allow foreign visitors but don't want to allow any assets out of their grid, they should set this to False. This is the beginning of policies for these things... 2011-02-04 17:05:45 -08:00
Justin Clark-Casey (justincc)
cdd64bb8f5 For now, reinstate the call to World.GridService.GetRegionsByName() commented out in 933f47e
Even though we don't use the results, just getting the regions may have side effects in making hypergrid links available for the later World.RequestTeleportLocation()
2011-02-05 00:15:25 +00:00
Justin Clark-Casey (justincc)
1ffd70cef7 minor: remove some mono compiler warnings 2011-02-04 23:20:10 +00:00
Justin Clark-Casey (justincc)
5b7a5a5b8b Add position to IM sent from llInstantMessage(), to better fulfill client expectations 2011-02-04 23:14:21 +00:00
Justin Clark-Casey (justincc)
a51005aacd Merge branch 'master' of ssh://opensimulator.org/var/git/opensim 2011-02-04 23:08:27 +00:00
Justin Clark-Casey (justincc)
722f0ba18c Put something in the ImprovedInstantMessage.BinaryBucket for llInstantMessage() to stop this crashing viewer 2.4.0 (1.23.5 was fine with this).
We're putting in a string of format "<region name><x pos floor int><y pos floor int><z pos floor int> which appears to be the expected value.
This resolves http://opensimulator.org/mantis/view.php?id=5356
2011-02-04 23:07:47 +00:00
Mic Bowman
bb69a40fbb Merge branch 'master' of ssh://opensimulator.org/var/git/opensim 2011-02-04 14:22:17 -08:00
Mic Bowman
7a6e1fa4cf Convert SimianMaptile refresh time from ms to seconds. Too many 0's
in the config file.
2011-02-04 14:21:18 -08:00
Justin Clark-Casey (justincc)
bc2e254b55 minor: fix indentation, spacing on commit 3585130
this previous commit tries to look up the texture by name first before just using the uuid.
this allows correct resolution of inventory textures which have uuids as names.
2011-02-04 21:55:22 +00:00
unknown
3585130ac8 SetTexture_fix 2011-02-04 21:52:06 +00:00
Justin Clark-Casey (justincc)
456cdee5ce minor: correct a log spelling mistake that was pointed out to me 2011-02-04 21:42:45 +00:00
Justin Clark-Casey (justincc)
2ddec29c61 Merge branch 'master' of ssh://opensimulator.org/var/git/opensim 2011-02-04 21:15:41 +00:00
Diva Canto
144f367863 Bug fixed on map search for HG. Affected queries that had a region name at the end. 2011-02-04 12:57:22 -08:00
Kevin Cozens
034327b51f Send object date to viewer in microseconds (Fixes mantis bug #3990) 2011-02-04 20:55:41 +00:00
Justin Clark-Casey (justincc)
1613d89383 minor: Correct misspelling of neighbour in log messages.
Thanks Fly-Man-
2011-02-04 20:51:51 +00:00
Kitto Flora
511b12db6b Merge branch 'careminster-presence-refactor' of ssh://3dhosting.de/var/git/careminster into careminster-presence-refactor 2011-02-04 17:32:31 +00:00
Kitto Flora
b6dda231f2 Corrections for Avatar Auto-pilot target; add llStopMoveToTarget() for Avatar-attached. 2011-02-04 17:31:52 +00:00
Justin Clark-Casey (justincc)
ba8826d2b8 Fix "set log level" to once again display current log level if it's not given a parameter
This addresses http://opensimulator.org/mantis/view.php?id=5345
2011-02-04 17:11:35 +00:00
Tom
9a9c9644ac Repair x-query-string 2011-02-03 17:25:55 -08:00
Justin Clark-Casey (justincc)
c1665cfe9c Make UUID 3a367d1c-bef1-6d43-7595-e88c1e3aadb3 reference a full alpha texture.
SL's viewer and some downstream projects assume that this UUID points to a full alpha texture, as per
http://opensimulator.org/mantis/bug_view_advanced_page.php?bug_id=4751 and
http://forums.kokuaviewer.org/viewtopic.php?f=8&t=1323

If the request isn't satified, some viewers will continuously make the request.
2011-02-03 22:34:10 +00:00
Mic Bowman
cf24069227 Change UpdateAgent (for changes in agent position) to be sent
once to each simulator rather than once to each region. This
should help with some of the delays caused by multiple outstanding
requests to a single service point.
2011-02-03 12:43:46 -08:00
Diva Canto
8fdc810a23 Addresses mantis #5360: CreatorData was being written as long as it wasn't null. This made iars backwards incompatible when some items had non-null foreign creators. This patch adds an explicit option (-c) to preserve foreign creator information. 2011-02-03 04:07:36 -08:00
Melanie
595891409c Add another flag 2011-02-02 21:45:37 +01:00
Justin Clark-Casey (justincc)
4f7cf491e6 Comment out texture CAPS 'texture not found' message for now 2011-02-02 20:02:10 +00:00
Justin Clark-Casey (justincc)
2413e9eb3f Record number of resent packets in LindenUDP stack and display in stats report 2011-02-02 20:00:50 +00:00
Justin Clark-Casey (justincc)
2344150b6e Stop double counting dequeued packets for packets sent number
This is already being incremented in LLUDPServer.SendPacketFinal for every packet
2011-02-02 19:39:33 +00:00
Melanie
722ae4f031 Add a missing constand and fix ToDoubleList to not eat the last memeber 2011-02-02 20:22:03 +01:00
Melanie
4a56038d11 Change the timeout on WebUtil to 20s to help make more tps succeed 2011-02-02 03:28:47 +01:00
Melanie
ba39d9f0e6 Squash a nullref 2011-02-02 03:10:39 +01:00
Tom
e5ef993f2b Fix cm/15627 : Don't block the entire URL on duplicate requests, just that particular request! 2011-01-31 18:01:53 -08:00
Justin Clark-Casey (justincc)
0898be5750 Change SimianGroupsServicesConnectorModule.GetAgentGroupMembership() so that it returns null if the user isn't a member of the group.
This matches the behaviour of the same method for Flotsam Groups.  This is the behaviour assumed by existing code.
Method doc also added to IGroupsServicesConnector to the make the contract clear.
2011-01-31 22:54:36 +00:00
Tom
35d29ef3e3 If llHTTPRequest results in an error, still attempt to get the response text. If we can't (which implies the server is unreachable), return the StatusDescription as before. 2011-01-29 19:38:05 -08:00
Tom
a2d51f0ff4 Merge branch 'careminster-presence-refactor' of ssh://3dhosting.de/var/git/careminster into careminster-presence-refactor 2011-01-29 12:46:47 -08:00
Tom
188bdfc878 Ignore duplicate llHTTPResponse calls to the same request. Prevents response corruption. Only the first llHTTPResponse call is obeyed, akin to SL. 2011-01-29 12:45:53 -08:00
Melanie
c14acf8a06 Adapt to CM 2011-01-29 04:51:11 +00:00
Melanie
24a768a99b Merge branch 'master' into careminster-presence-refactor 2011-01-29 04:47:32 +00:00
Melanie
8f008f394d Flash out the prim count module 2011-01-29 04:27:20 +00:00
Melanie
e7d5ff9bd2 Create the structure of classes and interfaces to replace the cruft that
is in the land management module today
2011-01-29 02:24:27 +00:00
Tom
87ed39c953 Significantly increase the total number of URL's available. In second life, the limit is 15,000 URL's (one per prim), so i'd hope we can manage 1k. 2011-01-28 16:51:35 -08:00
Melanie
0936455725 Adding the prim count module skeleton 2011-01-28 23:44:17 +00:00
Melanie
38bfdb0c9d Merge branch 'master' of melanie@opensimulator.org:/var/git/opensim 2011-01-28 23:22:16 +00:00
Melanie
5942385d0e Add the prim count interfaces 2011-01-28 23:21:41 +00:00
Justin Clark-Casey (justincc)
933f47e89d Comment out unused call to GridService in TeleportAgent() 2011-01-28 22:59:07 +00:00
Justin Clark-Casey (justincc)
a4acf485d7 minor: don't bother reparsing the sources for includes if ReadConfig() was unsuccessful 2011-01-28 22:50:49 +00:00
Justin Clark-Casey (justincc)
1fcb919798 If a non-globbed included file from config cannot be found then warn the user 2011-01-28 22:46:29 +00:00
Justin Clark-Casey (justincc)
810f4b9835 Add groups cache timeout setting for Flotsam Groups back to OpenSimDefaults.ini 2011-01-28 22:07:35 +00:00
Justin Clark-Casey (justincc)
ab1ec3c3cc minor: remove a few mono compiler warnings 2011-01-28 21:51:25 +00:00
Tom
13d4fedf7a Fix a discrepancy vs. SL with parsing x-query-string 2011-01-28 13:45:27 -08:00
Kevin Cozens
a0380af18f Display supported file extensions/formats in "terrain load help" (Mantis #5349) 2011-01-28 21:24:05 +00:00
Kevin Cozens
9798b044fe Added loading and saving of terrain files using Terragen format (Mantis #1564)
Terrain files can now be loaded and saved using the Terragen (.ter) format.
Selection of the terrain file loader to use is now based on the extension
of the filename being loaded and the data is loaded using a memory stream
instead of writing it to a file and then loading it from the file.
2011-01-28 21:19:53 +00:00
Tom
ffbfc14689 Make llRequestAgentData shout an error instead of crashing the script when an invalid UUID is passed to it. 2011-01-28 09:55:46 -08:00
Melanie
ab48caad08 Make the new style stuff compatible with the older revision 2011-01-28 05:25:53 +00:00
Melanie
188d86998d Fix up QueryAccess to also check parcels 2011-01-28 04:09:04 +00:00
Melanie
d91ee131b9 Make the new style stuff compatible with the older revision 2011-01-28 04:31:21 +01:00
Melanie
3bce53b6e6 Merge branch 'careminster-presence-refactor' of ssh://3dhosting.de/var/git/careminster into careminster-presence-refactor 2011-01-28 04:05:49 +01:00
Kitto Flora
eb3a4c2477 Merge branch 'careminster-presence-refactor' of ssh://3dhosting.de/var/git/careminster into careminster-presence-refactor 2011-01-28 04:36:20 +00:00
Kitto Flora
9abaac4d60 Correct chat source location for Av seated on daughter prim. 2011-01-28 04:35:43 +00:00
Melanie
1b2deb5b77 Merge branch 'master' into careminster-presence-refactor 2011-01-28 04:09:38 +00:00
Melanie
0ea8046545 Change the way ban lines are handled. Remove a lot of useless stuff designed
to physically move the avatar and instead just re-set the position. Ban lines
now work fully.
2011-01-28 04:04:30 +01:00
Melanie
d90b0c53ec Fix bumping into sim borders and check estate bans for walking crossings 2011-01-28 02:38:14 +00:00
Melanie
3834000778 Change the way ban lines work 2011-01-28 03:35:59 +01:00
Melanie
80bf95b7b4 Merge branch 'master' of melanie@opensimulator.org:/var/git/opensim 2011-01-28 02:34:45 +00:00
Melanie
5a0cb7d37e Thank you, Goetz, for a patch to fix prim count display in cut regions. 2011-01-28 02:34:07 +00:00
Melanie
657c14c5db Fix up QueryAccess to also check parcels 2011-01-28 03:07:25 +01:00
Melanie
566eff17de Comment a very spammy debug message that was being output directly to console.
My last fox that makes bumping into sim borders/bans work makes this spam
endlessly.
2011-01-28 01:46:30 +01:00
Melanie
878d458d9f Merge branch 'master' into careminster-presence-refactor 2011-01-28 02:39:15 +00:00
Melanie
57bf5d9b2a Merge branch 'careminster-presence-refactor' of ssh://melanie@3dhosting.de/var/git/careminster into careminster-presence-refactor 2011-01-28 02:37:59 +00:00
Melanie
3f200da878 Merge branch 'master' into careminster-presence-refactor 2011-01-28 02:36:20 +00:00
Melanie
7492131bb6 Fix bumping into sim borders and check estate bans for walking crossings 2011-01-28 01:37:37 +01:00
Justin Clark-Casey (justincc)
f9ea5e69c5 Refactor: Break out LoadObjects() and LoadParcels() from a longer method 2011-01-27 21:07:21 +00:00
Justin Clark-Casey (justincc)
19e4473a97 Put confirmation on "land clear" command to avoid nasty accidents 2011-01-27 20:57:59 +00:00
Melanie
3435816541 Merge branch 'master' into careminster-presence-refactor 2011-01-27 20:54:02 +00:00
Justin Clark-Casey (justincc)
be3685b1a2 When an oar is loaded, do not create a default parcel before loading the parcels from the OAR.
The region spanning parcel shouldn't exist in this situation.  If it does, when the land data is loaded it is repersisted with a local ID which comes after the ones loaded via the oar, which obliterates the oar loaded one.

Resaving the data we just loaded from the database is somewhat odd in itself (though this makes sense from the way that OAR loading was already using the same event).
2011-01-27 20:36:50 +00:00
Justin Clark-Casey (justincc)
42c0dbf49a Show local IDs in "land show" output.
Also properly insert region name in "land clear" command
2011-01-27 20:11:30 +00:00
Justin Clark-Casey (justincc)
ab9a0f2f1d Add "land clear" command
This clears all parcels from the currently selected region and replaces them with the single region spanning default parcel owned by the estate owner
2011-01-27 19:37:20 +00:00
Justin Clark-Casey (justincc)
5a26dc2743 Fix OAR parcel loading so that old parcels are replaced by the new instead of merged.
The --merge switch will still merge the old and new land parcelling.
2011-01-27 18:48:48 +00:00
Justin Clark-Casey (justincc)
e33cb3db93 remove unused CreateBaseLand() 2011-01-27 16:50:41 +00:00
BlueWall
d89d9d1b13 Merge branch 'master' of /home/opensim/src/OpenSim/Core 2011-01-27 08:53:57 -05:00
Melanie
b0f641fa15 Make it work 2011-01-27 06:41:07 +00:00
Melanie
b13eac9996 Make the estate setting "Allow direct teleport" override the constraint
of local tepeports to landing points like it is meant to
2011-01-27 07:07:33 +01:00
Melanie
2a9e712cb4 Let gods TP in wherever they like while in god mode 2011-01-27 07:03:43 +01:00
Melanie
8568c6a7c0 Implement "Cannot teleport closer to destination" message 2011-01-27 06:57:54 +01:00
Melanie
1143e022b4 Make landing points work on local teleports. Constrain owners and gods to
landing points when coming from off sim (matches agni) to prevent landing
in floors or other prims.
2011-01-27 06:45:53 +01:00
Melanie
17801bd78b Add a TeleportFlags member to SP so we can tell how we got there. 2011-01-27 05:33:46 +00:00
Melanie
adb341e32f Also set Godlike flag. Might be useful 2011-01-27 05:33:01 +00:00
Melanie
61b67b2ead Add TeleportFlags.ViaRegionID to the flags sent on login when the region
was entered by hand to determine whether or not to honor the landing
point
2011-01-27 05:32:54 +00:00
Melanie
eca82d90c2 Change the way landing points are honored 2011-01-27 06:04:56 +01:00
Melanie
d894007920 Make it work 2011-01-27 05:46:31 +01:00
Melanie
0e76f2f64e Merge branch 'master' into careminster-presence-refactor 2011-01-27 05:38:12 +00:00
Melanie
4cc8d84281 Fix build break 2011-01-27 05:30:39 +00:00
Melanie
42c22f41dd Merge branch 'master' into careminster-presence-refactor 2011-01-27 05:18:28 +00:00
Melanie
c43b892f3a Add a TeleportFlags member to SP so we can tell how we got there. 2011-01-27 04:14:41 +01:00
Melanie
1f19bd5f90 Also set Godlike flag. Might be useful 2011-01-27 03:54:41 +01:00
Melanie
3b8b606eeb Add TeleportFlags.ViaRegionID to the flags sent on login when the region
was entered by hand to determine whether or not to honor the landing
point
2011-01-27 03:49:32 +01:00
Melanie
0e1d28a862 Clear user account cache before checking flags on login. This will make AV
and other bannable flags work in this case.
2011-01-27 03:05:33 +01:00
Melanie
dd1980c24c Add an interface for a region's user account cache 2011-01-27 02:58:14 +01:00
Melanie
307a2c61ef Fix merge artifacts 2011-01-27 02:43:52 +01:00
Melanie
3321f9d745 Merge branch 'careminster-presence-refactor' of ssh://3dhosting.de/var/git/careminster into careminster-presence-refactor 2011-01-27 02:29:10 +01:00
Melanie
11c742a5a8 Make bans work for teleport. Now teleport will complete block if the user
is not allowed on the estate. If the user is allowed on no parcel, the
teleport will also be blocked. If the user is allowed on a parcel, but
not the desired one, the user will be shifted to the closest allowed
location.
2011-01-27 02:16:41 +01:00
Tom
31fb448cfc Mostly revert the last commit with the aim of searching for a better solution 2011-01-26 17:06:17 -08:00
Tom
6b27587bc7 Add a "useCached" parameter to GetUserAccount. Add a function to Scene to get the user flags. It has to be here due to access restrictions :/ 2011-01-26 16:25:08 -08:00
Tom
3ecf712e4d Add userFlags check to isBanned. This checks bans against DenyAnonymous and DenyMinors. Note that the ban doesn't actually work yet due to some stuff mel's working on . 2011-01-26 14:20:39 -08:00
Mic Bowman
2bab8e5538 Merge branch 'master' of ssh://opensimulator.org/var/git/opensim 2011-01-26 13:35:21 -08:00
Mic Bowman
240c0eaf1d Remove the RestorePresences functions (which don't seem to be doing
anything) and clean up the code in AddNewClient (so Appearance only
gets assigned once, not three times).
2011-01-26 13:33:34 -08:00
Justin Clark-Casey (justincc)
8eb2789ae1 Add some comments on ILandObject.StartPoint and EndPoint 2011-01-26 21:19:22 +00:00
Justin Clark-Casey (justincc)
a0469daf75 Implement command "land show". This shows all the parcels on the currently selected region/s
This is useful for diagnostics.  The command is "land show" rather than "show land" because it's implemented as a module specific subcommand.
2011-01-26 21:12:41 +00:00
Tom
04c62c4959 Revert my previous SHA1 commit in favour of a better implementation 2011-01-26 12:54:12 -08:00
Tom
63dcd44e87 Provide an SL compatible llMD5String function across all platforms 2011-01-26 12:47:43 -08:00
Tom
4d3696d658 Make llSHA1Hash SL compatible when using characters like the euro symbol (€) 2011-01-26 12:40:33 -08:00
Mic Bowman
c4727645b8 Removed a few more spurious appearance saves. When an avatar
enters a region the attachments module tries to update the
appearance with attachments that are already part of the appearance.
Just added a check to only save if the attachments weren't there
before.
2011-01-25 14:23:58 -08:00
Melanie
3c075aaf46 Reproduce a corner case behavior for llListReplaceList 2011-01-25 16:19:29 +01:00
Melanie
b91c99b596 Fix script data not being reset as it should be 2011-01-24 03:07:01 +00:00
Melanie
aa6c097cca Complete country support 2011-01-24 03:08:00 +01:00
Melanie
3d098bf27d Merge branch 'master' into careminster-presence-refactor 2011-01-24 03:08:47 +00:00
Melanie
649d9ef934 Fix script data not being reset as it should be 2011-01-24 02:20:54 +01:00
Melanie
dbbf43663e Add a careminster API to scripting again 2011-01-24 02:16:28 +01:00
Melanie
105deab601 Merge branch 'master' into careminster-presence-refactor 2011-01-23 23:29:25 +00:00
Diva Canto
cc39d0bf4e Fixes mantis #5343 2011-01-23 14:47:58 -08:00
Melanie
17787e7c87 Completely nixing flags from the client causes wearables to break. Fix it
so we let the lowest byte through.
2011-01-22 19:00:46 +01:00
Justin Clark-Casey (justincc)
a32381cb9b stop extremely old region serialization commands from appearing in the console
as far as I know these are unused and unsupported.  Please re-enable if this is not the case.  This does not effect save-xml[2]/load-xml[2]
2011-01-22 00:27:34 +00:00
Justin Clark-Casey (justincc)
cb14e1d272 Update the "config get <section> <key>" command to "config get [<section>] [<key>]"
The config get command shows a current config value on the console.
Now, if <key> is omitted then all the values for the given section are printed.
If <section> is ommitted then all sections and all keys are printed.
Current config can also be dumped to a file using "config save <path>".  This can be handy for resolving or eliminating config issues
2011-01-21 23:59:55 +00:00
Justin Clark-Casey (justincc)
41105948bd remove some mono compiler warnings 2011-01-21 23:19:52 +00:00
Justin Clark-Casey (justincc)
e44ceaaea3 make "show info" and "show version" show the same version text 2011-01-21 23:07:19 +00:00
Justin Clark-Casey (justincc)
43f948d691 add current console log level to "show info" 2011-01-21 23:05:53 +00:00
Justin Clark-Casey (justincc)
bf5ec8cb88 remove some mono compiler warnings and unnecessary dictionary instantiations 2011-01-21 22:51:52 +00:00
Justin Clark-Casey (justincc)
5f3f7c3405 minor: remove unnecessary newline from "show throttles" information 2011-01-21 22:48:49 +00:00
Justin Clark-Casey (justincc)
6ef7ea454c Remove old 2 year unused linden stack region module shell 2011-01-21 22:48:04 +00:00
Justin Clark-Casey (justincc)
9971fdbcd5 properly format "show throttles" table 2011-01-21 22:31:46 +00:00
Justin Clark-Casey (justincc)
38debbc59f crudely refactor table generation code for "show queues" and "show throttles" 2011-01-21 00:56:37 +00:00
Justin Clark-Casey (justincc)
c383dbd06d implement "show throttles" command for showing current agent throttles and the server settings.
This is in a very crude state, currently.
The LindenUDPModule was renamed LindenUDPInfoModule and moved to OptionalModules
OptionalModules was given a direct reference to OpenSim.Region.ClientStack.LindenUDP so that it can inspect specific LindenUDP settings without having to generalize those to all client views (some of which may have no concept of the settings involved).
This might be ess messy if OpenSim.Region.ClientStack.LindenUDP were a region module instead, like MXP, IRC and NPC
2011-01-21 00:38:16 +00:00
Justin Clark-Casey (justincc)
58eb6b5fa3 minor: help text adjustment for "show queues" 2011-01-20 23:22:45 +00:00
Justin Clark-Casey (justincc)
df740d8e5c remove reference to CoreModules from ClientStack.LindenUDP
client stack uses modules in the same way that scene does - through their interfaces
2011-01-20 23:21:25 +00:00
Justin Clark-Casey (justincc)
1baf63dbae Move "show queues" command out of OpenSim.cs and into a separate module. 2011-01-20 22:57:12 +00:00
Justin Clark-Casey (justincc)
f50780f4c2 remove unimplemented "show assets" command 2011-01-20 21:56:48 +00:00
Justin Clark-Casey (justincc)
b0aebc6f3d minor: make "show info" help slightly clearer 2011-01-20 21:41:48 +00:00
Kitto Flora
b92673c1c9 Merge branch 'careminster-presence-refactor' of ssh://3dhosting.de/var/git/careminster into careminster-presence-refactor 2011-01-20 06:52:10 +00:00
Kitto Flora
bfa5b7850c Fix drift of static prim. 2011-01-20 06:51:50 +00:00
Justin Clark-Casey (justincc)
d3dca7d25a For now, comment out logging messages about IM sending, since these cause high spam for large group messaging 2011-01-19 01:50:02 +00:00
Justin Clark-Casey (justincc)
28fda1cab6 with mic's permission, reduce appearance, baked texture logging verbosity for now 2011-01-19 01:41:32 +00:00
Justin Clark-Casey (justincc)
a42faca5b9 With mic's permission, adjust long call time info messages to 500ms from 200ms 2011-01-19 01:13:10 +00:00
Justin Clark-Casey (justincc)
97c0430093 Downgrade and comment out some other caps messages for now 2011-01-19 01:10:09 +00:00
Justin Clark-Casey (justincc)
7f000ea88e Correct "show queues" to show queued packet numbers for each client instead of bytes.
Byte amounts aren't actually available - this was a misunderstanding of TokenBucket.Content.  But raw packet numbers are.
2011-01-19 00:33:25 +00:00
Melanie
f3968c4959 Merge branch 'master' into careminster-presence-refactor 2011-01-18 06:18:10 +00:00
Melanie
9f7b37b37c Fix build break 2011-01-18 01:48:37 +00:00
Melanie
06e225bc0b Also fix MySQLXInventoryData 2011-01-18 01:31:14 +00:00
Melanie
6306578fcf Merge branch 'master' into careminster-presence-refactor 2011-01-18 01:28:50 +00:00
Melanie
ac16a49ca0 Merge branch 'master' of melanie@opensimulator.org:/var/git/opensim 2011-01-18 01:27:11 +00:00
Diva Canto
f73c90c633 Put the 'new' back to avoid a warning. Yes, we want to hide it. 2011-01-17 17:52:03 -08:00
Diva Canto
a07375a7ae Merge branch 'master' of ssh://opensimulator.org/var/git/opensim 2011-01-17 17:41:06 -08:00
Diva Canto
c98d1cffe2 Removed the call to sceneViewer.Reset upon MakeRoot and ChildAgentUpdate, because Reset hangs for a long time waiting for the lock. That is a problem in itself -- that long holding of the lock by some thread -- but let's just avoid it altogether. 2011-01-17 17:40:48 -08:00
Melanie
2126d12ab8 Merge branch 'master' into careminster-presence-refactor 2011-01-18 01:26:53 +00:00
Melanie
75644e0f6e Prevent activation and deactivation of gestures from clobbering the slam
bits
2011-01-18 01:26:42 +00:00
Melanie
31144a62b3 Change gesture activation to not quash any other flags 2011-01-18 01:26:37 +00:00
Melanie
2463f5451c Merge branch 'master' into careminster-presence-refactor 2011-01-18 01:26:03 +00:00
dahlia
624bf23abb force objectId to UUID.Zero for non-overridden animations in AvatarAnimation packet 2011-01-17 16:39:53 -08:00
Justin Clark-Casey (justincc)
3083c517a0 minor: resolve some mono compiler warnings 2011-01-18 00:29:10 +00:00
Justin Clark-Casey (justincc)
c544f0d0c5 Prune some of the excess logging for client logins.
Didn't touch the appearance related stuff.
2011-01-18 00:25:24 +00:00
Justin Clark-Casey (justincc)
523628dca3 minor: remove mono compiler warnings 2011-01-18 00:14:58 +00:00
Justin Clark-Casey (justincc)
8233ef25ba Reduce amount of debug lopgging put out by some simiangrid connectors. Please re-enable if needed. 2011-01-18 00:10:34 +00:00
Justin Clark-Casey (justincc)
6e58996b4d refactor: remove redundant null checks 2011-01-17 23:57:50 +00:00
Melanie
4f8ba53f86 Prevent activation and deactivation of gestures from clobbering the slam
bits
2011-01-18 00:55:08 +01:00
Justin Clark-Casey (justincc)
81552099d6 Fix UnackedBytes client stack statistic as seen in "show queues"
Bytes were being wrongly added again on a resend
2011-01-17 23:45:25 +00:00
Diva Canto
37837850d3 Merge branch 'master' of ssh://opensimulator.org/var/git/opensim 2011-01-17 13:12:46 -08:00
dahlia
aecaadd3bd objectId in AvatarAnimation packet should be UUID.Zero for non-overridden animations 2011-01-17 13:10:09 -08:00
Diva Canto
4bcee1dfb4 Revert "DEBUG DEBUG DEBUG"
This reverts commit 59c2cd04ba.
2011-01-17 13:07:02 -08:00
Diva Canto
59c2cd04ba DEBUG DEBUG DEBUG 2011-01-17 12:35:19 -08:00
Melanie
ddb4de139c Change gesture activation to not quash any other flags 2011-01-17 21:22:32 +01:00
Diva Canto
5e35651efc Protect World Map module, RequestMapItemsAsync, from badly formed URLs. 2011-01-17 11:45:13 -08:00
Diva Canto
479d72ac97 Account for some component along the way lower-casing the HTTP header keys. (XFF header issue) 2011-01-17 11:37:39 -08:00
Diva Canto
0aeb8981b2 Brute force debug for XFF issue 2011-01-17 11:19:20 -08:00
Diva Canto
66f99ae267 More debug messages to help track the XFF header problem. 2011-01-17 11:03:46 -08:00
Melanie
76f39d326e Add a new ViewObjectInventory permission to decouple viewing from
+MOD status
2011-01-14 18:26:41 +01:00
Melanie
8074c6ace1 Revert "Replace the new, tricky MySql.Data.dll with the older version from 0.6.9"
This reverts commit e5ce59ff34.

The old module causes a truly massive (double!) rise in connections. Please
put "old guids=true;" back in after this commit
2011-01-14 14:54:28 +01:00
Melanie
d60ddfdfcb Revert "Remove old guids from the examples, for completeness' sake"
This reverts commit 52222d82d5.
2011-01-14 14:54:14 +01:00
Melanie
30320077a2 Fix slam bits being lost when editing perms in prim inventory 2011-01-14 03:20:47 +00:00
Melanie
a30bbcbb64 Temporarily reinstate prim counting in the update loop to make the production
systems run
2011-01-14 04:09:02 +01:00
Melanie
fe2d9be0cf Implement nonlocal god kicks and freezes 2011-01-14 03:35:45 +01:00
Melanie
139e84c0b2 Fix slam bits being lost when editing perms in prim inventory 2011-01-14 01:01:02 +01:00
Melanie
ddb5f4e44a Merge branch 'careminster-presence-refactor' of ssh://melanie@3dhosting.de/var/git/careminster into careminster-presence-refactor 2011-01-13 20:01:50 +00:00
Melanie
3fc5b6a8ec Merge branch 'master' into careminster-presence-refactor 2011-01-13 19:53:44 +00:00
BlueWall
69c8cc787f Make FireAndForgetWrapper a singleton class
Made FireAndForgetWrapper a singleton class to allow us to drop
	dependancy on the BclExtras35 library. BclExtras is broken in
	Mono 2.8.2 and we used the library in only one function.
2011-01-13 19:52:34 +00:00
Melanie
4eefdd5549 Merge branch 'careminster-presence-refactor' of ssh://3dhosting.de/var/git/careminster into careminster-presence-refactor 2011-01-13 20:21:53 +01:00
BlueWall
b341bc0908 Make FireAndForgetWrapper a singleton class
Made FireAndForgetWrapper a singleton class to allow us to drop
	dependancy on the BclExtras35 library. BclExtras is broken in
	Mono 2.8.2 and we used the library in only one function.
2011-01-13 11:39:50 -05:00
Melanie
69666be28c Implement kicking, freezing and unfreezing users in the same sim via
profile god buttons.
2011-01-13 16:05:17 +01:00
Kitto Flora
c0134710f7 Merge branch 'careminster-presence-refactor' of ssh://3dhosting.de/var/git/careminster into careminster-presence-refactor 2011-01-13 04:48:32 +00:00
Kitto Flora
d92069fb8b Add llLookAt() kinetic. Reduce StandUp +x offset to 0.3M. 2011-01-13 04:44:04 +00:00
Melanie
e4bb8dc385 Guard against invalid light color specifiers from the database 2011-01-13 00:19:39 +01:00
Melanie
6a2b947e8c Merge branch 'master' into careminster-presence-refactor 2011-01-12 21:47:05 +00:00
Melanie
705f4e1e4b Dont' trust the viewer! Fix a permission slam error caused by trusting
the viewer too much.
2011-01-12 21:46:49 +00:00
Melanie
914e4b319e Fix direct item give permissions 2011-01-12 21:39:13 +00:00
Melanie
f75a3ee762 Use ToString() rather than a cast (more robust) 2011-01-12 21:25:51 +00:00
Melanie
7cfe17b5b3 Partial permissions fix for boxed items. 2011-01-12 21:25:38 +00:00
Melanie
dd154f7403 Fix god mode perms adjustment 2011-01-12 21:21:34 +00:00
Melanie
f59b55d930 Dont' trust the viewer! Fix a permission slam error caused by trusting
the viewer too much.
2011-01-12 17:40:21 +01:00
Melanie
7f99a8c900 Fix direct item give permissions 2011-01-12 16:20:38 +01:00
Melanie
52222d82d5 Remove old guids from the examples, for completeness' sake 2011-01-11 15:07:04 +01:00
Melanie
05b1b94cd8 Merge branch 'careminster-presence-refactor' of ssh://melanie@3dhosting.de/var/git/careminster into careminster-presence-refactor 2011-01-11 14:41:37 +00:00
Melanie
d7fd4b2153 Merge branch 'careminster-presence-refactor' of ssh://melanie@3dhosting.de/var/git/careminster into careminster-presence-refactor 2011-01-11 14:38:10 +00:00
Melanie
e5ce59ff34 Replace the new, tricky MySql.Data.dll with the older version from 0.6.9
This requires REMOVING the "Old Guids=true" fromt he MYSQL connection strings!
Sorry for the inconvenience, but this version of the DLL is much less buggy
than the new one for production use.
2011-01-11 14:35:21 +00:00
Melanie
d8fd777e13 Use ToString() rather than a cast (more robust) 2011-01-11 14:59:55 +01:00
Melanie
2c6a410e90 Partial permissions fix for boxed items. 2011-01-10 22:02:22 +01:00
Melanie
72048169c0 Taint SOGs the right way 2011-01-10 22:02:09 +01:00
Diva Canto
e80bcc0049 Improved debug messages to track what is going on with the XFF header 2011-01-09 16:52:41 -08:00
Diva Canto
0fabe0e5a5 Added more debug messages under the -verbose option. 2011-01-08 16:33:33 -08:00
Diva Canto
35a2961ccd Added a -v|verbose option to save iar. 2011-01-08 16:17:00 -08:00
Diva Canto
9d9a170571 Merge branch 'master' of ssh://opensimulator.org/var/git/opensim 2011-01-08 15:50:25 -08:00
Diva Canto
eab0951a59 Fixes the issue of hung archives. Problem was with SceneObjectSerializer.
Also fixes a buglet in scene load xml command, where it was given the wrong argument index for filename.
2011-01-08 15:49:51 -08:00
Mic Bowman
ec22560045 Merge branch 'cmickeyb' 2011-01-08 13:33:52 -08:00
Mic Bowman
df7fb207a8 Moved the map tile processing used by the Simian Grid
Frontend into a separate region module. Configuration
settings added to the defaults ini file. Others may find
this useful for pushing map tiles to a separate server.
2011-01-08 13:33:07 -08:00
Melanie
c271bbcc8a Preserve the script running flag when copying an object. 2011-01-08 16:44:28 +01:00
Melanie
1ab9cd0997 Fix a couple of security issues 2011-01-08 13:51:34 +01:00
Diva Canto
a1c5de0f94 Try to fix a IAR problem reported by nebadon, where save iar seems stuck forever. 2011-01-07 12:32:47 -08:00
Diva Canto
02e661f8dd Minor additional debug message. 2011-01-07 11:39:22 -08:00
Diva Canto
8c0e156b4d Make HG map search consistent with new syntax for link-region, i.e. http://foo.org. Old syntax (foo.org) is still supported, but has surprising results when ppl search again, because internally the HG link names start with http. 2011-01-07 11:38:54 -08:00
Diva Canto
c18bcf3d8d A bit more frugal on the caller side of closing agents, now that the receiving end is async. No need for so much concurrency. 2011-01-07 10:25:49 -08:00
Diva Canto
52f88f5739 Spawn a threadlet upon receiving requests to close agents. The operation may take too long, and we don't need to keep the caller waiting. 2011-01-07 10:04:39 -08:00
Diva Canto
32a3f330ed Canonicalize URL endings for the UserAgentServiceConnector. 2011-01-06 17:42:16 -08:00
Diva Canto
fda56618e1 Deal with possibly un-initialized scripts in object transfers. Mantis #5310 2011-01-06 16:17:43 -08:00
Diva Canto
81587466e7 Map search: changed the flag sent to the client. It was 2 (???), now it's 0. This makes HG map tiles work on map search -- a longstanding annoyance. My map search tests were all ok, but since I don't understand these flag values, this may break something related to map search. 2011-01-06 12:53:54 -08:00
Diva Canto
21dedb573b HG map tile fetch: handle cached images appropriately. 2011-01-06 12:48:28 -08:00
Diva Canto
5b43f9cac4 HG bug fix. Must wait for client's UDP contact before getting scene presence. 2011-01-06 12:47:13 -08:00
Melanie
de4eaab584 Merge branch 'master' into careminster-presence-refactor 2011-01-06 19:08:15 +00:00
Melanie
d1b6b4d288 Fix god mode perms adjustment 2011-01-06 19:12:25 +01:00
Mic Bowman
d3ebf64369 Merge branch 'master' into cmickeyb 2011-01-05 15:01:53 -08:00
Mic Bowman
0b44e99730 comment out a couple simian debug messages 2011-01-05 14:51:11 -08:00
Mic Bowman
984a9b4085 Added more performance checks to the HTTP server. Each request
coming through the WebUtil fns has a request id in the header
that can match the request to the actual work done by the service
2011-01-05 14:32:00 -08:00
Diva Canto
17ebe8fb77 Merge branch 'master' of ssh://opensimulator.org/var/git/opensim 2011-01-05 07:14:45 -08:00
Diva Canto
0c165bc421 Commented a verbose Debug message in LLUDPServer that got uncommented at some point. 2011-01-05 07:14:09 -08:00
Justin Clark-Casey (justincc)
4ac58093bf Make the default for the very verbose XMLRPC groups debug setting false rather than true! 2011-01-04 23:23:42 +00:00
Kitto Flora
ba7a227763 Revise Materials properties; Fix Double-Click Autopilot; Allow non-script sit positions >= 0.1M; Add llLookAt(); Comment out spammy bad adjacent sim message. 2011-01-04 21:36:09 +00:00
Diva Canto
fbde9b1136 Note to self: try to make only 3 things at the same time. 2011-01-04 11:33:15 -08:00
Diva Canto
db55859125 Guard against null Animator. 2011-01-04 11:30:08 -08:00
Mic Bowman
6a5d52b4c8 removed the early return on agentupdates, this was debugging code 2011-01-04 09:12:32 -08:00
Mic Bowman
e0da281e3d Cleaned up debugging messages in the WebRequest handlers 2011-01-03 17:16:22 -08:00
Mic Bowman
d3987024d7 Merge branch 'master' into cmickeyb 2011-01-03 17:05:24 -08:00
Melanie
dc4f557426 Merge branch 'master' into careminster-presence-refactor 2011-01-03 19:45:08 +00:00
Melanie
5286198650 Add permissions hooks for object transfers 2011-01-03 19:42:58 +00:00
Melanie
07cc032081 Allow cross-scope friendships to work, and also allow other cross scope name
resolution
2011-01-03 19:42:46 +00:00
Melanie
e1664b8d38 Fix child agent scoping 2011-01-03 19:42:26 +00:00
Melanie
c48ddbfef1 Fix scoping for prim region crossings 2011-01-03 19:41:02 +00:00
Melanie
9971766256 Implement Scope ID lookup on GetLandData. Stacked regions were not handled
properly
2011-01-03 19:40:55 +00:00
Melanie
e15ab75d62 Add permissions hooks for object transfers 2011-01-03 19:56:56 +01:00
Melanie
5432dfd53a Allow cross-scope friendships to work, and also allow other cross scope name
resolution
2011-01-02 01:29:22 +01:00
Melanie
04e450e2bc Fix child agent scoping 2010-12-31 16:05:59 +01:00
Melanie
5545b03168 Fix scoping for prim region crossings 2010-12-31 15:53:31 +01:00
Melanie
6820deed34 Implement Scope ID lookup on GetLandData. Stacked regions were not handled
properly
2010-12-31 15:45:08 +01:00
Melanie
24a997eb7c Add MessageKey to section Messaging, a key that prevents injection of
IM from external sources
2010-12-30 20:57:56 +01:00
Mic Bowman
df5e4a1e5b Standardize the way WebRequests are made in the SimulationServiceConnector. Added
debugging calls for tracking performance of web requests.
2010-12-29 20:47:51 -08:00
Melanie
98769ed040 Merge branch 'master' into careminster-presence-refactor 2010-12-30 02:31:43 +00:00
Melanie
1f4d0ad460 Fix up a prior fix (refix the fixed fix :) 2010-12-30 02:31:05 +00:00
Melanie
3b50066ceb Merge branch 'master' into careminster-presence-refactor 2010-12-30 01:40:38 +00:00
Melanie
a32f80b9e3 Implement SendPlacesReply 2010-12-30 01:36:09 +00:00
Melanie
2cb2bff9b2 Implement SendPlacesReply 2010-12-30 00:31:59 +01:00
Melanie
dbaaccf92a Copying a ref type under lock doesn't dissociate it from the source.
Use a new list to do that.
2010-12-29 21:02:45 +01:00
Kitto Flora
88db69e017 Merge branch 'careminster-presence-refactor' of ssh://3dhosting.de/var/git/careminster into careminster-presence-refactor 2010-12-29 21:18:28 +00:00
Kitto Flora
64209c9be1 Fix av/prim eject problem. 2010-12-29 21:13:49 +00:00
Diva Canto
d42e0c39fc Bug fix in neighbors: serverURI now always has a trailing '/'... neighbors were not getting notified. 2010-12-29 07:36:39 -08:00
Melanie
dfc0c8dca6 Remove the restriction on communication across scopes. This will allow
cross-scope users to IM each other.
2010-12-29 15:13:10 +01:00
Myan Thor
915c0b17b0 fixes a problem with ending slashes in GatekeeperService to verify session-addresses 2010-12-29 06:03:43 -08:00
Mic Bowman
94ed69b1da Update SimianGridServicesConnector to work more like
a connector so we can take advantage of the logic in
RemoteGridServicesConnector.
2010-12-27 17:18:49 -08:00
Diva Canto
6386dfd362 No need for these methods to be virtual now. 2010-12-27 16:26:29 -08:00
Diva Canto
f801d50a8a WARNING: simulator config var change! This affects only system-facing configs. Nothing to do if you follow the rules of not messing with Grid.ini and GridHypergrid.ini.
Change the remote Grid region module so that it takes the network connector as a config variable. This allows the region plugin to be reused for both Robust and Simian network connectors.
2010-12-27 15:25:08 -08:00
Mic Bowman
b16173e3e8 Drop the static from default wearables. It isn't
static.
2010-12-27 12:43:54 -08:00
Kitto Flora
61b7ec5fb5 Fixing AbsolutePosition to correct llSensor in vehicles 2010-12-26 22:52:03 +00:00
Melanie
f2dd324bc8 Fix linking link sets to rotated prims. 2010-12-26 20:42:47 +01:00
Melanie
8186bf2525 Remove some code that was meant to fool the viewer into thinking SLT. It never
worked and it turned out the issues were really in the backend.
2010-12-26 07:29:23 +01:00
Diva Canto
06077f775f Fixes mantis #5279 2010-12-25 08:28:42 -08:00
Melanie
b17150c3e8 Fix the corner casse of stack overflow when logging out with attachments 2010-12-25 08:05:42 +01:00
Melanie
0aeafc9919 Fix the recent stack overflow 2010-12-25 07:25:56 +01:00
Diva Canto
b23b29a53e This fixes mantis #5198 and related. Physics is not my expertise, so I'm not 100% sure of what all the consequences of this change are. Pushing up, so others can take a look. 2010-12-24 16:23:00 -08:00
Melanie
75010e5e1c Merge branch 'master' into careminster-presence-refactor 2010-12-25 00:04:46 +00:00
Melanie
b16f4024db Update child prim group positions in moving vehicles 2010-12-24 21:04:10 +01:00
Diva Canto
3eaaaa0d99 One more pass at object inventory. This time, fix SceneObjectPartInventory so that it makes sure that the file is added to Xfer's before it signals the client to come and get it. This allows the simplification of the logic of Xfer's. 2010-12-24 08:50:00 -08:00
Diva Canto
135b012bbd Hopefully this fixes all prim inventory issues. No more abort, no more keeping track of time. Simply handle the issues, which are: (1) rapid double requests from the viewer for the same file; (2) sometimes the file generation takes too long and the Xfer request arrives at the XferModule before the file name is added.
This still has debug messages commented out, in case this needs more debugging. Pushing it so others can test.
2010-12-23 19:31:37 -08:00
Melanie
42d44c00f3 Change the mute list parts of the client interface so that all data is provided
to the module
2010-12-24 03:46:57 +01:00
Melanie
2e3d0fb276 Merge branch 'master' into careminster-presence-refactor 2010-12-24 02:23:26 +00:00
Teravus Ovares (Dan Olivares)
d829580e5e Merge branch 'master' of ssh://MyConnection/var/git/opensim 2010-12-23 13:17:55 -05:00
Teravus Ovares (Dan Olivares)
c108968020 * Cleanup from a commit a while ago. 2010-12-23 13:17:33 -05:00
Diva Canto
bc67bc0d94 Merge branch 'master' of ssh://opensimulator.org/var/git/opensim 2010-12-23 10:05:45 -08:00
Diva Canto
54418c5e69 Removed unused code -- this was the previous version of UDP texture sending, which now lives entirely in LindenUDP space. 2010-12-23 10:05:08 -08:00
Melanie
70bb542727 Merge branch 'master' into careminster-presence-refactor 2010-12-23 17:20:45 +00:00
Melanie
2cc07de0ba Merge branch 'master' into careminster-presence-refactor 2010-12-23 12:08:38 +00:00
Melanie
26e601a776 Put back a commented section of code. With some viewers, object inventory
transfers just don't start without it. Observed my Nebadon and yours truly.
2010-12-23 11:50:53 +00:00
Melanie
efa8bd8eb3 Revert "reactivating some traces to track a dead thread"
This reverts commit d7df871f9f.

Useless spam nit suitable for debugging anything that is currently brokwn
2010-12-23 11:15:43 +00:00
Teravus Ovares (Dan Olivares)
46db73b62b * Re-Adding Scene TimeDilation to Object Update Packets.
* Added Calculating Time Dilation in the OdePlubin
* When multiple object updates are stuffed into one packet, average the time dilation between them as a compromise.
* Time Dilation on the update is calculated when the EntityUpdate object is created.  The pre-calc-ed TD is stored in the Entity update and used when it goes out on the wire.  Previously, it was 1.0 all the time. The time dilation is tied to when the update is created, not when the update is sent.
2010-12-23 03:30:09 -05:00
sacha
98f0b4c72a Merge branch 'careminster-presence-refactor' of ssh://3dhosting.de/var/git/careminster into careminster-presence-refactor 2010-12-23 08:14:43 +00:00
sacha
d7df871f9f reactivating some traces to track a dead thread
seen @ NT and Otaku
2010-12-23 08:11:52 +00:00
Melanie
d06456c8b2 Merge branch 'master' into careminster-presence-refactor 2010-12-23 02:57:45 +00:00
Diva Canto
862da9a55f Added a counter to NewFiles in Xfers to account for simultaneous object inventory requests, which apparently are happening and may cause race conditions if the file name is removed after the first transfer. 2010-12-22 17:55:58 -08:00
Melanie
f29675bf87 Merge branch 'master' of melanie@opensimulator.org:/var/git/opensim 2010-12-22 17:35:12 +00:00
Diva Canto
2d8f448322 Fixed wrong argument cardinality in debug message. 2010-12-22 10:42:29 -08:00
Melanie
990e73d7cb Fix a broken format on an error message. Also replace yet another e.Message
with e.ToString(). e.Message is USELESS, it doesn't tell us what happened
where, we should use e.ToSTring() everywhere
2010-12-22 17:33:06 +00:00
Melanie
32cc569b00 Fix up some locking issues in task inventory. Don't use any prior versions in production! 2010-12-22 13:45:21 +01:00
Melanie
cf37b3b943 Prevent a null ref when an avatar login doesn't go as planned 2010-12-22 03:25:30 +01:00
Teravus Ovares (Dan Olivares)
25ecd62b1f * Adds AbortXfer to the ClientAPI mix
* Adds an item that checks to see if the top request has been there for longer then 30 seconds without an update and sends an AbortXfer if it encounters one.   This allows the client to cancel the Xfer on it's side so you can re-select the prim and get the inventory when it fails the first time.
* Some interesting locking...    Using NewFiles to lock the rest of them.   We'll see how that goes.
* The goal of this is to ensure that Xfers are restartable when they fail.  The client will not do that on it's own.
2010-12-21 19:15:44 -05:00
Melanie
e9382c2939 Merge branch 'master' into careminster-presence-refactor 2010-12-21 23:09:12 +00:00
Melanie
303c02133f Merge branch 'master' into careminster-presence-refactor 2010-12-21 23:00:01 +00:00
Melanie
1c3e77b728 What is the point of using different types to express the same damn thing? 2010-12-21 22:58:52 +00:00
Melanie
a70b597840 Merge branch 'master' into careminster-presence-refactor 2010-12-21 22:57:31 +00:00
Melanie
19181c019a Another good catch. Update file name serial. 2010-12-21 22:56:48 +00:00
Melanie
da37ddff9f Merge branch 'master' into careminster-presence-refactor 2010-12-21 22:50:35 +00:00
Melanie
ec8d1d0131 Added a missed return. Thanks diva! 2010-12-21 22:49:38 +00:00
Melanie
4093e22833 Merge branch 'careminster-presence-refactor' of ssh://melanie@3dhosting.de/var/git/careminster into careminster-presence-refactor 2010-12-21 20:57:52 +00:00
Melanie
b1180a53dd Merge branch 'master' into careminster-presence-refactor 2010-12-21 20:56:37 +00:00
Melanie
a31b96e1ba Fix up merge artifacts 2010-12-21 20:54:28 +00:00
Melanie
043dace118 Make prim inventories a bit more sane 2010-12-21 20:49:31 +00:00
Melanie
c9aa420c2d Restore CM loking after core extract 2010-12-21 20:48:58 +00:00
Melanie
2f84f2171f Make prim inventories a bit more sane 2010-12-21 20:47:00 +00:00
Mic Bowman
a6a136bd90 Shooting in the dark for solutions to the appearance problem 2010-12-20 14:24:52 -08:00
Kitto Flora
5fccbe21d6 Update materials parameters. 2010-12-20 07:04:35 +00:00
Diva Canto
c082254b9d Put the coarse location updates back to 50 frames, otherwise the dots on the mini-map come and go noticeably. Also increased the Velocity a bit; I had decreased it to 0.885; now it's 0.9. 2010-12-19 19:29:07 -08:00
Melanie
11eabf0e51 Merge branch 'master' into careminster-presence-refactor 2010-12-20 02:49:31 +00:00
Marck
711283d3ca More changes to the long help text for console command link-region. 2010-12-20 02:50:19 +01:00
Marck
3b4af8a0dc Fix osTeleportAgent and osTeleportOwner for the case that GridService is used with a storage provider other than NullRegionData. 2010-12-20 02:09:35 +01:00
Marck
2a40c8511a Make long help text for new link-region command syntax more explicit. 2010-12-19 22:59:32 +01:00
Diva Canto
cf72fece6d Replaced the HttpServer_OpenSim.dll with one compiled for .NET 3.5 (the last one was 4.0, and that doesn't work). Also added the corresponding .xml and .pdb, if that makes any difference. 2010-12-18 18:23:51 -08:00
Diva Canto
d576d7c0a6 Replaced HttpServer_OpenSim.dll with a version that locks certain ops in HttpForm -- mantis #5128. 2010-12-18 17:36:37 -08:00
Mike Rieker
7a78de8105 fix 'system.exception: unknown type in list.size: system.uint32' 2010-12-18 23:29:49 +00:00
Justin Clark-Casey (justincc)
223264047e uncomment "load iar" help lines which added the --merge option 2010-12-18 00:59:37 +00:00
Justin Clark-Casey (justincc)
bf9555eaee minor: add [-p|--profile=<url>] to usage line that pops up if save iar console command isn't valid 2010-12-18 00:57:09 +00:00
Justin Clark-Casey (justincc)
ef43f98686 Raise maximum iar version that master can load to 1.x, so that it can load its own iars (oops) 2010-12-18 00:45:56 +00:00
Melanie
a82112a47c Merge branch 'master' into careminster-presence-refactor 2010-12-17 22:50:25 +00:00
Melanie
b32dcc6913 Fix notecards that end with an embedded object causing an exception 2010-12-17 22:50:00 +00:00
Justin Clark-Casey (justincc)
5782f5662b remove now unused subversion serialization backup config 2010-12-17 23:06:55 +00:00
Justin Clark-Casey (justincc)
490d05d212 remove broken and unmaintained subversion serialization module and it's associated libraries and licenses 2010-12-17 23:04:07 +00:00
Justin Clark-Casey (justincc)
3d32f05cde remove mono compiler warning: if (sop.Color != null) always returns true as sop.Color is a value type. 2010-12-17 22:40:11 +00:00
Justin Clark-Casey (justincc)
3b1c91c24b remove mono compiler warnings 2010-12-17 22:35:08 +00:00
Justin Clark-Casey (justincc)
0913d43c50 minor: 'debug packet' console command level <= 50 then don't log ImprovedTerseObjectUpdate messages 2010-12-17 22:29:43 +00:00
Justin Clark-Casey (justincc)
19f70b93a0 tidy up the [Groups] section in OpenSim.ini.example 2010-12-17 21:19:57 +00:00
Melanie
d7622cbedc Fix notecards that end with an embedded object causing an exception 2010-12-16 21:01:38 +01:00
Melanie
835e4dbc2c Add locks on m_killRecord without breaking things like justin did 2010-12-16 20:49:40 +01:00
Melanie
aebc011f7b Remove some spam from FreeSwitchModule 2010-12-16 20:12:18 +01:00
Melanie
4719e925b8 Revert the locking changes in LLCLientView 2010-12-16 20:11:26 +01:00
Justin Clark-Casey (justincc)
0745d65344 Put in locks on m_killRecord to replace changed locks on m_entityUpdates.SyncRoot
These locks are necessary to avoid a delete/update race condition for scene objects.
However, since we're now locking on m_killRecord this shouldn't cause delays to m_entityUpdates reprioritization
2010-12-15 23:11:42 +00:00
Melanie
d457b4c4b1 Merge branch 'master' into careminster-presence-refactor 2010-12-15 22:59:52 +00:00
Melanie
62e66b17bc Make sure the material is set on physical prims 2010-12-15 17:54:57 +01:00
Melanie
ee1e725e39 Merge branch 'careminster-presence-refactor' of ssh://3dhosting.de/var/git/careminster into careminster-presence-refactor 2010-12-15 08:18:02 +01:00
Melanie
f8beeb1e93 Fix casts in llSetPayPrice 2010-12-15 08:15:12 +01:00
Diva Canto
ed26376ec5 Yet more things out of the main Update thread loop and into threadlets. This time, SendPrimsUpdate. Plus a few more tweaks on triggering actions from the Update loop. #LoginLag. 2010-12-14 20:15:26 -08:00
Diva Canto
74c68474e0 Another attempt at moving heavy computation away from the Update loop. #LoginLag 2010-12-14 18:44:26 -08:00
Diva Canto
e3262ef5ac Commented out the UpdateLand call from the Update thread loop, because this may be causing the #LoginLag. Attachments taint the prim count. Twice. Each. 2010-12-14 17:50:37 -08:00
justincc
eb07dfc900 Fix windows compile break 2010-12-15 01:06:20 +00:00
justincc
b643661938 Merge branch 'master' of ssh://opensimulator.org/var/git/opensim 2010-12-15 00:35:36 +00:00
justincc
d0576f39e0 replace ode.dll with one built without asserts turned on 2010-12-15 00:35:00 +00:00
Justin Clark-Casey (justincc)
6b135ee371 fix mistake in last change of local.include 2010-12-15 00:14:43 +00:00
Diva Canto
9d0339e8f9 Merge branch 'master' of ssh://opensimulator.org/var/git/opensim 2010-12-14 16:04:46 -08:00
Diva Canto
a4309578e2 Another stab at #LoginLag. Looking forward to hear the feedback! This makes updates for self movement as absolute top priority, going in to the unthrottled category. Self only, not other avies. 2010-12-14 16:04:28 -08:00
Melanie
354f568508 Merge branch 'master' into careminster-presence-refactor 2010-12-14 23:58:45 +00:00
Justin Clark-Casey (justincc)
5f8c660489 add new optionalmodules test dll to panda test run (and nant test command) 2010-12-14 23:58:39 +00:00
Justin Clark-Casey (justincc)
3643be1c97 Rename SceneObjectUserTests to SceneObjectDeRezTests to better reflect its contents 2010-12-14 23:46:02 +00:00
Justin Clark-Casey (justincc)
92727ad596 minor: disable debug logging for previous test 2010-12-14 23:41:36 +00:00
Justin Clark-Casey (justincc)
8a5f9b91de Merge branch 'master' of ssh://opensimulator.org/var/git/opensim 2010-12-14 23:39:21 +00:00
Justin Clark-Casey (justincc)
81bccd6d13 Start implementing a test for 'share with group' object functionality. Not yet complete.
While implementing this, a bug was fixed in scene setup helpers where module RegionLoaded() was called immediately after AddRegion() instead of waiting for all AddRegions() to complete.
Also, XmlRpcGroupsModule non-message functionality will now work without a message transfer module (as indicated in the comments but with a contradictory implementation)
2010-12-14 23:36:34 +00:00
Justin Clark-Casey (justincc)
42c9c30e4c Add mock group services connector and use this in tests 2010-12-14 22:57:36 +00:00
Justin Clark-Casey (justincc)
c620e4c822 add infrastructure for groups module tests 2010-12-14 22:25:01 +00:00
Diva Canto
ff8ff773e7 Relax a highly constraining lock on m_entityUpdates that may be preventing reprioritizations from actually happening. #LoginLag 2010-12-14 12:58:32 -08:00
Diva Canto
10ae5454cb Made the map thread request the map items asynchronously, as the name suggested -- but with a cap of 20 async requests max at any given time. 2010-12-14 12:16:51 -08:00
Diva Canto
4357288a94 More on mantis #5270 2010-12-14 11:24:23 -08:00
Tom
5ce296e08d Workaround to allow llHTTPRequest to POST data to Lighthttpd which doesn't support Expect: 100-Continue 2010-12-14 09:14:34 -08:00
Diva Canto
55e04e6c68 Fixes mantis #5270 -- Map tiles for hyperlinks not showing in world map for grided sims. 2010-12-14 08:11:49 -08:00
Melanie
cb51fc129e Merge branch 'master' into careminster-presence-refactor
Also fix the failure to fire CHANGED_LINK on sit, which is different in our
code.
2010-12-14 12:12:27 +00:00
Melanie
e47cc10674 Null checking ParentGroup is not needed. It can't be null. 2010-12-14 12:07:35 +00:00
Diva Canto
4bdba0a487 Merge branch 'master' of ssh://opensimulator.org/var/git/opensim 2010-12-13 21:36:08 -08:00
Diva Canto
b41164b620 This seems to get rid of the stuck PREJUMP animation, as reported by Justin in -dev. Also in this commit, a slight adjustment to the Velocity of SP -- this makes the avie walking feel less jerky for me. Will wait reports from others. 2010-12-13 21:35:40 -08:00
Melanie
2d9946d7c9 Merge branch 'master' into careminster-presence-refactor 2010-12-14 04:38:04 +00:00
Justin Clark-Casey (justincc)
e08da02a0f Merge branch 'master' of ssh://opensimulator.org/var/git/opensim 2010-12-14 00:12:17 +00:00
Justin Clark-Casey (justincc)
e62b3dba8a reinstate IAttachmentsModule.UpdateAttachmentPosition() since this is being used by a 3rd party region module and contains non-obvious attachment specific code
There are no functional changes.  UpdateAttachmentPosition() is adapted to the new approach of only saving attachment state on logout
2010-12-14 00:11:41 +00:00
Melanie
2a9f095071 Fix a small bug in ban list handling 2010-12-13 22:14:34 +00:00
Melanie
6528fc5c64 Fix a small bug in ban list handling 2010-12-13 22:27:03 +01:00
Melanie
9bd7f3b03a Revamp the viewer -> banlist packet processing so fix a number of bugs.
Remove the too coarse CanEditParcel method in favor of a CanEditParcelProperties
method that takes a GroupPowers argument to specify what action is to be
taken. Also, make the method to set parcel data much more granular. Permissions
in a deeded setting should now work.
2010-12-13 20:35:56 +00:00
Melanie
d6803e6448 Change some lookups in he Land Management module to make group permissions
work better. Add a generic group permissions hoot to the scene permissions
system.
2010-12-13 20:28:14 +00:00
Marck
a4588befb7 Changed logging level for message about failure to retrieve a map image from a linked region. 2010-12-13 22:00:34 +01:00
Marck
9a24c0b41c Show map tile for hyperlinks. Perform Check4096 before adding a hyperlink.
Configuration option AssetService in section [GridService] must be set to enable this functionality.

Map tiles do currently not show for hyperlinks set in simulators that are connected to grids, see Mantis #5270.
2010-12-13 21:20:48 +01:00
Melanie
7538926292 Merge branch 'careminster-presence-refactor' of ssh://melanie@3dhosting.de/var/git/careminster into careminster-presence-refactor 2010-12-13 20:20:02 +00:00
Melanie
d2ff4ebf2d Merge branch 'master' into careminster-presence-refactor 2010-12-13 20:19:10 +00:00
Diva Canto
6b8d01d8c4 It turns out that the 1/2 sec burst for prims download is not a bug, but a feature of the client. The client sets the throttles in such a way that makes the server behave like that. The same happens in the Linden Grid.
Revert "This may have been the biggest, baddest bug in OpenSim ever... confusion between bytes per second and bytes per millisecond."

This reverts commit 870bbcfc6c.
2010-12-13 11:45:17 -08:00
Melanie
6b374fa547 Revamp the viewer -> banlist packet processing so fix a number of bugs.
Remove the too coarse CanEditParcel method in favor of a CanEditParcelProperties
method that takes a GroupPowers argument to specify what action is to be
taken. Also, make the method to set parcel data much more granular. Permissions
in a deeded setting should now work.
2010-12-13 20:19:52 +01:00
Diva Canto
fe6c655f70 Merge branch 'master' of ssh://opensimulator.org/var/git/opensim 2010-12-13 09:43:54 -08:00
Diva Canto
870bbcfc6c This may have been the biggest, baddest bug in OpenSim ever... confusion between bytes per second and bytes per millisecond. 2010-12-13 09:42:27 -08:00
Melanie
d36b880022 Change some lookups in he Land Management module to make group permissions
work better. Add a generic group permissions hoot to the scene permissions
system.
2010-12-13 11:13:34 +01:00
Kitto Flora
9f9af315ec Correct Sensor axis for unattached daughter prims. 2010-12-12 23:26:58 +00:00
Melanie
d3b081744e Prevent objects that are worn from ground from vanishing from the scene 2010-12-12 22:12:50 +01:00
Melanie
63353a0687 Fix a perms issue when wearing an object from inworld 2010-12-12 21:24:00 +01:00
Marck
7f0350b988 Trigger event with flag CHANGED_LINK when agent sits on objects that have not a sit target defined. This fixes Mantis #4692. 2010-12-12 20:12:34 +01:00
Melanie
663a626a6f Apply the useful part of diva's patch that was skipped 2010-12-12 08:57:26 +00:00
Diva Canto
8ea4933742 Fixed wrong configuration variable names. 2010-12-11 18:17:07 -08:00
Melanie
28022a9198 Merge branch 'master' into careminster-presence-refactor 2010-12-12 01:22:50 +00:00
Melanie
fe61c00958 Merge branch 'master' into careminster-presence-refactor 2010-12-12 01:22:27 +00:00
Melanie
8aa63093b1 Merge branch 'master' into careminster-presence-refactor 2010-12-12 01:20:46 +00:00
Diva Canto
4d16ecf889 Merge branch 'master' of ssh://opensimulator.org/var/git/opensim 2010-12-11 17:07:08 -08:00
Diva Canto
797ca8d0e7 Fixes the nudge movements! 2010-12-11 17:06:17 -08:00
Kitto Flora
95a915efd8 Fix border fence for physicals. Fix llRotLookAt() for Vehicles. 2010-12-11 21:04:03 +00:00
Marck
69538d14d4 More OSSL function name normalization, this time for osParcelSetDetails. 2010-12-11 11:41:45 +01:00
Diva Canto
c42876df67 Revert "Another stab at mantis #5256"
This reverts commit ccb4f958c0.
2010-12-10 23:32:50 -08:00
Diva Canto
18b10fab60 Merge branch 'master' of ssh://opensimulator.org/var/git/opensim 2010-12-10 23:16:47 -08:00
Diva Canto
ccb4f958c0 Another stab at mantis #5256 2010-12-10 23:16:26 -08:00
Justin Clark-Casey (justincc)
b46de6e025 Remove the restriction that you have to be logged in when loading/saving iars
This is pointless as we're supplying the password on the command line
2010-12-11 03:09:00 +00:00
Melanie
711db25dfa Allow floats in the list for llSetPayPrice and silently convert them to int, 2010-12-11 03:31:57 +01:00
Justin Clark-Casey (justincc)
387f743993 If we're saving an IAR with --profile information, then label this a version 1.0 IAR since it isn't compatible with older OpenSim releases. 2010-12-11 02:18:16 +00:00
Justin Clark-Casey (justincc)
373ef594ba Drop current OAR version back to 0.5 since these are currently now compatible with older OpenSim versions again.
Removed ability to choose 0.4 to avoid having to write code that polices this properly.  Please shout on the ml if you really need this.
2010-12-11 01:57:32 +00:00
Marck
b512ecd1dc Normalization of OSSL function names.
Added the following replacement functions for compliance to the OSSL standards stated on the wiki:
osGetTerrainHeight
osSetTerrainHeight
osGetSunParam
osSetSunParam
osSetPenColor

The functions that do not comply to the standard give a warning when used but work normally otherwise.

The graphics primitive drawing command "PenColor" has also been added as well as dynamic texture parameter "bgcolor" as an alternative to "bgcolour".

The following two functions have been renamed because they are not enabled yet aynway:
osWindParamSet => osSetWindParam
osWindParamGet => osGetWindParam
2010-12-10 22:20:35 +01:00
Diva Canto
d8fd917076 Revert "A stab at mantis #5256. Separate ScenePresence updates from SceneObject updates, and place them in different queues."
This reverts commit f84905e294.
2010-12-10 12:40:12 -08:00
Diva Canto
58b251506c Merge branch 'master' of ssh://opensimulator.org/var/git/opensim 2010-12-10 11:33:09 -08:00
Diva Canto
f84905e294 A stab at mantis #5256. Separate ScenePresence updates from SceneObject updates, and place them in different queues. 2010-12-10 11:32:46 -08:00
Marck
6f37290f4c Adjust hypergrid console commands to latest changes. 2010-12-10 17:48:45 +01:00
Justin Clark-Casey (justincc)
3ef9a4da9a update libode for 64 bit linux to r1755 (post 0.11.1) from ode 0.10.1
the same thing was actually done for ode.dll a couple of commits ago but I got the commit msg wrong (should have been r1755, not r1754).  Damn these fat fingers.
2010-12-10 03:51:33 +00:00
Justin Clark-Casey (justincc)
a918c8df97 fix the minimap sitting avatar location bug
a sitting avatar should have it's offset position added to the scene object, not its absolute position
2010-12-10 03:46:16 +00:00
Justin Clark-Casey (justincc)
3053f5ba7d minor: remove some compiler warnings 2010-12-10 03:08:31 +00:00
Diva Canto
cefdee8aaf Normalized ALL URLs with trailing /'s hopefully. Fixed show hyperlinks command. mantis #5259 2010-12-09 16:52:37 -08:00
Diva Canto
3675bb2981 Make configs consistent, as per mantos #5258 2010-12-09 09:30:17 -08:00
Diva Canto
baa8ddfd26 Minor bug fixes. Hunting down mantis #5259 2010-12-09 08:28:21 -08:00
Diva Canto
ab980fc927 Fixed wrong comment 2010-12-08 19:47:05 -08:00
Diva Canto
90bcfefe09 Fixed previous compile error -- I haven't pushed the CreatorID in AssetBase yet... 2010-12-08 19:37:35 -08:00
justincc
f0957bb6ca Merge branch 'master' of ssh://opensimulator.org/var/git/opensim 2010-12-09 03:18:14 +00:00
justincc
e9e544ddc8 Update ode.dll to r1755 2010-12-09 03:17:41 +00:00
justincc
0f240a9f7c Update ode.dll to r1754 2010-12-09 03:16:37 +00:00
Justin Clark-Casey (justincc)
3de0749aa7 Update libode.so to r1755.
This revision dates from 02 Sep 2010 and has received some testing.  This code will be updated in the opensim-libs repository
Updates for libode-x86_64, ode.dll and libode.dylib will follow
2010-12-09 03:10:48 +00:00
Melanie
7fef89847c Merge branch 'master' into careminster-presence-refactor 2010-12-09 02:24:12 +00:00
Melanie
d7346dd5ff Merge branch 'master' of melanie@opensimulator.org:/var/git/opensim 2010-12-09 01:55:45 +00:00
Diva Canto
1070cffcf9 Added ability for GetTexture to serve multiple formats. The format may come as an extra query parameter in the URL format=<format> (this was tested and working) or it may come in the Accept header (code added, but not tested). The result of the conversion is placed in the asset cache, under the name <uuid>-<format>. 2010-12-08 18:53:15 -08:00
Melanie
4df1d25d23 Plumb a code path for the entity transfer module to ask a destination scene
whether or not an agent is allowed there as a root agent.
2010-12-09 01:55:32 +00:00
Melanie
f28dc77ab4 Plumb a code path for the entity transfer module to ask a destination scene
whether or not an agent is allowed there as a root agent.
2010-12-09 02:01:41 +01:00
Diva Canto
796216e44f Added an exception handler on CreateObject handler, just in case there's an exception being thrown that is silently being ignored by the http server. (Trying to catch Melanie's problem with attachments on TPs) 2010-12-07 20:05:53 -08:00
Diva Canto
7cfb3d7e96 Removed extraneous left-/ on /object/ subpath. Bug introduced during region URLs clean up. 2010-12-07 17:17:06 -08:00
Justin Clark-Casey (justincc)
1fa9399ab8 change doc. trivial commit to get panda to rebuild 2010-12-08 00:41:33 +00:00
Melanie
80b84e4bad Prevent sending of attachment data to any client if the attachment
is not actually attached to any avatar. Another stab ad fixing "HUD hair"
2010-12-08 00:08:14 +01:00
Melanie
1e7b7ffd6b Merge branch 'careminster-presence-refactor' of ssh://3dhosting.de/var/git/careminster into careminster-presence-refactor 2010-12-07 23:43:53 +01:00
Melanie
b9f54fca5d Allow TPing multiple people in the friends list in one go. 2010-12-07 23:01:42 +01:00
Melanie
c0d3ab59e6 Remove old Freeswitch configurations 2010-12-07 15:30:10 +00:00
Melanie
dd416f4b63 Merge branch 'careminster-presence-refactor' of ssh://melanie@3dhosting.de/var/git/careminster into careminster-presence-refactor 2010-12-07 15:27:50 +00:00
Melanie
c8f0c8ebc4 Remove old Freeswitch configurations 2010-12-07 15:24:17 +00:00
Melanie
549f90c5b5 Update calling card interface 2010-12-07 04:45:28 +01:00
Melanie
a4f7937eb3 Add the interface needed to revive calling cards 2010-12-07 03:08:48 +01:00
Melanie
b325721d6f Merge branch 'careminster-presence-refactor' of ssh://3dhosting.de/var/git/careminster into careminster-presence-refactor 2010-12-07 01:07:57 +01:00
Melanie
b960a05e67 Cowardly refuse to keep running when no application plugins are loaded.
Prevents empty instances from hanging around when Mono.Addins messes up
2010-12-07 01:07:13 +01:00
Melanie
b1a5c03985 Lock the attachments dict so it doesn't get out of sync when iterating 2010-12-06 17:40:07 +01:00
Diva Canto
72748746d5 Fixed some inconsistency with trailing /. Made debug messages consistent. Changed the stored region names of HG regions. Increased the size of regionName in DB. 2010-12-05 19:43:24 -08:00
Melanie
45314c6622 Merge branch 'master' into careminster-presence-refactor 2010-12-06 02:54:51 +00:00
Jonathan Freedman
45cd2e3ef9 Merge branch 'master-core' into mantis5110 2010-12-05 11:49:15 -08:00
sacha
835103af82 Merge branch 'careminster-presence-refactor' of ssh://3dhosting.de/var/git/careminster into careminster-presence-refactor 2010-12-04 21:50:48 +00:00
sacha
9b9ce8fb27 add more detail to the log in case of FORM Timeout
cause nothing relevant are in the services logs
2010-12-04 21:40:18 +00:00
Melanie
4b979362e9 Add some safeguards: DOn't send someone else's HUDs, don't send deleted prims
Removed some unneccessarily wordy core comments
2010-12-04 14:41:57 +01:00
Melanie
96446adfa4 Monitor the UUIDs used to create and update wearable assets. Reject any changed
texture that is not present in the user's inventory full perm.
This will prevent "UUID snatching", a copybot-type of attack that can cause
clothing makers to be forced to destroy and replace legit items in order to
invalidate the copies.
2010-12-04 07:06:30 +01:00
opensim mirror account
6639aaeed4 Merge branch 'master' of /var/git/opensim/ 2010-12-03 22:00:08 -08:00
opensim mirror account
cdd0df9aae Merge branch 'master' of /var/git/opensim/ 2010-12-03 21:30:05 -08:00
Melanie
4ca108f85e Simplify updating of agent inventory assets. Make newly created asset IDs
random rather than using IDs known by the client ahead of time.
2010-12-04 04:50:24 +00:00
Melanie
89fec4ff5b Merge branch 'master' of melanie@opensimulator.org:/var/git/opensim 2010-12-04 04:25:08 +00:00
Melanie
ea17b262a3 Convert the agent asset transactions module to a new style module.
Refactor to remove the property "MyScene" and the pointless circular
refs to the managing classes. Converted the module to a non-shared module.
Reformatted source for 80 columns. Removed the special role the module
had in the old loader.
2010-12-04 04:24:55 +00:00
Melanie
f41dfbabc8 Simplify updating of agent inventory assets. Make newly created asset IDs
random rather than using IDs known by the client ahead of time.
2010-12-04 05:01:44 +01:00
Melanie
349767f8a2 Merge branch 'master' into careminster-presence-refactor 2010-12-04 04:25:39 +00:00
Melanie
bab6b6cd87 Merge branch 'careminster-presence-refactor' of ssh://3dhosting.de/var/git/careminster into careminster-presence-refactor 2010-12-04 04:36:44 +01:00
Melanie
da91a2ab7e Convert the agent asset transactions module to a new style module.
Refactor to remove the property "MyScene" and the pointless circular
refs to the managing classes. Converted the module to a non-shared module.
Reformatted source for 80 columns. Removed the special role the module
had in the old loader.
2010-12-04 04:33:14 +01:00
opensim mirror account
755180612a Merge branch 'master' of /var/git/opensim/ 2010-12-03 18:50:03 -08:00
Justin Clark-Casey (justincc)
7b6b4501b7 minor: add class doc line to older region module example code pointing towards newer 2010-12-04 02:49:41 +00:00
Justin Clark-Casey (justincc)
f268cd7c53 comment out the extension attribute 2010-12-04 02:47:29 +00:00
Justin Clark-Casey (justincc)
57b5263ecf add bare bones shared example module 2010-12-04 02:46:59 +00:00
opensim mirror account
2756e8fd67 Merge branch 'master' of /var/git/opensim/ 2010-12-03 18:40:03 -08:00
Justin Clark-Casey (justincc)
510b55c7f0 refactor some common code in RegionModulesControllerPlugin
also some minor doc changes in BareBonesNonSharedModule
2010-12-04 02:38:26 +00:00
opensim mirror account
cc471d9ca6 Merge branch 'master' of /var/git/opensim/ 2010-12-03 17:40:03 -08:00
Justin Clark-Casey (justincc)
c010491d34 correct the id of the example module 2010-12-04 01:38:32 +00:00
Justin Clark-Casey (justincc)
a06032d96e Add the most bare bones non-shared region module example. Not active unless the correct line is uncommented. 2010-12-04 01:36:35 +00:00
opensim mirror account
935929c2b8 Merge branch 'master' of /var/git/opensim/ 2010-12-03 17:10:03 -08:00
Justin Clark-Casey (justincc)
0ab774d484 add warning decals and information to RegionModule.cs in probably non-functional OpenSim.Region.Examples.SimpleModule project 2010-12-04 01:06:29 +00:00
Justin Clark-Casey (justincc)
9668fb4e31 Merge branch 'master' of ssh://opensimulator.org/var/git/opensim 2010-12-04 00:57:18 +00:00
Justin Clark-Casey (justincc)
2486d96d06 minor: correction to logging category 2010-12-04 00:56:53 +00:00
opensim mirror account
6770e43ef0 Merge branch 'master' of /var/git/opensim/ 2010-12-03 16:50:02 -08:00
Melanie
24af7b8384 Merge branch 'master' into careminster-presence-refactor 2010-12-04 00:09:32 +00:00
opensim mirror account
cc573e97d5 Merge branch 'master' of /var/git/opensim/ 2010-12-03 16:00:27 -08:00
Justin Clark-Casey (justincc)
b69c5d6633 minor: change OpenSimBase log messages associated with newer module loader to make the association clear 2010-12-03 23:50:09 +00:00
Mic Bowman
df860516bf Various bug fixes for appearance handling: more aggressive reset of textures and vparams when appearance is not cached and when wearables change. Send appearance to the viewer with initial data.
Cleaned up (and added) debugging.
2010-12-03 23:45:00 +00:00
Melanie
8e3bacc691 When linking something, immediately persist the linked set. 2010-12-03 23:06:44 +01:00
Kitto Flora
bf695cccba Fix spurious Av move when clothing item worn or removed. 2010-12-03 18:32:58 +00:00
Melanie
60b055de4c Merge branch 'careminster-presence-refactor' of ssh://3dhosting.de/var/git/careminster into careminster-presence-refactor 2010-12-03 19:04:59 +01:00
Melanie
4407c4700f Fix status responses in remote admin 2010-12-03 19:02:42 +01:00
Melanie
8741676bc3 Revert "Revert "Trigger changed event with CHANGED_TELEPORT when teleporting to another region.""
This reverts commit 6c01ebb875.
2010-12-03 18:32:03 +01:00
Melanie
b940925173 Improve health reporting 2010-12-03 07:27:29 +01:00
Melanie
e913e1690e Fix health reporting. This will now actually monitor the threads properly
and not just the http server. It will also restart a dead heartbeat.
2010-12-03 07:16:06 +01:00
Melanie
ce1aedf474 Add a missing interface memeber to the new HG stuff 2010-12-03 07:04:07 +01:00
Melanie
6c01ebb875 Revert "Trigger changed event with CHANGED_TELEPORT when teleporting to another region."
This reverts commit 2827deffe8.

Pulling out a bad core commit that broke attachment teleporting for us
2010-12-03 04:39:51 +01:00
Melanie
342dc532ec Merge branch 'master' into careminster-presence-refactor
Also prevent god takes from ending up in Lost and Found
2010-12-03 02:36:13 +00:00
Melanie
ec01936d38 Change the way sim health reporting reports sim startup 2010-12-03 02:37:08 +01:00
opensim mirror account
ffaaa5c750 Merge branch 'master' of /var/git/opensim/ 2010-12-02 16:20:08 -08:00
Justin Clark-Casey (justincc)
7e72afcb3e Only force prim persistence before delete if the prim is the result of an unpersisted delink
This considerably improves delete performance for objects with large linksets
2010-12-03 00:12:59 +00:00
opensim mirror account
3da12c2d3f Merge branch 'master' of /var/git/opensim/ 2010-12-01 18:10:02 -08:00
Justin Clark-Casey (justincc)
5246d98b8d Stop LLUDPServer sending updates after object deletes by always queueing deletes
If an LL 1.23.5 client (and possibly earlier and later) receives an object update after a kill object packet, it leaves the deleted prim in the scene until client relog
This is possible in LLUDPServer if an object update packet is queued but a kill packet sent immediately.
Beyond invasive tracking of kill sending, most expedient solution is to always queue kills, so that they always arrive after updates.
In tests, this doesn't appear to affect performance.
There is probably still an issue present where an update packet might not be acked and then resent after the kill packet.
2010-12-02 02:01:01 +00:00
Justin Clark-Casey (justincc)
26569a7cd0 minor: add some method doc 2010-12-02 02:01:01 +00:00
opensim mirror account
d60ace97bf Merge branch 'master' of /var/git/opensim/ 2010-12-01 16:20:03 -08:00
Diva Canto
f1a7847532 Deleted obsolete config files from old OpenSim.Grid. 2010-12-01 16:19:27 -08:00
opensim mirror account
6f3fbca5a3 Merge branch 'master' of /var/git/opensim/ 2010-12-01 16:10:15 -08:00
Diva Canto
7d24dbca3c Added some comments. Better than listening to the boring speaker... 2010-12-01 16:01:22 -08:00
Mic Bowman
ab2adaf341 Various bug fixes for appearance handling 2010-11-30 16:20:43 +01:00
Melanie
0218845c2e Prevent the restart module from barfing if it's not configured 2010-11-30 15:40:50 +01:00
Melanie
b08cc63003 Change inworld restart to use blue boxes rather than notices to match SL 2010-11-29 21:45:03 +01:00
opensim mirror account
4b4337d024 Merge branch 'master' of /var/git/opensim/ 2010-11-29 10:10:08 -08:00
Diva Canto
f3835fe15c Merge branch 'master' of ssh://opensimulator.org/var/git/opensim 2010-11-29 09:58:20 -08:00
Diva Canto
49b59fffee Fix unit test. 2010-11-29 09:57:41 -08:00
Diva Canto
f86c438653 Preservation of creator information now also working in IARs. Cleaned up usage help. Moved Osp around, deleted unnecessary OspInventoryWrapperPlugin, added manipulation of SOP's xml representation in a generic ExternalRepresentationUtils function. 2010-11-29 08:43:33 -08:00
opensim mirror account
51a2cab05b Merge branch 'master' of /var/git/opensim/ 2010-11-28 18:20:02 -08:00
Melanie
04ce7de5ed Fix the build break 2010-11-29 01:15:30 +00:00
Melanie
836b73f765 Fix the build break 2010-11-29 01:15:02 +00:00
opensim mirror account
d85a53f040 Merge branch 'master' of /var/git/opensim/ 2010-11-28 16:40:08 -08:00
Melanie
0acfe80f21 Remove the most spammy XML dumps from the FS voice module 2010-11-28 23:37:21 +00:00
Melanie
4c917d39d5 Merge branch 'master' into careminster-presence-refactor 2010-11-28 23:35:49 +00:00
Marck
4d104cf6fe Make gatekeeper's address check case-insensitive. 2010-11-28 23:35:38 +00:00
Melanie
5aeb83125a Remove the most spammy XML dumps from the FS voice module 2010-11-28 23:30:55 +00:00
Melanie
2bee150aac Implement health monitoring of the packet receiving and sending threads 2010-11-28 20:45:03 +01:00
Melanie
0f1fc79994 Implement god summons 2010-11-28 20:14:58 +01:00
Diva Canto
ca8d015733 Changed the parser for InventoryItem deserialization. Moved some utility functions around. 2010-11-27 11:40:54 -08:00
Melanie
4765fd9cd0 Remove hard limit on prim owners. The new LibOMV autosplits packets to
prevent overflow
2010-11-27 19:31:18 +01:00
Melanie
2412b3cb4a Merge branch 'careminster-presence-refactor' of ssh://3dhosting.de/var/git/careminster into careminster-presence-refactor 2010-11-27 13:07:23 +01:00
Melanie
0b41606e73 Instrument TI Dictionary to finally find that pesky script-caused deadlock 2010-11-27 13:02:51 +01:00
opensim mirror account
be216e1e39 Merge branch 'master' of /var/git/opensim/ 2010-11-27 02:10:05 -08:00
Marck
d71d4f96e3 Amend GetLinkPrimitiveParams with implementations for PRIM_TEXGEN, PRIM_BUMP_SHINY, PRIM_FULLBRIGHT, and PRIM_GLOW 2010-11-27 10:59:14 +01:00
opensim mirror account
35a1c749f3 Merge branch 'master' of /var/git/opensim/ 2010-11-27 00:20:07 -08:00
Marck
947d730b56 Make gatekeeper's address check case-insensitive. 2010-11-27 09:18:39 +01:00
Diva Canto
3292a22558 Creator information preserved upon HG transfers. 2010-11-26 22:06:34 -08:00
opensim mirror account
35f74ac4ee Merge branch 'master' of /var/git/opensim/ 2010-11-26 18:30:05 -08:00
opensim mirror account
2f3fcd4b72 Merge branch 'master' of /var/git/opensim/ 2010-11-26 18:10:02 -08:00
Micheil Merlin
6ed63487d9 llUnsit position fix 4063 (updated 11-20-2010) 2010-11-27 02:05:44 +00:00
opensim mirror account
3bfdc7c8de Merge branch 'master' of /var/git/opensim/ 2010-11-26 17:40:03 -08:00
opensim mirror account
0f52f90f9c Merge branch 'master' of /var/git/opensim/ 2010-11-26 17:30:05 -08:00
Micheil Merlin
a8a8fb6e13 llVecNorm nant test 2010-11-27 01:29:55 +00:00
Melanie
35c6bba6d7 Merge branch 'master' into careminster-presence-refactor 2010-11-27 01:29:01 +00:00
Melanie
63e2c3b2d6 Reformat an overzealous comment. Remove end of line marks and reference to the
Mantis solved, as that isn't needed to understand the code. Reformat the
comment for 80 col screens.
2010-11-27 01:28:02 +00:00
Justin Clark-Casey (justincc)
e0866faacc Merge branch 'master' of ssh://opensimulator.org/var/git/opensim 2010-11-27 01:27:46 +00:00
Melanie
a1ab2a2244 Merge branch 'master' into careminster-presence-refactor 2010-11-27 01:25:02 +00:00
Mic Bowman
541a7660e0 Refactor appearance and avatar data sending code. Paritioning the routines into "one-to-many" and "many-to-one" makes it possible to call the right function on presence creation (both child and root) and when a child agent is promoted to root. This brings the total number of appearance sends down to one or two on login.
Cleaned up the avatar update calls in the groups code. Cleaned up
some commented and debugging code, and a few formating fixes.
2010-11-27 01:14:36 +00:00
Melanie
e05f728b08 Merge branch 'master' into careminster-presence-refactor 2010-11-27 01:08:12 +00:00
opensim mirror account
b844fef58a Merge branch 'master' of /var/git/opensim/ 2010-11-26 17:00:05 -08:00
Justin Clark-Casey (justincc)
0e311a2104 If we fail to gather asset uuids for a particular asset, log the failing asset id and type 2010-11-27 00:54:09 +00:00
Melanie
385a6c4b34 Convert the scope id in the im session id to a URL variable. Fixes offline
group notice attachments not working
2010-11-26 23:20:43 +01:00
opensim mirror account
f10aa2c887 Merge branch 'master' of /var/git/opensim/ 2010-11-26 14:10:05 -08:00
Marck
7c02d5cec5 Another attempt at fixing failing test for creator info. 2010-11-26 23:04:31 +01:00
opensim mirror account
e30f61445f Merge branch 'master' of /var/git/opensim/ 2010-11-26 13:50:08 -08:00
Marck
2827deffe8 Trigger changed event with CHANGED_TELEPORT when teleporting to another region. 2010-11-26 22:46:48 +01:00
opensim mirror account
6915edbf94 Merge branch 'master' of /var/git/opensim/ 2010-11-26 03:30:10 -08:00
Marck
0bc5ffbe96 Fix handling of landmarks for systems with culture settings other than en_US. This fixes Mantis #5177. 2010-11-26 11:50:51 +01:00
Melanie
cccfd1db34 Add marker files to the restart module so external scripts can be used to
kill a process that hasn't restarted properly
2010-11-26 03:21:51 +01:00
Diva Canto
1cbd2842d5 Merge branch 'master' of ssh://opensimulator.org/var/git/opensim 2010-11-25 16:27:19 -08:00
Melanie
33c023bf6a Allow group lookup during tp / login to make restricting parcels to group
work.
2010-11-25 21:22:22 +01:00
Melanie
ee9aca9c52 Add the ability for gods to impersonate users. For this, bit 6 needs to be
set in the target's UserFlags and the impersonator must have UserLevel 200
or above. The user can then log in using the target's name and their own
password.
2010-11-25 20:34:55 +01:00
Diva Canto
ae4b02e115 WARNING: LOTS OF CONFIGURATION CHANGES AFFECTING PRIMARILY HG CONFIGS. Added capability to preserve creator information on HG asset transfers. Added a new HGAssetService that is intended to be the one outside the firewall. It processes and filters the assets that go out of the grid. Also fixed the normal AssetService to do special things for the main instance (console commands, etc). Moved HGInventoryService to OpenSim.Services.HypergridService. Changed the way the login service gets the ServiceURL configs. 2010-11-25 11:14:16 -08:00
opensim mirror account
06d8f67448 Merge branch 'master' of /var/git/opensim/ 2010-11-24 21:10:03 -08:00
opensim mirror account
e9d59389e8 Merge branch 'master' of /var/git/opensim/ 2010-11-24 20:20:03 -08:00
Melanie
2d2098f5da Export the module interface for restart 2010-11-25 04:06:25 +00:00
opensim mirror account
d00405d3b8 Merge branch 'master' of /var/git/opensim/ 2010-11-24 19:30:05 -08:00
Melanie
57c4def254 Change all restarting to use the restart module. Remove hardcoded behavior 2010-11-25 03:16:52 +00:00
Melanie
c14592d4ba Export the module interface for restart 2010-11-25 04:16:34 +01:00
Melanie
efb03f6f99 Fix a bug caused by leftover code 2010-11-25 03:59:57 +01:00
Melanie
e74b0deb4e Fix up remote controller. 2010-11-25 03:43:23 +00:00
Melanie
6c3eb21440 Merge branch 'master' into careminster-presence-refactor 2010-11-25 03:27:35 +00:00
opensim mirror account
8fadfc4734 Merge branch 'master' of /var/git/opensim/ 2010-11-24 18:30:32 -08:00
Melanie
fb97fe8307 Finish the RestartModule and fix some bugs. Add new console commands:
region restart bluebox <msg> <time> ...
region restart notice <msg> <time> ...
region restart abort [<message>]
2010-11-25 02:30:06 +00:00
Melanie
1522567920 Finish the RestartModule and fix some bugs. Add new console commands:
region restart bluebox <msg> <time> ...
region restart notice <msg> <time> ...
region restart abort [<message>]
2010-11-25 02:37:50 +01:00
Melanie
eb9d7bff6c Merge branch 'careminster-presence-refactor' of ssh://melanie@3dhosting.de/var/git/careminster into careminster-presence-refactor 2010-11-25 01:25:56 +00:00
Melanie
2c1c04119d Merge branch 'master' into careminster-presence-refactor 2010-11-25 01:24:32 +00:00
Melanie
6734c9f83a Implement the restart module 2010-11-25 01:22:05 +00:00
Melanie
e14f449cc2 Adding the skeleton for the restart module 2010-11-24 22:14:53 +00:00
Melanie
b3a71c6df1 Prevent an overlength button label from producing a debug dump and aborting
the script.
2010-11-24 18:56:25 +01:00
opensim mirror account
181daf3a9d Merge branch 'master' of /var/git/opensim/ 2010-11-24 02:10:12 -08:00
dahlia
9f29908f66 catch an exception when a mesh asset header cant be decoded 2010-11-24 02:05:41 -08:00
Jonathan Freedman
bc51dfc45e Merge branch 'master-core' into mantis5110 2010-11-23 22:27:54 -08:00
Melanie
a47fb93b74 Prevent a dump in the llGetLinkKey method when using LINK_ROOT in a single prim 2010-11-23 23:48:52 +01:00
opensim mirror account
a1daeb277e Merge branch 'master' of /var/git/opensim/ 2010-11-23 07:50:04 -08:00
Diva Canto
a4bf6c5343 Attempt at fixing failing test. 2010-11-23 07:44:42 -08:00
opensim mirror account
cb2b1257e9 Merge branch 'master' of /var/git/opensim/ 2010-11-23 07:20:16 -08:00
opensim mirror account
32cbf0c542 Merge branch 'master' of /var/git/opensim/ 2010-11-23 06:40:21 -08:00
Diva Canto
61a49ec4a8 Initialize InventoryItemBase.creatorData properly. Could throw. 2010-11-23 06:36:57 -08:00
Melanie
6557d5f359 Merge branch 'master' into careminster-presence-refactor 2010-11-23 14:05:09 +00:00
Melanie
2527aeb40c Merge branch 'master' of melanie@opensimulator.org:/var/git/opensim 2010-11-23 14:03:52 +00:00
Melanie
3caea83e9a Merge branch 'master' into careminster-presence-refactor 2010-11-23 14:03:33 +00:00
Melanie
45b08a9ce3 Fix more potential nullrefs 2010-11-23 14:02:20 +00:00
Melanie
7796b90ebb Fix some crashes caused by the addition of the CreatorData column 2010-11-23 14:02:06 +00:00
opensim mirror account
87e565d28d Merge branch 'master' of /var/git/opensim/ 2010-11-23 03:00:09 -08:00
Marck
c68f03a6ff Fix: Allow use of parameters without specifying a file path with command "save oar" 2010-11-23 11:45:12 +01:00
Marck
ba2bf78dcf Fix joining land parcels not being stored correctly in SQLite. Thank you to goetz for the initial patch in Mantis #5230. 2010-11-23 11:45:12 +01:00
opensim mirror account
64918589ec Merge branch 'master' of /var/git/opensim/ 2010-11-22 20:30:06 -08:00
Justin Clark-Casey (justincc)
8d79a39d5b Merge branch 'master' of ssh://opensimulator.org/var/git/opensim 2010-11-23 04:27:06 +00:00
Justin Clark-Casey (justincc)
63170fdea7 Only perform the take object permissions check if an object is being attached directly from the scene, not from existing inventory 2010-11-23 04:26:07 +00:00
Melanie
4a54b3318b Fix more potential nullrefs 2010-11-23 00:31:09 +01:00
Justin Clark-Casey (justincc)
bbc291dfdf adapt tests to use DeRezObjects() since DeRezObject() has recently disappeared 2010-11-22 23:07:30 +00:00
Justin Clark-Casey (justincc)
34b13a4765 add basic tests to check that under default permissions module owner can delete objects and that non-owners (who are also not administrators, etc.) cannot 2010-11-22 22:54:13 +00:00
Melanie
571becefb6 Fix some crashes caused by the addition of the CreatorData column 2010-11-22 23:31:29 +01:00
opensim mirror account
9362d11077 Merge branch 'master' of /var/git/opensim/ 2010-11-22 10:40:03 -08:00
Marck
e1c72cedb3 Let CHANGED_SCALE also trigger when editing prims and linksets with the viewer's edit tools.
This event used to trigger only when the scale was changed with a script.
2010-11-22 19:38:44 +01:00
Marck
d63965cf94 Let CHANGED_SHAPE trigger. This fixes Mantis #1844. 2010-11-22 19:38:44 +01:00
opensim mirror account
7e862dfe5e Merge branch 'master' of /var/git/opensim/ 2010-11-22 07:30:05 -08:00
opensim mirror account
f9f386f73b Merge branch 'master' of /var/git/opensim/ 2010-11-22 07:20:08 -08:00
Melanie
d2aebbe066 Fox case on a method 2010-11-22 14:27:45 +00:00
Melanie
506192e466 Make an invalud key string in llTextBox and llDialog non fatal to avoid
breakinf sloppily made no-mod scripted items.
2010-11-22 15:16:28 +01:00
Melanie
4e0a289a8d Change FS Voice module to a shared module to avoid gratuitious server handler
registrations. Add the missing bits to drive the local connector's HTTP
requests. This makes standalones work.
2010-11-22 14:13:27 +00:00
Melanie
54d1d6d917 Fox case on a method 2010-11-22 14:32:51 +01:00
Melanie
87f30709a2 Merge branch 'master' into careminster-presence-refactor 2010-11-22 14:14:45 +00:00
opensim mirror account
d272a5bd25 Merge branch 'master' of /var/git/opensim/ 2010-11-22 02:20:10 -08:00
Marck
8a2c365e5b Thank you, thomax, for a patch making changed events CHANGED_REGION_RESTART and CHANGED_REGION work.
Fixes Mantix #5214.
2010-11-22 10:39:46 +01:00
Jonathan Freedman
b7f5e82843 Merge branch 'master-core' into mantis5110 2010-11-21 20:01:48 -08:00
Jonathan Freedman
562147475c Merge https://github.com/opensim/opensim into mantis5110
Conflicts:
	OpenSim/Region/Framework/Scenes/Scene.cs
2010-11-21 19:51:23 -08:00
opensim mirror account
f01e1094a3 Merge branch 'master' of /var/git/opensim/ 2010-11-21 17:50:03 -08:00
opensim mirror account
c913f92f0f Merge branch 'master' of /var/git/opensim/ 2010-11-21 17:30:05 -08:00
Diva Canto
0fec29c849 Merge branch 'master' of ssh://opensimulator.org/var/git/opensim 2010-11-21 17:19:45 -08:00
Diva Canto
c617d658dd Added creator info across the board -- TaskInventoryItems and InventoryItems themselves. Tested. Seems to be working, main tests pass. Nothing done for IARs or HG transfers yet -- this only works for OARs for the time being.
New migration in inventory table in order to make CreatorID varchar(255).
2010-11-21 17:19:24 -08:00
Melanie
22ff06ba17 Merge branch 'master' into careminster-presence-refactor 2010-11-22 01:09:26 +00:00
opensim mirror account
a1549a1d85 Merge branch 'master' of /var/git/opensim/ 2010-11-21 16:50:03 -08:00
Melanie
8466ada8e0 Merge branch 'master' of melanie@opensimulator.org:/var/git/opensim 2010-11-22 00:46:37 +00:00
Melanie
ddf08276f1 Fox the buglets in Freeswitch. Grid mode works now and there is no reason why standalone should not. 2010-11-22 00:46:23 +00:00
opensim mirror account
e2e828d1d5 Merge branch 'master' of /var/git/opensim/ 2010-11-21 16:30:05 -08:00
Melanie
7e9a3019ac Fox the buglets in Freeswitch. Grid mode works now and there is no reason why standalone should not. 2010-11-22 00:55:11 +01:00
opensim mirror account
a145a294cf Merge branch 'master' of /var/git/opensim/ 2010-11-21 15:50:03 -08:00
Melanie
8d7b181b58 Merge branch 'master' into careminster-presence-refactor 2010-11-21 23:47:28 +00:00
Melanie
c85e6bc36d Add the remote connector for freeswitch config retrieval 2010-11-21 23:42:52 +00:00
Melanie
5f8a0f3d1f Add the remote connector for freeswitch config retrieval 2010-11-21 23:41:56 +00:00
opensim mirror account
dd67175edf Merge branch 'master' of /var/git/opensim/ 2010-11-21 15:40:03 -08:00
opensim mirror account
3d113e9f1d Merge branch 'master' of /var/git/opensim/ 2010-11-21 15:30:05 -08:00
Melanie
2105842513 Finish the standalone mode freeswitch work and add config examples 2010-11-21 23:24:39 +00:00
opensim mirror account
b4025eb48e Merge branch 'master' of /var/git/opensim/ 2010-11-21 15:20:02 -08:00
Melanie
a7174cecdd Remove username and password from the publicly accessible FS config 2010-11-21 22:45:04 +00:00
opensim mirror account
68e8e35640 Merge branch 'master' of /var/git/opensim/ 2010-11-21 14:40:08 -08:00
Melanie
6fa24f4671 Convert the Freeswitch module to new style 2010-11-21 22:40:03 +00:00
opensim mirror account
d0c764bf2e Merge branch 'master' of /var/git/opensim/ 2010-11-21 14:30:10 -08:00
Melanie
e6c52f38c5 Strip the dialplan and directory methods from the region module 2010-11-21 22:25:50 +00:00
Melanie
2b0ef9ad1d Implement a method to allow regions to query the gridwide Freeswitch
configuration from ROBUST
2010-11-21 22:17:25 +00:00
Melanie
b43a01179e Correct an error in Robust.ini.example 2010-11-21 21:35:31 +00:00
Diva Canto
af8c8197ab Updated SQLiteLegacy/SQLiteSimulationData with the same. Is this crap still used?!? 2010-11-21 13:29:20 -08:00
Melanie
ed5f91c638 Move Dialplan and Directory from the region module to the ROBUST server 2010-11-21 21:29:17 +00:00
Melanie
c0ccfeebe7 Start implementing Freeswitch in ROBUST 2010-11-21 21:29:11 +00:00
Diva Canto
51343caeb5 Updated SQLite/SQLiteSimulationData to use SOP.CreatorInformation instead of SOP.CreatorID. Untested, but should work. 2010-11-21 13:27:03 -08:00
Melanie
83a427a8f9 Move Dialplan and Directory from the region module to the ROBUST server 2010-11-21 21:18:03 +00:00
Diva Canto
6a9ae9e7cb Global creator information working on MySQL DB and on load/save OARs. Creator name properly shown on the viewer as first.last @authority.
New option added to save oar -profile=url. Migration on RegionStore making CreatorID be 255 chars.
Moved Handling of user UUID -> name requests to a new module UserManagement/UserManagementModule.
2010-11-21 13:16:52 -08:00
Melanie
1cf8eb8a90 Start implementing Freeswitch in ROBUST 2010-11-21 20:59:01 +00:00
opensim mirror account
d04cbd8f85 Merge branch 'master' of /var/git/opensim/ 2010-11-19 19:10:12 -08:00
Marck
f1151f20dc Fix global region coordinates that are delivered by llRequestSimulatorData.
Also did some source code clean-up by replacing literals with constants.
2010-11-20 03:03:11 +00:00
Justin Clark-Casey (justincc)
a88bcbb118 Knock V0_2 decals off archive tests since they're misleading 2010-11-20 03:01:47 +00:00
Justin Clark-Casey (justincc)
d7bca3d8e8 Fix unit tests and save problems
(note; contrary to previous commits, saving 0.4 OARs is actually broken since serialized objects in inventories are not yet converted properly).
Firstly, if you can save a version 1.0 OAR then you can load it too.
Secondly, closing the save stream even on success before assets/objects are saved is a bad idea
2010-11-20 02:59:21 +00:00
opensim mirror account
c4dd724cba Merge branch 'master' of /var/git/opensim/ 2010-11-19 18:50:05 -08:00
Justin Clark-Casey (justincc)
1087d6042b correct build break. for some reason, xbuild didn't rebuild test dlls 2010-11-20 02:43:38 +00:00
opensim mirror account
4ec0933c99 Merge branch 'master' of /var/git/opensim/ 2010-11-19 18:40:08 -08:00
Justin Clark-Casey (justincc)
f49e32bfaa Merge branch 'master' of ssh://opensimulator.org/var/git/opensim 2010-11-20 02:34:27 +00:00
Justin Clark-Casey (justincc)
2c7be7130e Bump oar version to 1.0 from 0.5
If oar contents are being changed such that older versions of opensim can't load them, then the major version must be increased
This also locks version parameters to either 1.0 or 0.4, so that arbitrary 'versions' cannot be saved
Also closes save stream properly in the event of an error
Version 1.0 OARs are currently incompatible with OpenSim 0.7.0.2 and earlier.  However, you can still save compatible version 0.4 OARs by specifing --version=0 on the save oar command line
e.g. save oar --version=0 oars/test.oar
2010-11-20 02:32:12 +00:00
opensim mirror account
2750e22782 Merge branch 'master' of /var/git/opensim/ 2010-11-18 12:10:08 -08:00
Melanie
164007dd00 Merge branch 'master' into careminster-presence-refactor 2010-11-18 19:06:09 +00:00
Master ScienceSim
8f1a79420b Fixed appearance send for avatars with only default textures. This should fix some of the appearance problems on osgrid. Also added a transaction lock on SetAppearance. This won't prevent concurrent access to Appearance but it will at least make sure each update completes.
Signed-off-by: Melanie <melanie@t-data.com>
2010-11-18 19:04:50 +00:00
Melanie
f3e4000a55 Send media and other parcel data to client on login. Makes streams visible
right away and starts media.
2010-11-18 13:26:35 +01:00
Melanie
47f0468995 Send parcel data upon becoming root. This will make streams play and build
flags be set properly
2010-11-18 04:18:43 +01:00
Melanie
095e3aae67 Allow llDialog without any buttons and add the automatic OK button as it is
in SL.
2010-11-18 01:11:11 +01:00
opensim mirror account
b5160aade0 Merge branch 'master' of /var/git/opensim/ 2010-11-17 16:00:05 -08:00
Justin Clark-Casey (justincc)
859234f963 small refactor: reuse existing commandLine string rather than calling cmdline.ToString() again 2010-11-17 23:50:23 +00:00
opensim mirror account
a1bc7f4ba1 Merge branch 'master' of /var/git/opensim/ 2010-11-17 15:40:03 -08:00
Justin Clark-Casey (justincc)
c072a9cfb3 save all lines to history, not just those which turn out to be valid comands. does not store passwords
also, blank lines are not stored to history
this makes it easier to go back and correct a command which was simply mistyped rather than having to type it out again
2010-11-17 23:34:39 +00:00
opensim mirror account
bfe1f3fdf8 Merge branch 'master' of /var/git/opensim/ 2010-11-17 15:10:07 -08:00
Justin Clark-Casey (justincc)
af0deff7e9 Make "show queues [full]" behave like "show users [full]"
Now, "show queues" only shows root agents.  "show queues full" will show child agents as well
2010-11-17 22:55:20 +00:00
Justin Clark-Casey (justincc)
c4f3175e17 add "Unacked bytes" column to "show queues"
This should show the number of bytes sent to the client that it has not yet acknowledged.
2010-11-17 22:55:19 +00:00
Justin Clark-Casey (justincc)
2a17c39dfe Fix "show queues" console command
For each agent, this command shows how many packets have been sent/received and how many bytes remain in each of the send queues (resend, land, texture, etc.)
Sometimes useful for diagnostics
2010-11-17 22:55:19 +00:00
Justin Clark-Casey (justincc)
e6eeaaea67 minor: add some method comments 2010-11-17 22:55:06 +00:00
opensim mirror account
01c16fc8c8 Merge branch 'master' of /var/git/opensim/ 2010-11-17 11:20:09 -08:00
opensim mirror account
36495f6992 Merge branch 'master' of /var/git/opensim/ 2010-11-16 18:00:07 -08:00
opensim mirror account
82786774e4 Merge branch 'master' of /var/git/opensim/ 2010-11-16 15:20:05 -08:00
opensim mirror account
21b7cc5d61 Merge branch 'master' of /var/git/opensim/ 2010-11-16 14:00:07 -08:00
opensim mirror account
63171839a3 Merge branch 'master' of /var/git/opensim/ 2010-11-16 08:20:04 -08:00
opensim mirror account
e633b214cb Merge branch 'master' of /var/git/opensim/ 2010-11-16 06:40:10 -08:00
opensim mirror account
fa1f9bb3c1 Merge branch 'master' of /var/git/opensim/ 2010-11-16 03:20:05 -08:00
opensim mirror account
c44ab55694 Merge branch 'master' of /var/git/opensim/ 2010-11-12 16:40:03 -08:00
opensim mirror account
f0fac8ca3a Merge branch 'master' of /var/git/opensim/ 2010-11-12 15:30:10 -08:00
opensim mirror account
c79b81d2ca Merge branch 'master' of /var/git/opensim/ 2010-11-12 10:30:10 -08:00
opensim mirror account
4b21e4d7c5 Merge branch 'master' of /var/git/opensim/ 2010-11-11 18:20:08 -08:00
opensim mirror account
b02ca416e5 Merge branch 'master' of /var/git/opensim/ 2010-11-10 09:20:09 -08:00
opensim mirror account
a92d0faf50 Merge branch 'master' of /var/git/opensim/ 2010-11-09 18:20:05 -08:00
opensim mirror account
d93aff0276 Merge branch 'master' of /var/git/opensim/ 2010-11-09 16:50:03 -08:00
opensim mirror account
a969036562 Merge branch 'master' of /var/git/opensim/ 2010-11-09 15:10:08 -08:00
opensim mirror account
4a20a544d6 Merge branch 'master' of /var/git/opensim/ 2010-11-08 04:50:04 -08:00
opensim mirror account
2e4c0c66ff Merge branch 'master' of /var/git/opensim/ 2010-11-07 20:00:06 -08:00
opensim mirror account
4ff3be90e0 Merge branch 'master' of /var/git/opensim/ 2010-11-07 19:50:07 -08:00
Jonathan Freedman
4f40374464 Merge git://github.com/opensim/opensim into mantis5110 2010-11-05 19:10:02 -07:00
opensim mirror account
3711f956a6 Merge branch 'master' of /var/git/opensim/ 2010-11-05 07:40:06 -07:00
opensim mirror account
e89dcdada9 Merge branch 'master' of /var/git/opensim/ 2010-11-05 07:30:10 -07:00
opensim mirror account
e6972bfe6c Merge branch 'master' of /var/git/opensim/ 2010-11-02 20:30:05 -07:00
opensim mirror account
379fc60c06 Merge branch 'master' of /var/git/opensim/ 2010-11-02 20:00:06 -07:00
opensim mirror account
c830f85fed Merge branch 'master' of /var/git/opensim/ 2010-11-02 19:10:04 -07:00
opensim mirror account
50a3bf6e14 Merge branch 'master' of /var/git/opensim/ 2010-11-02 18:40:03 -07:00
opensim mirror account
87d56ec6ad Merge branch 'master' of /var/git/opensim/ 2010-11-02 18:00:07 -07:00
opensim mirror account
732fdbff2a Merge branch 'master' of /var/git/opensim/ 2010-11-02 17:40:04 -07:00
opensim mirror account
dabc51299c Merge branch 'master' of /var/git/opensim/ 2010-11-02 15:40:05 -07:00
opensim mirror account
2dc6c007c2 Merge branch 'master' of /var/git/opensim/ 2010-11-02 15:30:08 -07:00
opensim mirror account
57632db62e Merge branch 'master' of /var/git/opensim/ 2010-11-02 14:20:03 -07:00
opensim mirror account
cf6ae44c0a Merge branch 'master' of /var/git/opensim/ 2010-11-02 14:00:08 -07:00
opensim mirror account
c77e2c8830 Merge branch 'master' of /var/git/opensim/ 2010-11-02 12:10:07 -07:00
opensim mirror account
f7b05a5760 Merge branch 'master' of /var/git/opensim/ 2010-11-02 02:40:06 -07:00
opensim mirror account
07817abc28 Merge branch 'master' of /var/git/opensim/ 2010-11-01 08:20:06 -07:00
Jonathan Freedman
12d61d1ef5 Merge branch 'master' into mantis5110 2010-10-31 20:50:39 -04:00
opensim mirror account
c8d96f2f6a Merge branch 'master' of /var/git/opensim/ 2010-10-31 12:20:07 -07:00
Jonathan Freedman
0a56cfbfd5 * better semantics for link-region command
* actually parse name for new link-region command
2010-10-30 22:51:52 -04:00
Jonathan Freedman
95a0ea78f9 Merge branch 'master' into mantis5110 2010-10-30 18:28:07 -04:00
opensim mirror account
e6a050f79e Merge branch 'master' of /var/git/opensim/ 2010-10-30 12:40:03 -07:00
opensim mirror account
0ae4774ce5 Merge branch 'master' of /var/git/opensim/ 2010-10-30 12:10:13 -07:00
Jonathan Freedman
96a29c43b0 Merge branch 'master' into mantis5110 2010-10-30 14:11:02 -04:00
Jonathan Freedman
e371d3208c Merge branch 'master' into mantis5110
Conflicts:
	OpenSim/Region/CoreModules/Framework/EntityTransfer/EntityTransferModule.cs
	OpenSim/Services/Connectors/Simulation/SimulationServiceConnector.cs
2010-10-30 14:10:13 -04:00
opensim mirror account
574bc590a2 Merge branch 'master' of /var/git/opensim/ 2010-10-29 23:30:05 -07:00
opensim mirror account
6d52c42de2 Merge branch 'master' of /var/git/opensim/ 2010-10-29 23:10:04 -07:00
Jonathan Freedman
9e7d3e0f25 Merge branch 'master' into mantis5110 2010-10-29 23:59:16 -04:00
Jonathan Freedman
c8d65c359f Merge branch 'master' into mantis5110
Conflicts:
	OpenSim/Region/Framework/Scenes/ScenePresence.cs
2010-10-29 23:58:14 -04:00
Jonathan Freedman
594f23ff22 Merge branch 'master' into mantis5110
Conflicts:
	OpenSim/Services/GridService/HypergridLinker.cs
2010-10-29 23:46:53 -04:00
opensim mirror account
e6f7d312dd Merge branch 'master' of /var/git/opensim/ 2010-10-29 20:30:07 -07:00
Jonathan Freedman
d219317074 Merge branch 'master' into mantis5110
Conflicts:
	OpenSim/Region/Framework/Scenes/ScenePresence.cs
2010-10-29 23:12:51 -04:00
opensim mirror account
e6a7b66b08 Merge branch 'master' of /var/git/opensim/ 2010-10-29 19:50:06 -07:00
opensim mirror account
dcd5cf6bde Merge branch 'master' of /var/git/opensim/ 2010-10-29 19:20:06 -07:00
opensim mirror account
9beefc4ea9 Merge branch 'master' of /var/git/opensim/ 2010-10-29 19:10:04 -07:00
opensim mirror account
f8471de004 Merge branch 'master' of /var/git/opensim/ 2010-10-29 17:50:04 -07:00
opensim mirror account
7df180c18e Merge branch 'master' of /var/git/opensim/ 2010-10-29 17:40:03 -07:00
opensim mirror account
ae12bcc43c Merge branch 'master' of /var/git/opensim/ 2010-10-29 16:00:05 -07:00
opensim mirror account
f6b88d6208 Merge branch 'master' of /var/git/opensim/ 2010-10-29 15:50:06 -07:00
opensim mirror account
45c6ce65f5 Merge branch 'master' of /var/git/opensim/ 2010-10-29 15:20:04 -07:00
opensim mirror account
4a56ea8d88 Merge branch 'master' of /var/git/opensim/ 2010-10-29 14:10:10 -07:00
opensim mirror account
8d002c4553 Merge branch 'master' of /var/git/opensim/ 2010-10-29 14:00:07 -07:00
opensim mirror account
8acf8eb481 Merge branch 'master' of /var/git/opensim/ 2010-10-29 13:40:07 -07:00
opensim mirror account
8d8a795b28 Merge branch 'master' of /var/git/opensim/ 2010-10-29 13:20:04 -07:00
opensim mirror account
448b83b105 Merge branch 'master' of /var/git/opensim/ 2010-10-29 11:50:10 -07:00
opensim mirror account
8b867ba23e Merge branch 'master' of /var/git/opensim/ 2010-10-28 17:40:06 -07:00
opensim mirror account
71d9fac757 Merge branch 'master' of /var/git/opensim/ 2010-10-27 21:40:03 -07:00
opensim mirror account
0269ec6af0 Merge branch 'master' of /var/git/opensim/ 2010-10-27 13:40:10 -07:00
opensim mirror account
6f297a50cb Merge branch 'master' of /var/git/opensim/ 2010-10-26 21:30:05 -07:00
opensim mirror account
d6771ed4d5 Merge branch 'master' of /var/git/opensim/ 2010-10-26 21:10:12 -07:00
Jonathan Freedman
5da2743c37 Merge branch 'master' into mantis5110 2010-10-25 22:27:35 -04:00
opensim mirror account
a2c0ee8da7 Merge branch 'master' of /var/git/opensim/ 2010-10-24 16:40:06 -07:00
Jonathan Freedman
07db35697b Merge branch 'master' into mantis5110 2010-10-24 15:01:01 -04:00
Jonathan Freedman
ba9ef44506 Merge branch 'master' into mantis5110 2010-10-24 15:00:24 -04:00
Jonathan Freedman
6b9660eb96 Merge branch 'master' into mantis5110 2010-10-24 14:51:38 -04:00
opensim mirror account
17d3c76116 Merge branch 'master' of /var/git/opensim/ 2010-10-24 11:10:07 -07:00
Jonathan Freedman
3fe8fc3d51 * throw debug message when no HomeURI is set 2010-10-24 13:32:34 -04:00
opensim mirror account
c83453a69b Merge branch 'master' of /var/git/opensim/ 2010-10-23 20:40:07 -07:00
Jonathan Freedman
5ddb8b535e * a bit of additional debugging: 2010-10-23 00:18:19 -04:00
opensim mirror account
bf5cc32b5f Merge branch 'master' of /var/git/opensim/ 2010-10-22 16:00:06 -07:00
opensim mirror account
566b96a595 Merge branch 'master' of /var/git/opensim/ 2010-10-22 15:50:09 -07:00
opensim mirror account
cc411bf5f3 Merge branch 'master' of /var/git/opensim/ 2010-10-22 15:40:08 -07:00
opensim mirror account
2ad4bfcffc Merge branch 'master' of /var/git/opensim/ 2010-10-22 13:40:05 -07:00
opensim mirror account
8dfa3960fa Merge branch 'master' of /var/git/opensim/ 2010-10-22 13:20:09 -07:00
opensim mirror account
8ffea630f9 Merge branch 'master' of /var/git/opensim/ 2010-10-21 18:00:06 -07:00
opensim mirror account
6f6b5c0a5e Merge branch 'master' of /var/git/opensim/ 2010-10-21 17:30:08 -07:00
opensim mirror account
33589ba31b Merge branch 'master' of /var/git/opensim/ 2010-10-21 13:00:05 -07:00
opensim mirror account
27aac37c02 Merge branch 'master' of /var/git/opensim/ 2010-10-21 12:10:04 -07:00
opensim mirror account
e62bef2e90 Merge branch 'master' of /var/git/opensim/ 2010-10-21 08:30:12 -07:00
opensim mirror account
656b2f84a8 Merge branch 'master' of /var/git/opensim/ 2010-10-21 06:10:04 -07:00
opensim mirror account
bab7f99865 Merge branch 'master' of /var/git/opensim/ 2010-10-21 02:20:04 -07:00
opensim mirror account
6df87e5b3f Merge branch 'master' of /var/git/opensim/ 2010-10-21 00:10:03 -07:00
opensim mirror account
7a8aba0bc0 Merge branch 'master' of /var/git/opensim/ 2010-10-20 20:50:06 -07:00
opensim mirror account
dfa654154c Merge branch 'master' of /var/git/opensim/ 2010-10-20 19:40:09 -07:00
647 changed files with 31248 additions and 31292 deletions

View File

@@ -128,6 +128,11 @@
</exec>
<fail message="Failures reported in unit tests." unless="${int::parse(testresult.opensim.region.coremodules.tests)==0}" />
<exec program="${nunitcmd}" failonerror="true" resultproperty="testresult.opensim.region.optionalmodules.tests">
<arg value="./bin/OpenSim.Region.OptionalModules.Tests.dll" />
</exec>
<fail message="Failures reported in unit tests." unless="${int::parse(testresult.opensim.region.optionalmodules.tests)==0}" />
<exec program="${nunitcmd}" failonerror="true" resultproperty="testresult.opensim.region.framework.tests">
<arg value="./bin/OpenSim.Region.Framework.Tests.dll" />
</exec>
@@ -201,6 +206,17 @@
<exec program="monocov">
<arg value="--export-html=./cov/OpenSim.Region.CoreModules ./cov/OpenSim.Region.CoreModules.cov" />
</exec>
<exec program="mono">
<arg value="--debug" />
<arg value="--profile=monocov:outfile=./cov/OpenSim.Region.OptionalModules.cov,+[OpenSim.Region.OptionalModules]" />
<arg value="/usr/lib/nunit/nunit-console.exe" />
<arg value="./bin/OpenSim.Region.OptionalModules.Tests.dll" />
</exec>
<delete dir="./cov/OpenSim.Region.OptionalModules" />
<exec program="monocov">
<arg value="--export-html=./cov/OpenSim.Region.OptionalModules ./cov/OpenSim.Region.OptionalModules.cov" />
</exec>
<exec program="mono">
<arg value="--debug" />
@@ -298,6 +314,11 @@
<arg value="-xml=test-results/OpenSim.Region.CoreModules.Tests.dll-Results.xml" />
</exec>
<exec program="${nunitcmd}" failonerror="false" resultproperty="testresult.opensim.region.optionalmodules.tests">
<arg value="./bin/OpenSim.Region.OptionalModules.Tests.dll" />
<arg value="-xml=test-results/OpenSim.Region.OptionalModules.Tests.dll-Results.xml" />
</exec>
<exec program="${nunitcmd}" failonerror="false" resultproperty="testresult.opensim.region.framework.tests">
<arg value="./bin/OpenSim.Region.Framework.Tests.dll" />
<arg value="-xml=test-results/OpenSim.Region.Framework.Tests.dll-Results.xml" />
@@ -314,6 +335,7 @@
<!-- <fail message="Failures reported in unit tests." unless="${int::parse(testresult.opensim.region.clientstack.lindenudp.tests)==0}" /> -->
<fail message="Failures reported in unit tests." unless="${int::parse(testresult.opensim.region.scriptengine.tests)==0}" />
<fail message="Failures reported in unit tests." unless="${int::parse(testresult.opensim.region.coremodules.tests)==0}" />
<fail message="Failures reported in unit tests." unless="${int::parse(testresult.opensim.region.optionalmodules.tests)==0}" />
<fail message="Failures reported in unit tests." unless="${int::parse(testresult.opensim.region.framework.tests)==0}" />
<fail message="Failures reported in unit tests." unless="${int::parse(testresult.opensim.data.tests)==0}" />
@@ -338,6 +360,7 @@
<!-- <include name="./bin/OpenSim.Region.ClientStack.LindenUDP.Tests.dll" /> -->
<!-- <include name="./bin/OpenSim.Region.ScriptEngine.Tests.dll" /> -->
<!-- <include name="./bin/OpenSim.Region.CoreModules.Tests.dll" /> -->
<!-- <include name="./bin/OpenSim.Region.OptionalModules.Tests.dll" /> -->
<!-- <include name="./bin/OpenSim.Region.Framework.Tests.dll" /> -->
<!-- <include name="./bin/OpenSim.Data.SQLite.Tests.dll" /> -->
<!-- <include name="./bin/OpenSim.Data.MySQL.Tests.dll" /> -->

View File

@@ -1,34 +1,36 @@
The following people have contributed to OpenSim (Thank you
for your effort!)
Add your name in here if you have committed to OpenSim
= Current OpenSim Developers (in very rough order of appearance) =
These folks represent the current core team for OpenSim, and are the
people that make the day to day of OpenSim happen.
* justincc
* chi11ken (Genkii)
* dahlia
* Melanie Thielker
* Diva (Crista Lopes, University of California, Irvine)
* Dan Lake (Intel)
* Marck
* Mic Bowman (Intel)
* BlueWall (James Hughes)
= Core Developers Following the White Rabbit =
Core developers who have temporarily (we hope) gone chasing the white rabbit.
They are in all similar to the active core developers, except that they haven't
been that active lately, so their voting rights are awaiting their come back.
* MW (Tribal Media AB)
* Adam Frisby (DeepThink Pty Ltd)
* MingChen (DeepThink Pty Ltd)
* lbsa71 (Tribal Media AB)
* Sean Dague / sdague (IBM)
* Tedd
* justincc
* Teravus (w3z)
* Johan Berntsson (3Di)
* Ckrinke (Charles Krinke)
* chi11ken (Genkii)
* adjohn (Genkii)
* Dr Scofield aka Dirk Husemann (IBM Research - Zurich)
* dahlia
* mikem (3Di)
* Melanie Thielker
* Homer_Horwitz
* idb (Ian Brown)
* Diva (Crista Lopes, University of California, Irvine)
* nlin (3Di)
* Arthur Rodrigo S Valadares (IBM)
* John Hurliman
= Past Open Sim Developers =
These folks are alumns of the OpenSim core group, but are now
@@ -44,6 +46,12 @@ where we are today.
* Dalien
* Darok
* Alondria
* Sean Dague / sdague (IBM)
* Tedd
* MingChen (DeepThink Pty Ltd)
* adjohn (Genkii)
* idb (Ian Brown)
* Johan Berntsson (3Di)
= Additional OpenSim Contributors =
@@ -102,6 +110,7 @@ what it is today.
* Misterblue (Intel)
* Mircea Kitsune
* mpallari
* MrMonkE
* nornalbion
* Omar Vera Ustariz (IBM)
* openlifegrid.com
@@ -117,6 +126,7 @@ what it is today.
* SachaMagne
* Salahzar Stenvaag
* sempuki
* SignpostMarv
* Snoopy
* Strawberry Fride
* tglion

View File

@@ -68,7 +68,7 @@ namespace OpenSim.ApplicationPlugins.LoadRegions
public void Initialise()
{
m_log.Error("[LOADREGIONS]: " + Name + " cannot be default-initialized!");
m_log.Error("[LOAD REGIONS PLUGIN]: " + Name + " cannot be default-initialized!");
throw new PluginNotInitialisedException(Name);
}
@@ -85,46 +85,46 @@ namespace OpenSim.ApplicationPlugins.LoadRegions
IRegionLoader regionLoader;
if (m_openSim.ConfigSource.Source.Configs["Startup"].GetString("region_info_source", "filesystem") == "filesystem")
{
m_log.Info("[LOADREGIONS]: Loading region configurations from filesystem");
m_log.Info("[LOAD REGIONS PLUGIN]: Loading region configurations from filesystem");
regionLoader = new RegionLoaderFileSystem();
}
else
{
m_log.Info("[LOADREGIONSPLUGIN]: Loading region configurations from web");
m_log.Info("[LOAD REGIONS PLUGIN]: Loading region configurations from web");
regionLoader = new RegionLoaderWebServer();
}
m_log.Info("[LOADREGIONSPLUGIN]: Loading region configurations...");
regionLoader.SetIniConfigSource(m_openSim.ConfigSource.Source);
RegionInfo[] regionsToLoad = regionLoader.LoadRegions();
m_log.Info("[LOADREGIONSPLUGIN]: Loading specific shared modules...");
m_log.Info("[LOADREGIONSPLUGIN]: DynamicTextureModule...");
m_log.Info("[LOAD REGIONS PLUGIN]: Loading specific shared modules...");
m_log.Info("[LOAD REGIONS PLUGIN]: DynamicTextureModule...");
m_openSim.ModuleLoader.LoadDefaultSharedModule(new DynamicTextureModule());
m_log.Info("[LOADREGIONSPLUGIN]: LoadImageURLModule...");
m_log.Info("[LOAD REGIONS PLUGIN]: LoadImageURLModule...");
m_openSim.ModuleLoader.LoadDefaultSharedModule(new LoadImageURLModule());
m_log.Info("[LOADREGIONSPLUGIN]: XMLRPCModule...");
m_log.Info("[LOAD REGIONS PLUGIN]: XMLRPCModule...");
m_openSim.ModuleLoader.LoadDefaultSharedModule(new XMLRPCModule());
m_log.Info("[LOADREGIONSPLUGIN]: AssetTransactionModule...");
m_openSim.ModuleLoader.LoadDefaultSharedModule(new AssetTransactionModule());
m_log.Info("[LOADREGIONSPLUGIN]: Done.");
// m_log.Info("[LOADREGIONSPLUGIN]: AssetTransactionModule...");
// m_openSim.ModuleLoader.LoadDefaultSharedModule(new AssetTransactionModule());
m_log.Info("[LOAD REGIONS PLUGIN]: Done.");
if (!CheckRegionsForSanity(regionsToLoad))
{
m_log.Error("[LOADREGIONS]: Halting startup due to conflicts in region configurations");
m_log.Error("[LOAD REGIONS PLUGIN]: Halting startup due to conflicts in region configurations");
Environment.Exit(1);
}
for (int i = 0; i < regionsToLoad.Length; i++)
{
IScene scene;
m_log.Debug("[LOADREGIONS]: Creating Region: " + regionsToLoad[i].RegionName + " (ThreadID: " +
m_log.Debug("[LOAD REGIONS PLUGIN]: Creating Region: " + regionsToLoad[i].RegionName + " (ThreadID: " +
Thread.CurrentThread.ManagedThreadId.ToString() +
")");
m_openSim.PopulateRegionEstateInfo(regionsToLoad[i]);
m_openSim.CreateRegion(regionsToLoad[i], true, out scene);
regionsToLoad[i].EstateSettings.Save();
if (scene != null)
{
m_newRegionCreatedHandler = OnNewRegionCreated;
@@ -162,7 +162,7 @@ namespace OpenSim.ApplicationPlugins.LoadRegions
if (regions[i].RegionID == regions[j].RegionID)
{
m_log.ErrorFormat(
"[LOADREGIONS]: Regions {0} and {1} have the same UUID {2}",
"[LOAD REGIONS PLUGIN]: Regions {0} and {1} have the same UUID {2}",
regions[i].RegionName, regions[j].RegionName, regions[i].RegionID);
return false;
}
@@ -170,14 +170,14 @@ namespace OpenSim.ApplicationPlugins.LoadRegions
regions[i].RegionLocX == regions[j].RegionLocX && regions[i].RegionLocY == regions[j].RegionLocY)
{
m_log.ErrorFormat(
"[LOADREGIONS]: Regions {0} and {1} have the same grid location ({2}, {3})",
"[LOAD REGIONS PLUGIN]: Regions {0} and {1} have the same grid location ({2}, {3})",
regions[i].RegionName, regions[j].RegionName, regions[i].RegionLocX, regions[i].RegionLocY);
return false;
}
else if (regions[i].InternalEndPoint.Port == regions[j].InternalEndPoint.Port)
{
m_log.ErrorFormat(
"[LOADREGIONS]: Regions {0} and {1} have the same internal IP port {2}",
"[LOAD REGIONS PLUGIN]: Regions {0} and {1} have the same internal IP port {2}",
regions[i].RegionName, regions[j].RegionName, regions[i].InternalEndPoint.Port);
return false;
}

View File

@@ -62,7 +62,7 @@ namespace OpenSim.ApplicationPlugins.RegionModulesController
new List<ISharedRegionModule>();
#region IApplicationPlugin implementation
public void Initialise (OpenSimBase openSim)
{
m_openSim = openSim;
@@ -91,66 +91,24 @@ namespace OpenSim.ApplicationPlugins.RegionModulesController
{
if (node.Type.GetInterface(typeof(ISharedRegionModule).ToString()) != null)
{
// Get the config string
string moduleString =
modulesConfig.GetString("Setup_" + node.Id, String.Empty);
// We have a selector
if (moduleString != String.Empty)
if (CheckModuleEnabled(node, modulesConfig))
{
// Allow disabling modules even if they don't have
// support for it
if (moduleString == "disabled")
continue;
// Split off port, if present
string[] moduleParts = moduleString.Split(new char[] { '/' }, 2);
// Format is [port/][class]
string className = moduleParts[0];
if (moduleParts.Length > 1)
className = moduleParts[1];
// Match the class name if given
if (className != String.Empty &&
node.Type.ToString() != className)
continue;
m_log.DebugFormat("[REGIONMODULES]: Found shared region module {0}, class {1}", node.Id, node.Type);
m_sharedModules.Add(node);
}
m_log.DebugFormat("[REGIONMODULES]: Found shared region module {0}, class {1}", node.Id, node.Type);
m_sharedModules.Add(node);
}
else if (node.Type.GetInterface(typeof(INonSharedRegionModule).ToString()) != null)
{
// Get the config string
string moduleString =
modulesConfig.GetString("Setup_" + node.Id, String.Empty);
// We have a selector
if (moduleString != String.Empty)
if (CheckModuleEnabled(node, modulesConfig))
{
// Allow disabling modules even if they don't have
// support for it
if (moduleString == "disabled")
continue;
// Split off port, if present
string[] moduleParts = moduleString.Split(new char[] { '/' }, 2);
// Format is [port/][class]
string className = moduleParts[0];
if (moduleParts.Length > 1)
className = moduleParts[1];
// Match the class name if given
if (className != String.Empty &&
node.Type.ToString() != className)
continue;
m_log.DebugFormat("[REGIONMODULES]: Found non-shared region module {0}, class {1}", node.Id, node.Type);
m_nonSharedModules.Add(node);
}
m_log.DebugFormat("[REGIONMODULES]: Found non-shared region module {0}, class {1}", node.Id, node.Type);
m_nonSharedModules.Add(node);
}
else
{
m_log.DebugFormat("[REGIONMODULES]: Found unknown type of module {0}, class {1}", node.Id, node.Type);
}
}
// Load and init the module. We try a constructor with a port
@@ -197,8 +155,6 @@ namespace OpenSim.ApplicationPlugins.RegionModulesController
m_sharedInstances.Add(module);
module.Initialise(m_openSim.ConfigSource.Source);
}
}
public void PostInitialise ()
@@ -210,7 +166,6 @@ namespace OpenSim.ApplicationPlugins.RegionModulesController
{
module.PostInitialise();
}
}
#endregion
@@ -244,7 +199,6 @@ namespace OpenSim.ApplicationPlugins.RegionModulesController
#endregion
public string Version
{
get
@@ -262,6 +216,42 @@ namespace OpenSim.ApplicationPlugins.RegionModulesController
}
#region IRegionModulesController implementation
/// <summary>
/// Check that the given module is no disabled in the [Modules] section of the config files.
/// </summary>
/// <param name="node"></param>
/// <param name="modulesConfig">The config section</param>
/// <returns>true if the module is enabled, false if it is disabled</returns>
protected bool CheckModuleEnabled(TypeExtensionNode node, IConfig modulesConfig)
{
// Get the config string
string moduleString =
modulesConfig.GetString("Setup_" + node.Id, String.Empty);
// We have a selector
if (moduleString != String.Empty)
{
// Allow disabling modules even if they don't have
// support for it
if (moduleString == "disabled")
return false;
// Split off port, if present
string[] moduleParts = moduleString.Split(new char[] { '/' }, 2);
// Format is [port/][class]
string className = moduleParts[0];
if (moduleParts.Length > 1)
className = moduleParts[1];
// Match the class name if given
if (className != String.Empty &&
node.Type.ToString() != className)
return false;
}
return true;
}
// The root of all evil.
// This is where we handle adding the modules to scenes when they

View File

@@ -94,7 +94,7 @@ namespace OpenSim.ApplicationPlugins.RemoteController
public void Initialise()
{
m_log.Info("[RADMIN]: " + Name + " cannot be default-initialized!");
m_log.Error("[RADMIN]: " + Name + " cannot be default-initialized!");
throw new PluginNotInitialisedException(Name);
}
@@ -111,7 +111,7 @@ namespace OpenSim.ApplicationPlugins.RemoteController
else
{
m_config = m_configSource.Configs["RemoteAdmin"];
m_log.Info("[RADMIN]: Remote Admin Plugin Enabled");
m_log.Debug("[RADMIN]: Remote Admin Plugin Enabled");
m_requiredPassword = m_config.GetString("access_password", String.Empty);
int port = m_config.GetInt("port", 0);
@@ -131,6 +131,7 @@ namespace OpenSim.ApplicationPlugins.RemoteController
availableMethods["admin_dialog"] = XmlRpcDialogMethod;
availableMethods["admin_restart"] = XmlRpcRestartMethod;
availableMethods["admin_load_heightmap"] = XmlRpcLoadHeightmapMethod;
availableMethods["admin_save_heightmap"] = XmlRpcSaveHeightmapMethod;
// User management
availableMethods["admin_create_user"] = XmlRpcCreateUserMethod;
availableMethods["admin_create_user_email"] = XmlRpcCreateUserMethod;
@@ -209,73 +210,64 @@ namespace OpenSim.ApplicationPlugins.RemoteController
UUID regionID = new UUID((string) requestData["regionID"]);
responseData["accepted"] = true;
responseData["success"] = true;
response.Value = responseData;
Scene rebootedScene;
responseData["success"] = false;
responseData["accepted"] = true;
if (!m_application.SceneManager.TryGetScene(regionID, out rebootedScene))
throw new Exception("region not found");
int timeout = 30000;
string message;
List<int> times = new List<int>();
if (requestData.ContainsKey("restart")
&& ((string)requestData["restart"] == "delayed")
&& requestData.ContainsKey("milliseconds"))
if (requestData.ContainsKey("alerts"))
{
timeout = Int32.Parse(requestData["milliseconds"].ToString());
if (timeout < 15000)
{
//It must be at least 15 seconds or we'll cancel the reboot request
timeout = 15000;
}
message
= "Region is restarting in " + ((int)(timeout / 1000)).ToString()
+ " second(s). Please save what you are doing and log out.";
string[] alertTimes = requestData["alerts"].ToString().Split( new char[] {','});
foreach (string a in alertTimes)
times.Add(Convert.ToInt32(a));
}
else
{
message = "Region is restarting in 30 second(s). Please save what you are doing and log out.";
int timeout = 30;
if (requestData.ContainsKey("milliseconds"))
timeout = Int32.Parse(requestData["milliseconds"].ToString()) / 1000;
while (timeout > 0)
{
times.Add(timeout);
if (timeout > 300)
timeout -= 120;
else if (timeout > 30)
timeout -= 30;
else
timeout -= 15;
}
}
message = "Region is restarting in {0}. Please save what you are doing and log out.";
if (requestData.ContainsKey("message"))
message = requestData["message"].ToString();
bool notice = true;
if (requestData.ContainsKey("noticetype")
&& ((string)requestData["noticetype"] == "dialog"))
{
m_application.SceneManager.ForEachScene(
delegate(Scene scene)
{
IDialogModule dialogModule = scene.RequestModuleInterface<IDialogModule>();
if (dialogModule != null)
dialogModule.SendNotificationToUsersInRegion(UUID.Zero, "System", message);
});
}
else
{
if (!requestData.ContainsKey("noticetype")
|| ((string)requestData["noticetype"] != "none"))
{
m_application.SceneManager.ForEachScene(
delegate(Scene scene)
{
IDialogModule dialogModule = scene.RequestModuleInterface<IDialogModule>();
if (dialogModule != null)
dialogModule.SendGeneralAlert(message);
});
}
notice = false;
}
responseData["rebooting"] = true;
IRestartModule restartModule = rebootedScene.RequestModuleInterface<IRestartModule>();
if (restartModule != null)
{
restartModule.ScheduleRestart(UUID.Zero, message, times.ToArray(), notice);
responseData["success"] = true;
}
response.Value = responseData;
rebootedScene.Restart(timeout / 1000,false);
}
catch (Exception e)
{
m_log.ErrorFormat("[RADMIN]: Restart region: failed: {0}", e.Message);
m_log.DebugFormat("[RADMIN]: Restart region: failed: {0}", e.ToString());
m_log.ErrorFormat("[RADMIN]: Restart region: failed: {0} {1}", e.Message, e.StackTrace);
responseData["accepted"] = false;
responseData["success"] = false;
responseData["rebooting"] = false;
@@ -321,8 +313,7 @@ namespace OpenSim.ApplicationPlugins.RemoteController
}
catch (Exception e)
{
m_log.ErrorFormat("[RADMIN]: Broadcasting: failed: {0}", e.Message);
m_log.DebugFormat("[RADMIN]: Broadcasting: failed: {0}", e.ToString());
m_log.ErrorFormat("[RADMIN]: Broadcasting: failed: {0}", e.Message, e.StackTrace);
responseData["accepted"] = false;
responseData["success"] = false;
@@ -392,7 +383,7 @@ namespace OpenSim.ApplicationPlugins.RemoteController
{
Hashtable requestData = (Hashtable) request.Params[0];
m_log.DebugFormat("[RADMIN]: Load Terrain: XmlRpc {0}", request.ToString());
m_log.DebugFormat("[RADMIN]: Load Terrain: XmlRpc {0}", request);
// foreach (string k in requestData.Keys)
// {
// m_log.DebugFormat("[RADMIN]: Load Terrain: XmlRpc {0}: >{1}< {2}",
@@ -439,8 +430,7 @@ namespace OpenSim.ApplicationPlugins.RemoteController
}
catch (Exception e)
{
m_log.ErrorFormat("[RADMIN]: Terrain Loading: failed: {0}", e.Message);
m_log.DebugFormat("[RADMIN]: Terrain Loading: failed: {0}", e.ToString());
m_log.ErrorFormat("[RADMIN]: Terrain Loading: failed: {0} {1}", e.Message, e.StackTrace);
responseData["success"] = false;
responseData["error"] = e.Message;
@@ -451,6 +441,61 @@ namespace OpenSim.ApplicationPlugins.RemoteController
return response;
}
public XmlRpcResponse XmlRpcSaveHeightmapMethod(XmlRpcRequest request, IPEndPoint remoteClient)
{
XmlRpcResponse response = new XmlRpcResponse();
Hashtable responseData = new Hashtable();
m_log.Info("[RADMIN]: Save height maps request started");
try
{
Hashtable requestData = (Hashtable)request.Params[0];
m_log.DebugFormat("[RADMIN]: Save Terrain: XmlRpc {0}", request.ToString());
CheckStringParameters(request, new string[] { "password", "filename", "regionid" });
if (m_requiredPassword != String.Empty &&
(!requestData.Contains("password") || (string)requestData["password"] != m_requiredPassword))
throw new Exception("wrong password");
string file = (string)requestData["filename"];
UUID regionID = (UUID)(string)requestData["regionid"];
m_log.InfoFormat("[RADMIN]: Terrain Saving: {0}", file);
responseData["accepted"] = true;
Scene region = null;
if (!m_application.SceneManager.TryGetScene(regionID, out region))
throw new Exception("1: unable to get a scene with that name");
ITerrainModule terrainModule = region.RequestModuleInterface<ITerrainModule>();
if (null == terrainModule) throw new Exception("terrain module not available");
terrainModule.SaveToFile(file);
responseData["success"] = false;
response.Value = responseData;
}
catch (Exception e)
{
m_log.ErrorFormat("[RADMIN]: Terrain Saving: failed: {0}", e.Message);
m_log.DebugFormat("[RADMIN]: Terrain Saving: failed: {0}", e.ToString());
responseData["success"] = false;
responseData["error"] = e.Message;
}
m_log.Info("[RADMIN]: Save height maps request complete");
return response;
}
public XmlRpcResponse XmlRpcShutdownMethod(XmlRpcRequest request, IPEndPoint remoteClient)
{
m_log.Info("[RADMIN]: Received Shutdown Administrator Request");
@@ -528,14 +573,14 @@ namespace OpenSim.ApplicationPlugins.RemoteController
}
catch (Exception e)
{
m_log.ErrorFormat("[RADMIN] Shutdown: failed: {0}", e.Message);
m_log.DebugFormat("[RADMIN] Shutdown: failed: {0}", e.ToString());
m_log.ErrorFormat("[RADMIN]: Shutdown: failed: {0} {1}", e.Message, e.StackTrace);
responseData["accepted"] = false;
responseData["error"] = e.Message;
response.Value = responseData;
}
m_log.Info("[RADMIN]: Shutdown Administrator Request complete");
return response;
}
@@ -836,8 +881,7 @@ namespace OpenSim.ApplicationPlugins.RemoteController
}
catch (Exception e)
{
m_log.ErrorFormat("[RADMIN] CreateRegion: failed {0}", e.Message);
m_log.DebugFormat("[RADMIN] CreateRegion: failed {0}", e.ToString());
m_log.ErrorFormat("[RADMIN] CreateRegion: failed {0} {1}", e.Message, e.StackTrace);
responseData["success"] = false;
responseData["error"] = e.Message;
@@ -903,8 +947,7 @@ namespace OpenSim.ApplicationPlugins.RemoteController
}
catch (Exception e)
{
m_log.ErrorFormat("[RADMIN] DeleteRegion: failed {0}", e.Message);
m_log.DebugFormat("[RADMIN] DeleteRegion: failed {0}", e.ToString());
m_log.ErrorFormat("[RADMIN] DeleteRegion: failed {0} {1}", e.Message, e.StackTrace);
responseData["success"] = false;
responseData["error"] = e.Message;
@@ -995,8 +1038,7 @@ namespace OpenSim.ApplicationPlugins.RemoteController
}
catch (Exception e)
{
m_log.ErrorFormat("[RADMIN] CloseRegion: failed {0}", e.Message);
m_log.DebugFormat("[RADMIN] CloseRegion: failed {0}", e.ToString());
m_log.ErrorFormat("[RADMIN]: CloseRegion: failed {0} {1}", e.Message, e.StackTrace);
responseData["success"] = false;
responseData["error"] = e.Message;
@@ -1093,8 +1135,7 @@ namespace OpenSim.ApplicationPlugins.RemoteController
}
catch (Exception e)
{
m_log.ErrorFormat("[RADMIN] ModifyRegion: failed {0}", e.Message);
m_log.DebugFormat("[RADMIN] ModifyRegion: failed {0}", e.ToString());
m_log.ErrorFormat("[RADMIN] ModifyRegion: failed {0} {1}", e.Message, e.StackTrace);
responseData["success"] = false;
responseData["error"] = e.Message;
@@ -1217,8 +1258,7 @@ namespace OpenSim.ApplicationPlugins.RemoteController
}
catch (Exception e)
{
m_log.ErrorFormat("[RADMIN] CreateUser: failed: {0}", e.Message);
m_log.DebugFormat("[RADMIN] CreateUser: failed: {0}", e.ToString());
m_log.ErrorFormat("[RADMIN]: CreateUser: failed: {0} {1}", e.Message, e.StackTrace);
responseData["success"] = false;
responseData["avatar_uuid"] = UUID.Zero.ToString();
@@ -1309,8 +1349,7 @@ namespace OpenSim.ApplicationPlugins.RemoteController
}
catch (Exception e)
{
m_log.ErrorFormat("[RADMIN] UserExists: failed: {0}", e.Message);
m_log.DebugFormat("[RADMIN] UserExists: failed: {0}", e.ToString());
m_log.ErrorFormat("[RADMIN]: UserExists: failed: {0} {1}", e.Message, e.StackTrace);
responseData["success"] = false;
responseData["error"] = e.Message;
@@ -1483,9 +1522,7 @@ namespace OpenSim.ApplicationPlugins.RemoteController
}
catch (Exception e)
{
m_log.ErrorFormat("[RADMIN] UpdateUserAccount: failed: {0}", e.Message);
m_log.DebugFormat("[RADMIN] UpdateUserAccount: failed: {0}", e.ToString());
m_log.ErrorFormat("[RADMIN] UpdateUserAccount: failed: {0} {1}", e.Message, e.StackTrace);
responseData["success"] = false;
responseData["avatar_uuid"] = UUID.Zero.ToString();
@@ -1493,6 +1530,7 @@ namespace OpenSim.ApplicationPlugins.RemoteController
response.Value = responseData;
}
m_log.Info("[RADMIN]: UpdateUserAccount: request complete");
return response;
}
@@ -1508,7 +1546,7 @@ namespace OpenSim.ApplicationPlugins.RemoteController
private void UpdateUserAppearance(Hashtable responseData, Hashtable requestData, UUID userid)
{
m_log.DebugFormat("[RADMIN] updateUserAppearance");
m_log.DebugFormat("[RADMIN]: updateUserAppearance");
string defaultMale = m_config.GetString("default_male", "Default Male");
string defaultFemale = m_config.GetString("default_female", "Default Female");
@@ -1548,16 +1586,16 @@ namespace OpenSim.ApplicationPlugins.RemoteController
if (String.IsNullOrEmpty(model))
{
m_log.DebugFormat("[RADMIN] Appearance update not requested");
m_log.DebugFormat("[RADMIN]: Appearance update not requested");
return;
}
m_log.DebugFormat("[RADMIN] Setting appearance for avatar {0}, using model <{1}>", userid, model);
m_log.DebugFormat("[RADMIN]: Setting appearance for avatar {0}, using model <{1}>", userid, model);
string[] modelSpecifiers = model.Split();
if (modelSpecifiers.Length != 2)
{
m_log.WarnFormat("[RADMIN] User appearance not set for {0}. Invalid model name : <{1}>", userid, model);
m_log.WarnFormat("[RADMIN]: User appearance not set for {0}. Invalid model name : <{1}>", userid, model);
// modelSpecifiers = dmodel.Split();
return;
}
@@ -1568,7 +1606,7 @@ namespace OpenSim.ApplicationPlugins.RemoteController
if (modelProfile == null)
{
m_log.WarnFormat("[RADMIN] Requested model ({0}) not found. Appearance unchanged", model);
m_log.WarnFormat("[RADMIN]: Requested model ({0}) not found. Appearance unchanged", model);
return;
}
@@ -1578,7 +1616,7 @@ namespace OpenSim.ApplicationPlugins.RemoteController
EstablishAppearance(userid, modelProfile.PrincipalID);
m_log.DebugFormat("[RADMIN] Finished setting appearance for avatar {0}, using model {1}",
m_log.DebugFormat("[RADMIN]: Finished setting appearance for avatar {0}, using model {1}",
userid, model);
}
@@ -1590,7 +1628,7 @@ namespace OpenSim.ApplicationPlugins.RemoteController
private void EstablishAppearance(UUID destination, UUID source)
{
m_log.DebugFormat("[RADMIN] Initializing inventory for {0} from {1}", destination, source);
m_log.DebugFormat("[RADMIN]: Initializing inventory for {0} from {1}", destination, source);
Scene scene = m_application.SceneManager.CurrentOrFirstScene;
// If the model has no associated appearance we're done.
@@ -1612,7 +1650,7 @@ namespace OpenSim.ApplicationPlugins.RemoteController
}
catch (Exception e)
{
m_log.WarnFormat("[RADMIN] Error transferring appearance for {0} : {1}",
m_log.WarnFormat("[RADMIN]: Error transferring appearance for {0} : {1}",
destination, e.Message);
}
@@ -1643,7 +1681,7 @@ namespace OpenSim.ApplicationPlugins.RemoteController
}
catch (Exception e)
{
m_log.WarnFormat("[RADMIN] Error transferring appearance for {0} : {1}",
m_log.WarnFormat("[RADMIN]: Error transferring appearance for {0} : {1}",
destination, e.Message);
}
@@ -1678,7 +1716,7 @@ namespace OpenSim.ApplicationPlugins.RemoteController
destinationFolder.ParentID = inventoryService.GetRootFolder(destination).ID;
destinationFolder.Version = 1;
inventoryService.AddFolder(destinationFolder); // store base record
m_log.ErrorFormat("[RADMIN] Created folder for destination {0}", source);
m_log.ErrorFormat("[RADMIN]: Created folder for destination {0}", source);
}
// Wearables
@@ -1698,10 +1736,12 @@ namespace OpenSim.ApplicationPlugins.RemoteController
{
InventoryItemBase destinationItem = new InventoryItemBase(UUID.Random(), destination);
destinationItem.Name = item.Name;
destinationItem.Owner = destination;
destinationItem.Description = item.Description;
destinationItem.InvType = item.InvType;
destinationItem.CreatorId = item.CreatorId;
destinationItem.CreatorIdAsUuid = item.CreatorIdAsUuid;
destinationItem.CreatorData = item.CreatorData;
destinationItem.NextPermissions = item.NextPermissions;
destinationItem.CurrentPermissions = item.CurrentPermissions;
destinationItem.BasePermissions = item.BasePermissions;
@@ -1716,6 +1756,7 @@ namespace OpenSim.ApplicationPlugins.RemoteController
destinationItem.Flags = item.Flags;
destinationItem.CreationDate = item.CreationDate;
destinationItem.Folder = destinationFolder.ID;
ApplyNextOwnerPermissions(destinationItem);
m_application.SceneManager.CurrentOrFirstScene.AddInventoryItem(destinationItem);
m_log.DebugFormat("[RADMIN]: Added item {0} to folder {1}", destinationItem.ID, destinationFolder.ID);
@@ -1750,10 +1791,12 @@ namespace OpenSim.ApplicationPlugins.RemoteController
{
InventoryItemBase destinationItem = new InventoryItemBase(UUID.Random(), destination);
destinationItem.Name = item.Name;
destinationItem.Owner = destination;
destinationItem.Description = item.Description;
destinationItem.InvType = item.InvType;
destinationItem.CreatorId = item.CreatorId;
destinationItem.CreatorIdAsUuid = item.CreatorIdAsUuid;
destinationItem.CreatorData = item.CreatorData;
destinationItem.NextPermissions = item.NextPermissions;
destinationItem.CurrentPermissions = item.CurrentPermissions;
destinationItem.BasePermissions = item.BasePermissions;
@@ -1768,6 +1811,7 @@ namespace OpenSim.ApplicationPlugins.RemoteController
destinationItem.Flags = item.Flags;
destinationItem.CreationDate = item.CreationDate;
destinationItem.Folder = destinationFolder.ID;
ApplyNextOwnerPermissions(destinationItem);
m_application.SceneManager.CurrentOrFirstScene.AddInventoryItem(destinationItem);
m_log.DebugFormat("[RADMIN]: Added item {0} to folder {1}", destinationItem.ID, destinationFolder.ID);
@@ -1825,13 +1869,17 @@ namespace OpenSim.ApplicationPlugins.RemoteController
{
destinationFolder = new InventoryFolderBase();
destinationFolder.ID = UUID.Random();
destinationFolder.Name = assetType.ToString();
if (assetType == AssetType.Clothing) {
destinationFolder.Name = "Clothing";
} else {
destinationFolder.Name = "Body Parts";
}
destinationFolder.Owner = destination;
destinationFolder.Type = (short)assetType;
destinationFolder.ParentID = inventoryService.GetRootFolder(destination).ID;
destinationFolder.Version = 1;
inventoryService.AddFolder(destinationFolder); // store base record
m_log.ErrorFormat("[RADMIN] Created folder for destination {0}", source);
m_log.ErrorFormat("[RADMIN]: Created folder for destination {0}", source);
}
InventoryFolderBase extraFolder;
@@ -1849,7 +1897,7 @@ namespace OpenSim.ApplicationPlugins.RemoteController
extraFolder.ParentID = destinationFolder.ID;
inventoryService.AddFolder(extraFolder);
m_log.DebugFormat("[RADMIN] Added folder {0} to folder {1}", extraFolder.ID, sourceFolder.ID);
m_log.DebugFormat("[RADMIN]: Added folder {0} to folder {1}", extraFolder.ID, sourceFolder.ID);
List<InventoryItemBase> items = inventoryService.GetFolderContent(source, folder.ID).Items;
@@ -1857,10 +1905,12 @@ namespace OpenSim.ApplicationPlugins.RemoteController
{
InventoryItemBase destinationItem = new InventoryItemBase(UUID.Random(), destination);
destinationItem.Name = item.Name;
destinationItem.Owner = destination;
destinationItem.Description = item.Description;
destinationItem.InvType = item.InvType;
destinationItem.CreatorId = item.CreatorId;
destinationItem.CreatorIdAsUuid = item.CreatorIdAsUuid;
destinationItem.CreatorData = item.CreatorData;
destinationItem.NextPermissions = item.NextPermissions;
destinationItem.CurrentPermissions = item.CurrentPermissions;
destinationItem.BasePermissions = item.BasePermissions;
@@ -1875,6 +1925,7 @@ namespace OpenSim.ApplicationPlugins.RemoteController
destinationItem.Flags = item.Flags;
destinationItem.CreationDate = item.CreationDate;
destinationItem.Folder = extraFolder.ID;
ApplyNextOwnerPermissions(destinationItem);
m_application.SceneManager.CurrentOrFirstScene.AddInventoryItem(destinationItem);
inventoryMap.Add(item.ID, destinationItem.ID);
@@ -1891,6 +1942,29 @@ namespace OpenSim.ApplicationPlugins.RemoteController
}
}
/// <summary>
/// Apply next owner permissions.
/// </summary>
private void ApplyNextOwnerPermissions(InventoryItemBase item)
{
if (item.InvType == (int)InventoryType.Object && (item.CurrentPermissions & 7) != 0)
{
if ((item.CurrentPermissions & ((uint)PermissionMask.Copy >> 13)) == 0)
item.CurrentPermissions &= ~(uint)PermissionMask.Copy;
if ((item.CurrentPermissions & ((uint)PermissionMask.Transfer >> 13)) == 0)
item.CurrentPermissions &= ~(uint)PermissionMask.Transfer;
if ((item.CurrentPermissions & ((uint)PermissionMask.Modify >> 13)) == 0)
item.CurrentPermissions &= ~(uint)PermissionMask.Modify;
}
item.CurrentPermissions &= item.NextPermissions;
item.BasePermissions &= item.NextPermissions;
item.EveryOnePermissions &= item.NextPermissions;
// item.OwnerChanged = true;
// item.PermsMask = 0;
// item.PermsGranter = UUID.Zero;
}
/// <summary>
/// This method is called if a given model avatar name can not be found. If the external
/// file has already been loaded once, then control returns immediately. If not, then it
@@ -1900,7 +1974,6 @@ namespace OpenSim.ApplicationPlugins.RemoteController
/// indicate which outfit is the default, and this outfit will be automatically worn. The
/// other outfits are provided to allow "real" avatars a way to easily change their outfits.
/// </summary>
private bool CreateDefaultAvatars()
{
// Only load once
@@ -1909,7 +1982,7 @@ namespace OpenSim.ApplicationPlugins.RemoteController
return false;
}
m_log.DebugFormat("[RADMIN] Creating default avatar entries");
m_log.DebugFormat("[RADMIN]: Creating default avatar entries");
m_defaultAvatarsLoaded = true;
@@ -1965,7 +2038,7 @@ namespace OpenSim.ApplicationPlugins.RemoteController
foreach (XmlElement avatar in avatars)
{
m_log.DebugFormat("[RADMIN] Loading appearance for {0}, gender = {1}",
m_log.DebugFormat("[RADMIN]: Loading appearance for {0}, gender = {1}",
GetStringAttribute(avatar,"name","?"), GetStringAttribute(avatar,"gender","?"));
// Create the user identified by the avatar entry
@@ -1987,7 +2060,7 @@ namespace OpenSim.ApplicationPlugins.RemoteController
account = CreateUser(scopeID, names[0], names[1], password, email);
if (null == account)
{
m_log.ErrorFormat("[RADMIN] Avatar {0} {1} was not created", names[0], names[1]);
m_log.ErrorFormat("[RADMIN]: Avatar {0} {1} was not created", names[0], names[1]);
return false;
}
}
@@ -2005,12 +2078,12 @@ namespace OpenSim.ApplicationPlugins.RemoteController
ID = account.PrincipalID;
m_log.DebugFormat("[RADMIN] User {0}[{1}] created or retrieved", name, ID);
m_log.DebugFormat("[RADMIN]: User {0}[{1}] created or retrieved", name, ID);
include = true;
}
catch (Exception e)
{
m_log.DebugFormat("[RADMIN] Error creating user {0} : {1}", name, e.Message);
m_log.DebugFormat("[RADMIN]: Error creating user {0} : {1}", name, e.Message);
include = false;
}
@@ -2050,7 +2123,7 @@ namespace OpenSim.ApplicationPlugins.RemoteController
clothingFolder.ParentID = inventoryService.GetRootFolder(ID).ID;
clothingFolder.Version = 1;
inventoryService.AddFolder(clothingFolder); // store base record
m_log.ErrorFormat("[RADMIN] Created clothing folder for {0}/{1}", name, ID);
m_log.ErrorFormat("[RADMIN]: Created clothing folder for {0}/{1}", name, ID);
}
// OK, now we have an inventory for the user, read in the outfits from the
@@ -2063,7 +2136,7 @@ namespace OpenSim.ApplicationPlugins.RemoteController
foreach (XmlElement outfit in outfits)
{
m_log.DebugFormat("[RADMIN] Loading outfit {0} for {1}",
m_log.DebugFormat("[RADMIN]: Loading outfit {0} for {1}",
GetStringAttribute(outfit,"name","?"), GetStringAttribute(avatar,"name","?"));
outfitName = GetStringAttribute(outfit,"name","");
@@ -2087,7 +2160,7 @@ namespace OpenSim.ApplicationPlugins.RemoteController
// Otherwise, we must create the folder.
if (extraFolder == null)
{
m_log.DebugFormat("[RADMIN] Creating outfit folder {0} for {1}", outfitName, name);
m_log.DebugFormat("[RADMIN]: Creating outfit folder {0} for {1}", outfitName, name);
extraFolder = new InventoryFolderBase();
extraFolder.ID = UUID.Random();
extraFolder.Name = outfitName;
@@ -2096,7 +2169,7 @@ namespace OpenSim.ApplicationPlugins.RemoteController
extraFolder.Version = 1;
extraFolder.ParentID = clothingFolder.ID;
inventoryService.AddFolder(extraFolder);
m_log.DebugFormat("[RADMIN] Adding outfile folder {0} to folder {1}", extraFolder.ID, clothingFolder.ID);
m_log.DebugFormat("[RADMIN]: Adding outfile folder {0} to folder {1}", extraFolder.ID, clothingFolder.ID);
}
// Now get the pieces that make up the outfit
@@ -2111,7 +2184,7 @@ namespace OpenSim.ApplicationPlugins.RemoteController
switch (child.Name)
{
case "Permissions" :
m_log.DebugFormat("[RADMIN] Permissions specified");
m_log.DebugFormat("[RADMIN]: Permissions specified");
perms = child;
break;
case "Asset" :
@@ -2144,7 +2217,8 @@ namespace OpenSim.ApplicationPlugins.RemoteController
inventoryItem.InvType = GetIntegerAttribute(item,"invtype",-1);
inventoryItem.CreatorId = GetStringAttribute(item,"creatorid","");
inventoryItem.CreatorIdAsUuid = (UUID)GetStringAttribute(item,"creatoruuid","");
inventoryItem.NextPermissions = GetUnsignedAttribute(perms,"next",0x7fffffff);
inventoryItem.CreatorData = GetStringAttribute(item, "creatordata", "");
inventoryItem.NextPermissions = GetUnsignedAttribute(perms, "next", 0x7fffffff);
inventoryItem.CurrentPermissions = GetUnsignedAttribute(perms,"current",0x7fffffff);
inventoryItem.BasePermissions = GetUnsignedAttribute(perms,"base",0x7fffffff);
inventoryItem.EveryOnePermissions = GetUnsignedAttribute(perms,"everyone",0x7fffffff);
@@ -2160,7 +2234,7 @@ namespace OpenSim.ApplicationPlugins.RemoteController
inventoryItem.Folder = extraFolder.ID; // Parent folder
m_application.SceneManager.CurrentOrFirstScene.AddInventoryItem(inventoryItem);
m_log.DebugFormat("[RADMIN] Added item {0} to folder {1}", inventoryItem.ID, extraFolder.ID);
m_log.DebugFormat("[RADMIN]: Added item {0} to folder {1}", inventoryItem.ID, extraFolder.ID);
}
// Attach item, if attachpoint is specified
@@ -2168,7 +2242,7 @@ namespace OpenSim.ApplicationPlugins.RemoteController
if (attachpoint != 0)
{
avatarAppearance.SetAttachment(attachpoint, inventoryItem.ID, inventoryItem.AssetID);
m_log.DebugFormat("[RADMIN] Attached {0}", inventoryItem.ID);
m_log.DebugFormat("[RADMIN]: Attached {0}", inventoryItem.ID);
}
// Record whether or not the item is to be initially worn
@@ -2181,32 +2255,32 @@ namespace OpenSim.ApplicationPlugins.RemoteController
}
catch (Exception e)
{
m_log.WarnFormat("[RADMIN] Error wearing item {0} : {1}", inventoryItem.ID, e.Message);
m_log.WarnFormat("[RADMIN]: Error wearing item {0} : {1}", inventoryItem.ID, e.Message);
}
} // foreach item in outfit
m_log.DebugFormat("[RADMIN] Outfit {0} load completed", outfitName);
m_log.DebugFormat("[RADMIN]: Outfit {0} load completed", outfitName);
} // foreach outfit
m_log.DebugFormat("[RADMIN] Inventory update complete for {0}", name);
m_log.DebugFormat("[RADMIN]: Inventory update complete for {0}", name);
scene.AvatarService.SetAppearance(ID, avatarAppearance);
}
catch (Exception e)
{
m_log.WarnFormat("[RADMIN] Inventory processing incomplete for user {0} : {1}",
m_log.WarnFormat("[RADMIN]: Inventory processing incomplete for user {0} : {1}",
name, e.Message);
}
} // End of include
}
m_log.DebugFormat("[RADMIN] Default avatar loading complete");
m_log.DebugFormat("[RADMIN]: Default avatar loading complete");
}
else
{
m_log.DebugFormat("[RADMIN] No default avatar information available");
m_log.DebugFormat("[RADMIN]: No default avatar information available");
return false;
}
}
catch (Exception e)
{
m_log.WarnFormat("[RADMIN] Exception whilst loading default avatars ; {0}", e.Message);
m_log.WarnFormat("[RADMIN]: Exception whilst loading default avatars ; {0}", e.Message);
return false;
}
@@ -2301,8 +2375,7 @@ namespace OpenSim.ApplicationPlugins.RemoteController
}
catch (Exception e)
{
m_log.InfoFormat("[RADMIN] LoadOAR: {0}", e.Message);
m_log.DebugFormat("[RADMIN] LoadOAR: {0}", e.ToString());
m_log.ErrorFormat("[RADMIN]: LoadOAR: {0} {1}", e.Message, e.StackTrace);
responseData["loaded"] = false;
responseData["error"] = e.Message;
@@ -2407,8 +2480,7 @@ namespace OpenSim.ApplicationPlugins.RemoteController
}
catch (Exception e)
{
m_log.InfoFormat("[RADMIN] SaveOAR: {0}", e.Message);
m_log.DebugFormat("[RADMIN] SaveOAR: {0}", e.ToString());
m_log.ErrorFormat("[RADMIN]: SaveOAR: {0} {1}", e.Message, e.StackTrace);
responseData["saved"] = false;
responseData["error"] = e.Message;
@@ -2422,7 +2494,7 @@ namespace OpenSim.ApplicationPlugins.RemoteController
private void RemoteAdminOarSaveCompleted(Guid uuid, string name)
{
m_log.DebugFormat("[RADMIN] File processing complete for {0}", name);
m_log.DebugFormat("[RADMIN]: File processing complete for {0}", name);
lock (m_saveOarLock) Monitor.Pulse(m_saveOarLock);
}
@@ -2460,14 +2532,14 @@ namespace OpenSim.ApplicationPlugins.RemoteController
UUID region_uuid = (UUID) (string) requestData["region_uuid"];
if (!m_application.SceneManager.TrySetCurrentScene(region_uuid))
throw new Exception(String.Format("failed to switch to region {0}", region_uuid.ToString()));
m_log.InfoFormat("[RADMIN] Switched to region {0}", region_uuid.ToString());
m_log.InfoFormat("[RADMIN]: Switched to region {0}", region_uuid.ToString());
}
else if (requestData.Contains("region_name"))
{
string region_name = (string) requestData["region_name"];
if (!m_application.SceneManager.TrySetCurrentScene(region_name))
throw new Exception(String.Format("failed to switch to region {0}", region_name));
m_log.InfoFormat("[RADMIN] Switched to region {0}", region_name);
m_log.InfoFormat("[RADMIN]: Switched to region {0}", region_name);
}
else throw new Exception("neither region_name nor region_uuid given");
@@ -2498,8 +2570,7 @@ namespace OpenSim.ApplicationPlugins.RemoteController
}
catch (Exception e)
{
m_log.InfoFormat("[RADMIN] LoadXml: {0}", e.Message);
m_log.DebugFormat("[RADMIN] LoadXml: {0}", e.ToString());
m_log.ErrorFormat("[RADMIN] LoadXml: {0} {1}", e.Message, e.StackTrace);
responseData["loaded"] = false;
responseData["switched"] = false;
@@ -2545,14 +2616,14 @@ namespace OpenSim.ApplicationPlugins.RemoteController
UUID region_uuid = (UUID) (string) requestData["region_uuid"];
if (!m_application.SceneManager.TrySetCurrentScene(region_uuid))
throw new Exception(String.Format("failed to switch to region {0}", region_uuid.ToString()));
m_log.InfoFormat("[RADMIN] Switched to region {0}", region_uuid.ToString());
m_log.InfoFormat("[RADMIN]: Switched to region {0}", region_uuid.ToString());
}
else if (requestData.Contains("region_name"))
{
string region_name = (string) requestData["region_name"];
if (!m_application.SceneManager.TrySetCurrentScene(region_name))
throw new Exception(String.Format("failed to switch to region {0}", region_name));
m_log.InfoFormat("[RADMIN] Switched to region {0}", region_name);
m_log.InfoFormat("[RADMIN]: Switched to region {0}", region_name);
}
else throw new Exception("neither region_name nor region_uuid given");
@@ -2584,8 +2655,7 @@ namespace OpenSim.ApplicationPlugins.RemoteController
}
catch (Exception e)
{
m_log.InfoFormat("[RADMIN] SaveXml: {0}", e.Message);
m_log.DebugFormat("[RADMIN] SaveXml: {0}", e.ToString());
m_log.ErrorFormat("[RADMIN]: SaveXml: {0} {1}", e.Message, e.StackTrace);
responseData["saved"] = false;
responseData["switched"] = false;
@@ -2624,26 +2694,30 @@ namespace OpenSim.ApplicationPlugins.RemoteController
UUID region_uuid = (UUID) (string) requestData["region_uuid"];
if (!m_application.SceneManager.TrySetCurrentScene(region_uuid))
throw new Exception(String.Format("failed to switch to region {0}", region_uuid.ToString()));
m_log.InfoFormat("[RADMIN] Switched to region {0}", region_uuid.ToString());
m_log.InfoFormat("[RADMIN]: Switched to region {0}", region_uuid.ToString());
}
else if (requestData.Contains("region_name"))
{
string region_name = (string) requestData["region_name"];
if (!m_application.SceneManager.TrySetCurrentScene(region_name))
throw new Exception(String.Format("failed to switch to region {0}", region_name));
m_log.InfoFormat("[RADMIN] Switched to region {0}", region_name);
m_log.InfoFormat("[RADMIN]: Switched to region {0}", region_name);
}
else throw new Exception("neither region_name nor region_uuid given");
Scene scene = m_application.SceneManager.CurrentScene;
int health = scene.GetHealth();
int flags;
string text;
int health = scene.GetHealth(out flags, out text);
responseData["health"] = health;
responseData["flags"] = flags;
responseData["message"] = text;
response.Value = responseData;
}
catch (Exception e)
{
m_log.InfoFormat("[RADMIN] RegionQuery: {0}", e.Message);
m_log.InfoFormat("[RADMIN]: RegionQuery: {0}", e.Message);
responseData["success"] = false;
responseData["error"] = e.Message;
@@ -2684,7 +2758,7 @@ namespace OpenSim.ApplicationPlugins.RemoteController
}
catch (Exception e)
{
m_log.InfoFormat("[RADMIN] ConsoleCommand: {0}", e.Message);
m_log.InfoFormat("[RADMIN]: ConsoleCommand: {0}", e.Message);
responseData["success"] = false;
responseData["error"] = e.Message;
@@ -2721,14 +2795,14 @@ namespace OpenSim.ApplicationPlugins.RemoteController
UUID region_uuid = (UUID) (string) requestData["region_uuid"];
if (!m_application.SceneManager.TrySetCurrentScene(region_uuid))
throw new Exception(String.Format("failed to switch to region {0}", region_uuid.ToString()));
m_log.InfoFormat("[RADMIN] Switched to region {0}", region_uuid.ToString());
m_log.InfoFormat("[RADMIN]: Switched to region {0}", region_uuid.ToString());
}
else if (requestData.Contains("region_name"))
{
string region_name = (string) requestData["region_name"];
if (!m_application.SceneManager.TrySetCurrentScene(region_name))
throw new Exception(String.Format("failed to switch to region {0}", region_name));
m_log.InfoFormat("[RADMIN] Switched to region {0}", region_name);
m_log.InfoFormat("[RADMIN]: Switched to region {0}", region_name);
}
else throw new Exception("neither region_name nor region_uuid given");
@@ -2739,7 +2813,7 @@ namespace OpenSim.ApplicationPlugins.RemoteController
}
catch (Exception e)
{
m_log.InfoFormat("[RADMIN] Access List Clear Request: {0}", e.Message);
m_log.ErrorFormat("[RADMIN]: Access List Clear Request: {0} {1}", e.Message, e.StackTrace);
responseData["success"] = false;
responseData["error"] = e.Message;
@@ -2778,14 +2852,14 @@ namespace OpenSim.ApplicationPlugins.RemoteController
UUID region_uuid = (UUID) (string) requestData["region_uuid"];
if (!m_application.SceneManager.TrySetCurrentScene(region_uuid))
throw new Exception(String.Format("failed to switch to region {0}", region_uuid.ToString()));
m_log.InfoFormat("[RADMIN] Switched to region {0}", region_uuid.ToString());
m_log.InfoFormat("[RADMIN]: Switched to region {0}", region_uuid.ToString());
}
else if (requestData.Contains("region_name"))
{
string region_name = (string) requestData["region_name"];
if (!m_application.SceneManager.TrySetCurrentScene(region_name))
throw new Exception(String.Format("failed to switch to region {0}", region_name));
m_log.InfoFormat("[RADMIN] Switched to region {0}", region_name);
m_log.InfoFormat("[RADMIN]: Switched to region {0}", region_name);
}
else throw new Exception("neither region_name nor region_uuid given");
@@ -2805,7 +2879,7 @@ namespace OpenSim.ApplicationPlugins.RemoteController
if (account != null)
{
uuids.Add(account.PrincipalID);
m_log.DebugFormat("[RADMIN] adding \"{0}\" to ACL for \"{1}\"", name, scene.RegionInfo.RegionName);
m_log.DebugFormat("[RADMIN]: adding \"{0}\" to ACL for \"{1}\"", name, scene.RegionInfo.RegionName);
}
}
List<UUID> accessControlList = new List<UUID>(scene.RegionInfo.EstateSettings.EstateAccess);
@@ -2826,7 +2900,7 @@ namespace OpenSim.ApplicationPlugins.RemoteController
}
catch (Exception e)
{
m_log.InfoFormat("[RADMIN] Access List Add Request: {0}", e.Message);
m_log.ErrorFormat("[RADMIN]: Access List Add Request: {0} {1}", e.Message, e.StackTrace);
responseData["success"] = false;
responseData["error"] = e.Message;
@@ -2865,14 +2939,14 @@ namespace OpenSim.ApplicationPlugins.RemoteController
UUID region_uuid = (UUID) (string) requestData["region_uuid"];
if (!m_application.SceneManager.TrySetCurrentScene(region_uuid))
throw new Exception(String.Format("failed to switch to region {0}", region_uuid.ToString()));
m_log.InfoFormat("[RADMIN] Switched to region {0}", region_uuid.ToString());
m_log.InfoFormat("[RADMIN]: Switched to region {0}", region_uuid.ToString());
}
else if (requestData.Contains("region_name"))
{
string region_name = (string) requestData["region_name"];
if (!m_application.SceneManager.TrySetCurrentScene(region_name))
throw new Exception(String.Format("failed to switch to region {0}", region_name));
m_log.InfoFormat("[RADMIN] Switched to region {0}", region_name);
m_log.InfoFormat("[RADMIN]: Switched to region {0}", region_name);
}
else throw new Exception("neither region_name nor region_uuid given");
@@ -2913,7 +2987,7 @@ namespace OpenSim.ApplicationPlugins.RemoteController
}
catch (Exception e)
{
m_log.InfoFormat("[RADMIN] Access List Remove Request: {0}", e.Message);
m_log.ErrorFormat("[RADMIN]: Access List Remove Request: {0} {1}", e.Message, e.StackTrace);
responseData["success"] = false;
responseData["error"] = e.Message;
@@ -2952,14 +3026,14 @@ namespace OpenSim.ApplicationPlugins.RemoteController
UUID region_uuid = (UUID) (string) requestData["region_uuid"];
if (!m_application.SceneManager.TrySetCurrentScene(region_uuid))
throw new Exception(String.Format("failed to switch to region {0}", region_uuid.ToString()));
m_log.InfoFormat("[RADMIN] Switched to region {0}", region_uuid.ToString());
m_log.InfoFormat("[RADMIN]: Switched to region {0}", region_uuid.ToString());
}
else if (requestData.Contains("region_name"))
{
string region_name = (string) requestData["region_name"];
if (!m_application.SceneManager.TrySetCurrentScene(region_name))
throw new Exception(String.Format("failed to switch to region {0}", region_name));
m_log.InfoFormat("[RADMIN] Switched to region {0}", region_name);
m_log.InfoFormat("[RADMIN]: Switched to region {0}", region_name);
}
else throw new Exception("neither region_name nor region_uuid given");
@@ -2981,7 +3055,7 @@ namespace OpenSim.ApplicationPlugins.RemoteController
}
catch (Exception e)
{
m_log.InfoFormat("[RADMIN] Acces List List: {0}", e.Message);
m_log.ErrorFormat("[RADMIN]: Access List List: {0} {1}", e.Message, e.StackTrace);
responseData["success"] = false;
responseData["error"] = e.Message;

View File

@@ -44,7 +44,7 @@ namespace OpenSim.ApplicationPlugins.Rest.Inventory
// private static readonly int PARM_PATH = 1;
private bool enabled = false;
// private bool enabled = false;
private string qPrefix = "appearance";
/// <summary>
@@ -74,7 +74,7 @@ namespace OpenSim.ApplicationPlugins.Rest.Inventory
// Activate if everything went OK
enabled = true;
// enabled = true;
Rest.Log.InfoFormat("{0} User appearance services initialization complete", MsgId);
}
@@ -95,7 +95,7 @@ namespace OpenSim.ApplicationPlugins.Rest.Inventory
public void Close()
{
enabled = false;
// enabled = false;
Rest.Log.InfoFormat("{0} User appearance services closing down", MsgId);
}

View File

@@ -46,12 +46,12 @@ namespace OpenSim.ApplicationPlugins.Rest.Inventory
public class RestInventoryServices : IRest
{
// private static readonly int PARM_USERID = 0;
private static readonly int PARM_PATH = 1;
// private static readonly int PARM_PATH = 1;
// private bool enabled = false;
private string qPrefix = "inventory";
private static readonly string PRIVATE_ROOT_NAME = "My Inventory";
// private static readonly string PRIVATE_ROOT_NAME = "My Inventory";
/// <summary>
/// The constructor makes sure that the service prefix is absolute
@@ -1295,6 +1295,7 @@ namespace OpenSim.ApplicationPlugins.Rest.Inventory
rdata.writer.WriteAttributeString("folder", String.Empty, i.Folder.ToString());
rdata.writer.WriteAttributeString("owner", String.Empty, i.Owner.ToString());
rdata.writer.WriteAttributeString("creator", String.Empty, i.CreatorId);
rdata.writer.WriteAttributeString("creatordata", String.Empty, i.CreatorData);
rdata.writer.WriteAttributeString("creationdate", String.Empty, i.CreationDate.ToString());
rdata.writer.WriteAttributeString("invtype", String.Empty, i.InvType.ToString());
rdata.writer.WriteAttributeString("assettype", String.Empty, i.AssetType.ToString());
@@ -2128,17 +2129,17 @@ namespace OpenSim.ApplicationPlugins.Rest.Inventory
}
catch (DllNotFoundException)
{
Rest.Log.ErrorFormat("OpenJpeg is not installed correctly on this system. Asset Data is emtpy for {0}", ic.Item.Name);
Rest.Log.ErrorFormat("OpenJpeg is not installed correctly on this system. Asset Data is empty for {0}", ic.Item.Name);
ic.Asset.Data = new Byte[0];
}
catch (IndexOutOfRangeException)
{
Rest.Log.ErrorFormat("OpenJpeg was unable to encode this. Asset Data is emtpy for {0}", ic.Item.Name);
Rest.Log.ErrorFormat("OpenJpeg was unable to encode this. Asset Data is empty for {0}", ic.Item.Name);
ic.Asset.Data = new Byte[0];
}
catch (Exception)
{
Rest.Log.ErrorFormat("OpenJpeg was unable to encode this. Asset Data is emtpy for {0}", ic.Item.Name);
Rest.Log.ErrorFormat("OpenJpeg was unable to encode this. Asset Data is empty for {0}", ic.Item.Name);
ic.Asset.Data = new Byte[0];
}
}

View File

@@ -0,0 +1,176 @@
/*
* 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.IO;
using System.Reflection;
using log4net;
using Nini.Config;
using OpenMetaverse;
using OpenSim.Framework.Servers;
using OpenSim.Framework.Servers.HttpServer;
using OpenSim.Services.Interfaces;
// using OpenSim.Region.Framework.Interfaces;
namespace OpenSim.Framework.Capabilities
{
/// <summary>
/// XXX Probably not a particularly nice way of allow us to get the scene presence from the scene (chiefly so that
/// we can popup a message on the user's client if the inventory service has permanently failed). But I didn't want
/// to just pass the whole Scene into CAPS.
/// </summary>
public delegate IClientAPI GetClientDelegate(UUID agentID);
public class Caps
{
// private static readonly ILog m_log =
// LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType);
private string m_httpListenerHostName;
private uint m_httpListenPort;
/// <summary>
/// This is the uuid portion of every CAPS path. It is used to make capability urls private to the requester.
/// </summary>
private string m_capsObjectPath;
public string CapsObjectPath { get { return m_capsObjectPath; } }
private CapsHandlers m_capsHandlers;
private Dictionary<string, string> m_externalCapsHandlers;
private IHttpServer m_httpListener;
private UUID m_agentID;
private string m_regionName;
public UUID AgentID
{
get { return m_agentID; }
}
public string RegionName
{
get { return m_regionName; }
}
public string HostName
{
get { return m_httpListenerHostName; }
}
public uint Port
{
get { return m_httpListenPort; }
}
public IHttpServer HttpListener
{
get { return m_httpListener; }
}
public bool SSLCaps
{
get { return m_httpListener.UseSSL; }
}
public string SSLCommonName
{
get { return m_httpListener.SSLCommonName; }
}
public CapsHandlers CapsHandlers
{
get { return m_capsHandlers; }
}
public Dictionary<string, string> ExternalCapsHandlers
{
get { return m_externalCapsHandlers; }
}
public Caps(IHttpServer httpServer, string httpListen, uint httpPort, string capsPath,
UUID agent, string regionName)
{
m_capsObjectPath = capsPath;
m_httpListener = httpServer;
m_httpListenerHostName = httpListen;
m_httpListenPort = httpPort;
if (httpServer != null && httpServer.UseSSL)
{
m_httpListenPort = httpServer.SSLPort;
httpListen = httpServer.SSLCommonName;
httpPort = httpServer.SSLPort;
}
m_agentID = agent;
m_capsHandlers = new CapsHandlers(httpServer, httpListen, httpPort, (httpServer == null) ? false : httpServer.UseSSL);
m_externalCapsHandlers = new Dictionary<string, string>();
m_regionName = regionName;
}
/// <summary>
/// Register a handler. This allows modules to register handlers.
/// </summary>
/// <param name="capName"></param>
/// <param name="handler"></param>
public void RegisterHandler(string capName, IRequestHandler handler)
{
m_capsHandlers[capName] = handler;
//m_log.DebugFormat("[CAPS]: Registering handler for \"{0}\": path {1}", capName, handler.Path);
}
/// <summary>
/// Register an external handler. The service for this capability is somewhere else
/// given by the URL.
/// </summary>
/// <param name="capsName"></param>
/// <param name="url"></param>
public void RegisterHandler(string capsName, string url)
{
m_externalCapsHandlers.Add(capsName, url);
}
/// <summary>
/// Remove all CAPS service handlers.
///
/// </summary>
/// <param name="httpListener"></param>
/// <param name="path"></param>
/// <param name="restMethod"></param>
public void DeregisterHandlers()
{
if (m_capsHandlers != null)
{
foreach (string capsName in m_capsHandlers.Caps)
{
m_capsHandlers.Remove(capsName);
}
}
}
}
}

View File

@@ -88,8 +88,8 @@ namespace OpenSim.Framework.Capabilities
/// handler to be removed</param>
public void Remove(string capsName)
{
// This line must be here, or caps will break!
m_httpListener.RemoveStreamHandler("POST", m_capsHandlers[capsName].Path);
m_httpListener.RemoveStreamHandler("GET", m_capsHandlers[capsName].Path);
m_capsHandlers.Remove(capsName);
}

View File

@@ -31,7 +31,6 @@ using System.Collections.Specialized;
using System.Reflection;
using System.IO;
using System.Web;
using Mono.Addins;
using log4net;
using Nini.Config;
using OpenMetaverse;
@@ -39,81 +38,23 @@ using OpenMetaverse.StructuredData;
using OpenSim.Framework;
using OpenSim.Framework.Servers;
using OpenSim.Framework.Servers.HttpServer;
using OpenSim.Region.Framework.Interfaces;
using OpenSim.Region.Framework.Scenes;
using OpenSim.Services.Interfaces;
using Caps = OpenSim.Framework.Capabilities.Caps;
namespace OpenSim.Region.CoreModules.Avatar.Assets
namespace OpenSim.Capabilities.Handlers
{
[Extension(Path = "/OpenSim/RegionModules", NodeName = "RegionModule")]
public class GetMeshModule : INonSharedRegionModule
public class GetMeshHandler
{
private static readonly ILog m_log =
LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType);
private Scene m_scene;
// private static readonly ILog m_log =
// LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType);
private IAssetService m_assetService;
#region IRegionModuleBase Members
public Type ReplaceableInterface
public GetMeshHandler(IAssetService assService)
{
get { return null; }
m_assetService = assService;
}
public void Initialise(IConfigSource source)
{
}
public void AddRegion(Scene pScene)
{
m_scene = pScene;
}
public void RemoveRegion(Scene scene)
{
m_scene.EventManager.OnRegisterCaps -= RegisterCaps;
m_scene = null;
}
public void RegionLoaded(Scene scene)
{
m_assetService = m_scene.RequestModuleInterface<IAssetService>();
m_scene.EventManager.OnRegisterCaps += RegisterCaps;
}
#endregion
#region IRegionModule Members
public void Close() { }
public string Name { get { return "GetMeshModule"; } }
public void RegisterCaps(UUID agentID, Caps caps)
{
UUID capID = UUID.Random();
m_log.Info("[GETMESH]: /CAPS/" + capID);
caps.RegisterHandler("GetMesh",
new RestHTTPHandler("GET", "/CAPS/" + capID,
delegate(Hashtable m_dhttpMethod)
{
return ProcessGetMesh(m_dhttpMethod, agentID, caps);
}));
}
#endregion
public Hashtable ProcessGetMesh(Hashtable request, UUID AgentId, Caps cap)
{

View File

@@ -0,0 +1,78 @@
/*
* 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 Nini.Config;
using OpenSim.Server.Base;
using OpenSim.Services.Interfaces;
using OpenSim.Framework.Servers.HttpServer;
using OpenSim.Server.Handlers.Base;
using OpenSim.Framework.Servers;
using OpenMetaverse;
namespace OpenSim.Capabilities.Handlers
{
public class GetMeshServerConnector : ServiceConnector
{
private IAssetService m_AssetService;
private string m_ConfigName = "CapsService";
public GetMeshServerConnector(IConfigSource config, IHttpServer server, string configName) :
base(config, server, configName)
{
if (configName != String.Empty)
m_ConfigName = configName;
IConfig serverConfig = config.Configs[m_ConfigName];
if (serverConfig == null)
throw new Exception(String.Format("No section '{0}' in config file", m_ConfigName));
string assetService = serverConfig.GetString("AssetService", String.Empty);
if (assetService == String.Empty)
throw new Exception("No AssetService in config file");
Object[] args = new Object[] { config };
m_AssetService =
ServerUtils.LoadPlugin<IAssetService>(assetService, args);
if (m_AssetService == null)
throw new Exception(String.Format("Failed to load AssetService from {0}; config is {1}", assetService, m_ConfigName));
GetMeshHandler gmeshHandler = new GetMeshHandler(m_AssetService);
IRequestHandler reqHandler = new RestHTTPHandler("GET", "/CAPS/" + UUID.Random(),
delegate(Hashtable m_dhttpMethod)
{
return gmeshHandler.ProcessGetMesh(m_dhttpMethod, UUID.Zero, null);
});
server.AddStreamHandler(reqHandler);
}
}
}

View File

@@ -0,0 +1,357 @@
/*
* 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.Specialized;
using System.Drawing;
using System.Drawing.Imaging;
using System.Reflection;
using System.IO;
using System.Web;
using log4net;
using Nini.Config;
using OpenMetaverse;
using OpenMetaverse.StructuredData;
using OpenMetaverse.Imaging;
using OpenSim.Framework;
using OpenSim.Framework.Servers;
using OpenSim.Framework.Servers.HttpServer;
using OpenSim.Region.Framework.Interfaces;
using OpenSim.Services.Interfaces;
using Caps = OpenSim.Framework.Capabilities.Caps;
namespace OpenSim.Capabilities.Handlers
{
public class GetTextureHandler : BaseStreamHandler
{
private static readonly ILog m_log =
LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType);
private IAssetService m_assetService;
public const string DefaultFormat = "x-j2c";
// TODO: Change this to a config option
const string REDIRECT_URL = null;
public GetTextureHandler(string path, IAssetService assService) :
base("GET", path)
{
m_assetService = assService;
}
public override byte[] Handle(string path, Stream request, OSHttpRequest httpRequest, OSHttpResponse httpResponse)
{
// Try to parse the texture ID from the request URL
NameValueCollection query = HttpUtility.ParseQueryString(httpRequest.Url.Query);
string textureStr = query.GetOne("texture_id");
string format = query.GetOne("format");
//m_log.DebugFormat("[GETTEXTURE]: called {0}", textureStr);
if (m_assetService == null)
{
m_log.Error("[GETTEXTURE]: Cannot fetch texture " + textureStr + " without an asset service");
httpResponse.StatusCode = (int)System.Net.HttpStatusCode.NotFound;
return null;
}
UUID textureID;
if (!String.IsNullOrEmpty(textureStr) && UUID.TryParse(textureStr, out textureID))
{
string[] formats;
if (format != null && format != string.Empty)
{
formats = new string[1] { format.ToLower() };
}
else
{
formats = WebUtil.GetPreferredImageTypes(httpRequest.Headers.Get("Accept"));
if (formats.Length == 0)
formats = new string[1] { DefaultFormat }; // default
}
// OK, we have an array with preferred formats, possibly with only one entry
httpResponse.StatusCode = (int)System.Net.HttpStatusCode.NotFound;
foreach (string f in formats)
{
if (FetchTexture(httpRequest, httpResponse, textureID, f))
break;
}
}
else
{
m_log.Warn("[GETTEXTURE]: Failed to parse a texture_id from GetTexture request: " + httpRequest.Url);
}
httpResponse.Send();
return null;
}
/// <summary>
///
/// </summary>
/// <param name="httpRequest"></param>
/// <param name="httpResponse"></param>
/// <param name="textureID"></param>
/// <param name="format"></param>
/// <returns>False for "caller try another codec"; true otherwise</returns>
private bool FetchTexture(OSHttpRequest httpRequest, OSHttpResponse httpResponse, UUID textureID, string format)
{
// m_log.DebugFormat("[GETTEXTURE]: {0} with requested format {1}", textureID, format);
AssetBase texture;
string fullID = textureID.ToString();
if (format != DefaultFormat)
fullID = fullID + "-" + format;
if (!String.IsNullOrEmpty(REDIRECT_URL))
{
// Only try to fetch locally cached textures. Misses are redirected
texture = m_assetService.GetCached(fullID);
if (texture != null)
{
if (texture.Type != (sbyte)AssetType.Texture)
{
httpResponse.StatusCode = (int)System.Net.HttpStatusCode.NotFound;
return true;
}
WriteTextureData(httpRequest, httpResponse, texture, format);
}
else
{
string textureUrl = REDIRECT_URL + textureID.ToString();
m_log.Debug("[GETTEXTURE]: Redirecting texture request to " + textureUrl);
httpResponse.RedirectLocation = textureUrl;
return true;
}
}
else // no redirect
{
// try the cache
texture = m_assetService.GetCached(fullID);
if (texture == null)
{
//m_log.DebugFormat("[GETTEXTURE]: texture was not in the cache");
// Fetch locally or remotely. Misses return a 404
texture = m_assetService.Get(textureID.ToString());
if (texture != null)
{
if (texture.Type != (sbyte)AssetType.Texture)
{
httpResponse.StatusCode = (int)System.Net.HttpStatusCode.NotFound;
return true;
}
if (format == DefaultFormat)
{
WriteTextureData(httpRequest, httpResponse, texture, format);
return true;
}
else
{
AssetBase newTexture = new AssetBase(texture.ID + "-" + format, texture.Name, (sbyte)AssetType.Texture, texture.Metadata.CreatorID);
newTexture.Data = ConvertTextureData(texture, format);
if (newTexture.Data.Length == 0)
return false; // !!! Caller try another codec, please!
newTexture.Flags = AssetFlags.Collectable;
newTexture.Temporary = true;
m_assetService.Store(newTexture);
WriteTextureData(httpRequest, httpResponse, newTexture, format);
return true;
}
}
}
else // it was on the cache
{
//m_log.DebugFormat("[GETTEXTURE]: texture was in the cache");
WriteTextureData(httpRequest, httpResponse, texture, format);
return true;
}
}
// not found
// m_log.Warn("[GETTEXTURE]: Texture " + textureID + " not found");
httpResponse.StatusCode = (int)System.Net.HttpStatusCode.NotFound;
return true;
}
private void WriteTextureData(OSHttpRequest request, OSHttpResponse response, AssetBase texture, string format)
{
string range = request.Headers.GetOne("Range");
//m_log.DebugFormat("[GETTEXTURE]: Range {0}", range);
if (!String.IsNullOrEmpty(range)) // JP2's only
{
// Range request
int start, end;
if (TryParseRange(range, out start, out end))
{
// Before clamping start make sure we can satisfy it in order to avoid
// sending back the last byte instead of an error status
if (start >= texture.Data.Length)
{
response.StatusCode = (int)System.Net.HttpStatusCode.RequestedRangeNotSatisfiable;
return;
}
end = Utils.Clamp(end, 0, texture.Data.Length - 1);
start = Utils.Clamp(start, 0, end);
int len = end - start + 1;
//m_log.Debug("Serving " + start + " to " + end + " of " + texture.Data.Length + " bytes for texture " + texture.ID);
if (len < texture.Data.Length)
response.StatusCode = (int)System.Net.HttpStatusCode.PartialContent;
response.ContentLength = len;
response.ContentType = texture.Metadata.ContentType;
response.AddHeader("Content-Range", String.Format("bytes {0}-{1}/{2}", start, end, texture.Data.Length));
response.Body.Write(texture.Data, start, len);
}
else
{
m_log.Warn("[GETTEXTURE]: Malformed Range header: " + range);
response.StatusCode = (int)System.Net.HttpStatusCode.BadRequest;
}
}
else // JP2's or other formats
{
// Full content request
response.StatusCode = (int)System.Net.HttpStatusCode.OK;
response.ContentLength = texture.Data.Length;
if (format == DefaultFormat)
response.ContentType = texture.Metadata.ContentType;
else
response.ContentType = "image/" + format;
response.Body.Write(texture.Data, 0, texture.Data.Length);
}
}
private bool TryParseRange(string header, out int start, out int end)
{
if (header.StartsWith("bytes="))
{
string[] rangeValues = header.Substring(6).Split('-');
if (rangeValues.Length == 2)
{
if (Int32.TryParse(rangeValues[0], out start) && Int32.TryParse(rangeValues[1], out end))
return true;
}
}
start = end = 0;
return false;
}
private byte[] ConvertTextureData(AssetBase texture, string format)
{
m_log.DebugFormat("[GETTEXTURE]: Converting texture {0} to {1}", texture.ID, format);
byte[] data = new byte[0];
MemoryStream imgstream = new MemoryStream();
Bitmap mTexture = new Bitmap(1, 1);
ManagedImage managedImage;
Image image = (Image)mTexture;
try
{
// Taking our jpeg2000 data, decoding it, then saving it to a byte array with regular data
imgstream = new MemoryStream();
// Decode image to System.Drawing.Image
if (OpenJPEG.DecodeToImage(texture.Data, out managedImage, out image))
{
// Save to bitmap
mTexture = new Bitmap(image);
EncoderParameters myEncoderParameters = new EncoderParameters();
myEncoderParameters.Param[0] = new EncoderParameter(Encoder.Quality, 95L);
// Save bitmap to stream
ImageCodecInfo codec = GetEncoderInfo("image/" + format);
if (codec != null)
{
mTexture.Save(imgstream, codec, myEncoderParameters);
// Write the stream to a byte array for output
data = imgstream.ToArray();
}
else
m_log.WarnFormat("[GETTEXTURE]: No such codec {0}", format);
}
}
catch (Exception e)
{
m_log.WarnFormat("[GETTEXTURE]: Unable to convert texture {0} to {1}: {2}", texture.ID, format, e.Message);
}
finally
{
// Reclaim memory, these are unmanaged resources
// If we encountered an exception, one or more of these will be null
if (mTexture != null)
mTexture.Dispose();
if (image != null)
image.Dispose();
if (imgstream != null)
{
imgstream.Close();
imgstream.Dispose();
}
}
return data;
}
// From msdn
private static ImageCodecInfo GetEncoderInfo(String mimeType)
{
ImageCodecInfo[] encoders;
encoders = ImageCodecInfo.GetImageEncoders();
for (int j = 0; j < encoders.Length; ++j)
{
if (encoders[j].MimeType == mimeType)
return encoders[j];
}
return null;
}
}
}

View File

@@ -0,0 +1,69 @@
/*
* 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 Nini.Config;
using OpenSim.Server.Base;
using OpenSim.Services.Interfaces;
using OpenSim.Framework.Servers.HttpServer;
using OpenSim.Server.Handlers.Base;
using OpenMetaverse;
namespace OpenSim.Capabilities.Handlers
{
public class GetTextureServerConnector : ServiceConnector
{
private IAssetService m_AssetService;
private string m_ConfigName = "CapsService";
public GetTextureServerConnector(IConfigSource config, IHttpServer server, string configName) :
base(config, server, configName)
{
if (configName != String.Empty)
m_ConfigName = configName;
IConfig serverConfig = config.Configs[m_ConfigName];
if (serverConfig == null)
throw new Exception(String.Format("No section '{0}' in config file", m_ConfigName));
string assetService = serverConfig.GetString("AssetService", String.Empty);
if (assetService == String.Empty)
throw new Exception("No AssetService in config file");
Object[] args = new Object[] { config };
m_AssetService =
ServerUtils.LoadPlugin<IAssetService>(assetService, args);
if (m_AssetService == null)
throw new Exception(String.Format("Failed to load AssetService from {0}; config is {1}", assetService, m_ConfigName));
server.AddStreamHandler(new GetTextureHandler("/CAPS/GetTexture/" /*+ UUID.Random() */, m_AssetService));
}
}
}

View File

@@ -0,0 +1,299 @@
/*
* 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.Reflection;
using log4net;
using Nini.Config;
using OpenMetaverse;
using OpenMetaverse.StructuredData;
using OpenSim.Framework;
using OpenSim.Framework.Capabilities;
using OpenSim.Region.Framework.Interfaces;
using OpenSim.Framework.Servers.HttpServer;
using OpenSim.Services.Interfaces;
using Caps = OpenSim.Framework.Capabilities.Caps;
namespace OpenSim.Capabilities.Handlers
{
public class WebFetchInvDescHandler
{
private static readonly ILog m_log =
LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType);
private IInventoryService m_InventoryService;
private ILibraryService m_LibraryService;
private object m_fetchLock = new Object();
public WebFetchInvDescHandler(IInventoryService invService, ILibraryService libService)
{
m_InventoryService = invService;
m_LibraryService = libService;
}
public string FetchInventoryDescendentsRequest(string request, string path, string param, OSHttpRequest httpRequest, OSHttpResponse httpResponse)
{
// nasty temporary hack here, the linden client falsely
// identifies the uuid 00000000-0000-0000-0000-000000000000
// as a string which breaks us
//
// correctly mark it as a uuid
//
request = request.Replace("<string>00000000-0000-0000-0000-000000000000</string>", "<uuid>00000000-0000-0000-0000-000000000000</uuid>");
// another hack <integer>1</integer> results in a
// System.ArgumentException: Object type System.Int32 cannot
// be converted to target type: System.Boolean
//
request = request.Replace("<key>fetch_folders</key><integer>0</integer>", "<key>fetch_folders</key><boolean>0</boolean>");
request = request.Replace("<key>fetch_folders</key><integer>1</integer>", "<key>fetch_folders</key><boolean>1</boolean>");
Hashtable hash = new Hashtable();
try
{
hash = (Hashtable)LLSD.LLSDDeserialize(Utils.StringToBytes(request));
}
catch (LLSD.LLSDParseException pe)
{
m_log.Error("[AGENT INVENTORY]: Fetch error: " + pe.Message);
m_log.Error("Request: " + request.ToString());
}
ArrayList foldersrequested = (ArrayList)hash["folders"];
string response = "";
lock (m_fetchLock)
{
for (int i = 0; i < foldersrequested.Count; i++)
{
string inventoryitemstr = "";
Hashtable inventoryhash = (Hashtable)foldersrequested[i];
LLSDFetchInventoryDescendents llsdRequest = new LLSDFetchInventoryDescendents();
try
{
LLSDHelpers.DeserialiseOSDMap(inventoryhash, llsdRequest);
}
catch (Exception e)
{
m_log.Debug("[CAPS]: caught exception doing OSD deserialize" + e);
}
LLSDInventoryDescendents reply = FetchInventoryReply(llsdRequest);
inventoryitemstr = LLSDHelpers.SerialiseLLSDReply(reply);
inventoryitemstr = inventoryitemstr.Replace("<llsd><map><key>folders</key><array>", "");
inventoryitemstr = inventoryitemstr.Replace("</array></map></llsd>", "");
response += inventoryitemstr;
}
if (response.Length == 0)
{
// Ter-guess: If requests fail a lot, the client seems to stop requesting descendants.
// Therefore, I'm concluding that the client only has so many threads available to do requests
// and when a thread stalls.. is stays stalled.
// Therefore we need to return something valid
response = "<llsd><map><key>folders</key><array /></map></llsd>";
}
else
{
response = "<llsd><map><key>folders</key><array>" + response + "</array></map></llsd>";
}
//m_log.DebugFormat("[CAPS]: Replying to CAPS fetch inventory request with following xml");
//m_log.Debug("[CAPS] "+response);
}
return response;
}
/// <summary>
/// Construct an LLSD reply packet to a CAPS inventory request
/// </summary>
/// <param name="invFetch"></param>
/// <returns></returns>
private LLSDInventoryDescendents FetchInventoryReply(LLSDFetchInventoryDescendents invFetch)
{
LLSDInventoryDescendents reply = new LLSDInventoryDescendents();
LLSDInventoryFolderContents contents = new LLSDInventoryFolderContents();
contents.agent_id = invFetch.owner_id;
contents.owner_id = invFetch.owner_id;
contents.folder_id = invFetch.folder_id;
reply.folders.Array.Add(contents);
InventoryCollection inv = new InventoryCollection();
inv.Folders = new List<InventoryFolderBase>();
inv.Items = new List<InventoryItemBase>();
int version = 0;
inv = Fetch(invFetch.owner_id, invFetch.folder_id, invFetch.owner_id, invFetch.fetch_folders, invFetch.fetch_items, invFetch.sort_order, out version);
if (inv.Folders != null)
{
foreach (InventoryFolderBase invFolder in inv.Folders)
{
contents.categories.Array.Add(ConvertInventoryFolder(invFolder));
}
}
if (inv.Items != null)
{
foreach (InventoryItemBase invItem in inv.Items)
{
contents.items.Array.Add(ConvertInventoryItem(invItem));
}
}
contents.descendents = contents.items.Array.Count + contents.categories.Array.Count;
contents.version = version;
return reply;
}
public InventoryCollection Fetch(UUID agentID, UUID folderID, UUID ownerID,
bool fetchFolders, bool fetchItems, int sortOrder, out int version)
{
m_log.DebugFormat(
"[WEBFETCHINVENTORYDESCENDANTS]: Fetching folders ({0}), items ({1}) from {2} for agent {3}",
fetchFolders, fetchItems, folderID, agentID);
version = 0;
InventoryFolderImpl fold;
if (m_LibraryService != null && m_LibraryService.LibraryRootFolder != null && agentID == m_LibraryService.LibraryRootFolder.Owner)
if ((fold = m_LibraryService.LibraryRootFolder.FindFolder(folderID)) != null)
{
InventoryCollection ret = new InventoryCollection();
ret.Folders = new List<InventoryFolderBase>();
ret.Items = fold.RequestListOfItems();
return ret;
}
InventoryCollection contents = new InventoryCollection();
if (folderID != UUID.Zero)
{
contents = m_InventoryService.GetFolderContent(agentID, folderID);
InventoryFolderBase containingFolder = new InventoryFolderBase();
containingFolder.ID = folderID;
containingFolder.Owner = agentID;
containingFolder = m_InventoryService.GetFolder(containingFolder);
if (containingFolder != null)
version = containingFolder.Version;
}
else
{
// Lost itemsm don't really need a version
version = 1;
}
return contents;
}
/// <summary>
/// Convert an internal inventory folder object into an LLSD object.
/// </summary>
/// <param name="invFolder"></param>
/// <returns></returns>
private LLSDInventoryFolder ConvertInventoryFolder(InventoryFolderBase invFolder)
{
LLSDInventoryFolder llsdFolder = new LLSDInventoryFolder();
llsdFolder.folder_id = invFolder.ID;
llsdFolder.parent_id = invFolder.ParentID;
llsdFolder.name = invFolder.Name;
if (invFolder.Type < 0 || invFolder.Type >= TaskInventoryItem.Types.Length)
llsdFolder.type = "-1";
else
llsdFolder.type = TaskInventoryItem.Types[invFolder.Type];
llsdFolder.preferred_type = "-1";
return llsdFolder;
}
/// <summary>
/// Convert an internal inventory item object into an LLSD object.
/// </summary>
/// <param name="invItem"></param>
/// <returns></returns>
private LLSDInventoryItem ConvertInventoryItem(InventoryItemBase invItem)
{
LLSDInventoryItem llsdItem = new LLSDInventoryItem();
llsdItem.asset_id = invItem.AssetID;
llsdItem.created_at = invItem.CreationDate;
llsdItem.desc = invItem.Description;
llsdItem.flags = (int)invItem.Flags;
llsdItem.item_id = invItem.ID;
llsdItem.name = invItem.Name;
llsdItem.parent_id = invItem.Folder;
try
{
// TODO reevaluate after upgrade to libomv >= r2566. Probably should use UtilsConversions.
llsdItem.type = TaskInventoryItem.Types[invItem.AssetType];
llsdItem.inv_type = TaskInventoryItem.InvTypes[invItem.InvType];
}
catch (Exception e)
{
m_log.ErrorFormat("[CAPS]: Problem setting asset {0} inventory {1} types while converting inventory item {2}: {3}", invItem.AssetType, invItem.InvType, invItem.Name, e.Message);
}
llsdItem.permissions = new LLSDPermissions();
llsdItem.permissions.creator_id = invItem.CreatorIdAsUuid;
llsdItem.permissions.base_mask = (int)invItem.CurrentPermissions;
llsdItem.permissions.everyone_mask = (int)invItem.EveryOnePermissions;
llsdItem.permissions.group_id = invItem.GroupID;
llsdItem.permissions.group_mask = (int)invItem.GroupPermissions;
llsdItem.permissions.is_owner_group = invItem.GroupOwned;
llsdItem.permissions.next_owner_mask = (int)invItem.NextPermissions;
llsdItem.permissions.owner_id = invItem.Owner;
llsdItem.permissions.owner_mask = (int)invItem.CurrentPermissions;
llsdItem.sale_info = new LLSDSaleInfo();
llsdItem.sale_info.sale_price = invItem.SalePrice;
switch (invItem.SaleType)
{
default:
llsdItem.sale_info.sale_type = "not";
break;
case 1:
llsdItem.sale_info.sale_type = "original";
break;
case 2:
llsdItem.sale_info.sale_type = "copy";
break;
case 3:
llsdItem.sale_info.sale_type = "contents";
break;
}
return llsdItem;
}
}
}

View File

@@ -0,0 +1,76 @@
/*
* 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 Nini.Config;
using OpenSim.Server.Base;
using OpenSim.Services.Interfaces;
using OpenSim.Framework.Servers.HttpServer;
using OpenSim.Server.Handlers.Base;
using OpenMetaverse;
namespace OpenSim.Capabilities.Handlers
{
public class WebFetchInvDescServerConnector : ServiceConnector
{
private IInventoryService m_InventoryService;
private ILibraryService m_LibraryService;
private string m_ConfigName = "CapsService";
public WebFetchInvDescServerConnector(IConfigSource config, IHttpServer server, string configName) :
base(config, server, configName)
{
if (configName != String.Empty)
m_ConfigName = configName;
IConfig serverConfig = config.Configs[m_ConfigName];
if (serverConfig == null)
throw new Exception(String.Format("No section '{0}' in config file", m_ConfigName));
string invService = serverConfig.GetString("InventoryService", String.Empty);
if (invService == String.Empty)
throw new Exception("No InventoryService in config file");
Object[] args = new Object[] { config };
m_InventoryService =
ServerUtils.LoadPlugin<IInventoryService>(invService, args);
if (m_InventoryService == null)
throw new Exception(String.Format("Failed to load InventoryService from {0}; config is {1}", invService, m_ConfigName));
string libService = serverConfig.GetString("LibraryService", String.Empty);
m_LibraryService =
ServerUtils.LoadPlugin<ILibraryService>(libService, args);
WebFetchInvDescHandler webFetchHandler = new WebFetchInvDescHandler(m_InventoryService, m_LibraryService);
IRequestHandler reqHandler = new RestStreamHandler("POST", "/CAPS/WebFetchInvDesc/" /*+ UUID.Random()*/, webFetchHandler.FetchInventoryDescendentsRequest);
server.AddStreamHandler(reqHandler);
}
}
}

View File

@@ -1,136 +0,0 @@
/*
* 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.Generic;
using System.Net;
using System.Reflection;
using System.Text;
using log4net;
using Nini.Config;
using OpenMetaverse;
using OpenSim.Region.ClientStack;
using OpenSim.Region.ClientStack.LindenUDP;
using OpenSim.Framework;
using OpenSim.Region.Framework.Scenes;
using OpenSim.Region.Framework.Interfaces;
namespace OpenSim.Client.Linden
{
/// <summary>
/// Linden UDP Stack Region Module
/// </summary>
public class LLClientStackModule : INonSharedRegionModule
{
private static readonly ILog m_log = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType);
#region IRegionModule Members
/// <summary>
/// Scene that contains the region's data
/// </summary>
protected Scene m_scene;
protected bool m_createClientStack = false;
protected IClientNetworkServer m_clientServer;
protected ClientStackManager m_clientStackManager;
protected IConfigSource m_source;
protected string m_clientStackDll = "OpenSim.Region.ClientStack.LindenUDP.dll";
public void Initialise(IConfigSource source)
{
if (m_scene == null)
{
m_source = source;
IConfig startupConfig = m_source.Configs["Startup"];
if (startupConfig != null)
{
m_clientStackDll = startupConfig.GetString("clientstack_plugin", "OpenSim.Region.ClientStack.LindenUDP.dll");
}
}
}
public void AddRegion(Scene scene)
{
}
public void RemoveRegion(Scene scene)
{
}
public void RegionLoaded(Scene scene)
{
if (m_scene == null)
{
m_scene = scene;
}
if ((m_scene != null) && (m_createClientStack))
{
m_log.Info("[LLClientStackModule] Starting up LLClientStack.");
IPEndPoint endPoint = m_scene.RegionInfo.InternalEndPoint;
uint port = (uint)endPoint.Port;
m_clientStackManager = new ClientStackManager(m_clientStackDll);
m_clientServer
= m_clientStackManager.CreateServer(endPoint.Address,
ref port, m_scene.RegionInfo.ProxyOffset, m_scene.RegionInfo.m_allow_alternate_ports, m_source,
m_scene.AuthenticateHandler);
m_clientServer.AddScene(m_scene);
m_clientServer.Start();
}
}
public void Close()
{
}
public Type ReplaceableInterface
{
get { return null; }
}
public string Name
{
get { return "LLClientStackModule"; }
}
public bool IsSharedModule
{
get { return false; }
}
#endregion
}
}

View File

@@ -1,13 +0,0 @@
<Addin id="OpenSim.Client.Linden.LindenModules" version="0.2">
<Runtime>
<Import assembly="OpenSim.Client.Linden.dll"/>
</Runtime>
<Dependencies>
<Addin id="OpenSim" version="0.5" />
</Dependencies>
<Extension path = "/OpenSim/RegionModules">
<RegionModule id="LLClientStackModule" type="OpenSim.Client.Linden.LLClientStackModule" />
</Extension>
</Addin>

File diff suppressed because it is too large Load Diff

View File

@@ -1,131 +0,0 @@
/*
* 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.Generic;
using System.Reflection;
using System.Text;
using System.Timers;
using log4net;
using MXP;
using Nini.Config;
using OpenMetaverse;
using OpenSim.Client.MXP.PacketHandler;
using OpenSim.Region.Framework.Interfaces;
using OpenSim.Region.Framework.Scenes;
namespace OpenSim.Client.MXP
{
/**
* MXP Client Module which adds MXP support to client / region communication.
*/
public class MXPModule : IRegionModule
{
private static readonly ILog m_log = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType);
private MXPPacketServer m_server;
private IConfigSource m_config;
private int m_port = 1253;
private Timer m_ticker;
private readonly Dictionary<UUID, Scene> m_scenes = new Dictionary<UUID, Scene>();
private bool m_shutdown;
public void Initialise(Scene scene, IConfigSource source)
{
if (!m_scenes.ContainsKey(scene.RegionInfo.RegionID))
m_scenes.Add(scene.RegionInfo.RegionID, scene);
m_config = source;
}
public void PostInitialise()
{
if (m_config.Configs["MXP"] != null)
{
IConfig con = m_config.Configs["MXP"];
if (!con.GetBoolean("Enabled", false))
return;
m_port = con.GetInt("Port", m_port);
m_server = new MXPPacketServer(m_port, m_scenes,m_config.Configs["StandAlone"].GetBoolean("accounts_authenticate",true));
m_ticker = new Timer(100);
m_ticker.AutoReset = false;
m_ticker.Elapsed += ticker_Elapsed;
lock (m_ticker)
m_ticker.Start();
m_log.Info("[MXP ClientStack] MXP Enabled and Listening");
}
}
void ticker_Elapsed(object sender, ElapsedEventArgs e)
{
try
{
m_server.Process();
}
catch (Exception ex)
{
m_log.Error("[MXP ClientStack]: Unhandled exception in process loop: " + ex.ToString() + " :" + ex.StackTrace.ToString());
}
if (!m_shutdown)
{
lock (m_ticker)
m_ticker.Start();
}
}
public void Close()
{
m_shutdown = true;
if (m_ticker != null)
{
lock (m_ticker)
m_ticker.Stop();
}
}
public string Name
{
get { return "MXP ClientStack Module"; }
}
public bool IsSharedModule
{
get { return true; }
}
}
}

View File

@@ -1,561 +0,0 @@
/*
* 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.
*/
/* This file borrows heavily from MXPServer.cs - the reference MXPServer
* See http://www.bubblecloud.org for a copy of the original file and
* implementation details. */
using System;
using System.Collections.Generic;
using System.Reflection;
using System.Threading;
using log4net;
using MXP;
using MXP.Messages;
using OpenMetaverse;
using OpenSim.Client.MXP.ClientStack;
using OpenSim.Framework;
using OpenSim.Region.Framework.Scenes;
using OpenSim.Framework.Communications;
using OpenSim.Services.Interfaces;
using System.Security.Cryptography;
namespace OpenSim.Client.MXP.PacketHandler
{
public class MXPPacketServer
{
internal static readonly ILog m_log = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType);
#region Fields
private readonly List<MXPClientView> m_clients = new List<MXPClientView>();
private readonly Dictionary<UUID, Scene> m_scenes;
private readonly Transmitter m_transmitter;
// private readonly Thread m_clientThread;
private readonly IList<Session> m_sessions = new List<Session>();
private readonly IList<Session> m_sessionsToClient = new List<Session>();
private readonly IList<MXPClientView> m_sessionsToRemove = new List<MXPClientView>();
private readonly int m_port;
// private readonly bool m_accountsAuthenticate;
private readonly String m_programName;
private readonly byte m_programMajorVersion;
private readonly byte m_programMinorVersion;
#endregion
#region Constructors
public MXPPacketServer(int port, Dictionary<UUID, Scene> scenes, bool accountsAuthenticate)
{
m_port = port;
// m_accountsAuthenticate = accountsAuthenticate;
m_scenes = scenes;
m_programMinorVersion = 63;
m_programMajorVersion = 0;
m_programName = "OpenSimulator";
m_transmitter = new Transmitter(port);
StartListener();
}
public void StartListener()
{
m_log.Info("[MXP ClientStack] Transmitter starting on UDP server port: " + m_port);
m_transmitter.Startup();
m_log.Info("[MXP ClientStack] Transmitter started. MXP version: "+MxpConstants.ProtocolMajorVersion+"."+MxpConstants.ProtocolMinorVersion+" Source Revision: "+MxpConstants.ProtocolSourceRevision);
}
#endregion
#region Properties
/// <summary>
/// Number of sessions pending. (Process() accepts pending sessions).
/// </summary>
public int PendingSessionCount
{
get
{
return m_transmitter.PendingSessionCount;
}
}
/// <summary>
/// Number of connected sessions.
/// </summary>
public int SessionCount
{
get
{
return m_sessions.Count;
}
}
/// <summary>
/// Property reflecting whether client transmitter threads are alive.
/// </summary>
public bool IsTransmitterAlive
{
get
{
return m_transmitter != null && m_transmitter.IsAlive;
}
}
/// <summary>
/// Number of packets sent.
/// </summary>
public ulong PacketsSent
{
get
{
return m_transmitter != null ? m_transmitter.PacketsSent : 0;
}
}
/// <summary>
/// Number of packets received.
/// </summary>
public ulong PacketsReceived
{
get
{
return m_transmitter != null ? m_transmitter.PacketsReceived : 0;
}
}
/// <summary>
/// Bytes client has received so far.
/// </summary>
public ulong BytesReceived
{
get
{
return m_transmitter != null ? m_transmitter.BytesReceived : 0;
}
}
/// <summary>
/// Bytes client has sent so far.
/// </summary>
public ulong BytesSent
{
get
{
return m_transmitter != null ? m_transmitter.BytesSent : 0;
}
}
/// <summary>
/// Number of bytes received (bytes per second) during past second.
/// </summary>
public double ReceiveRate
{
get
{
return m_transmitter != null ? m_transmitter.ReceiveRate : 0;
}
}
/// <summary>
/// Number of bytes sent (bytes per second) during past second.
/// </summary>
public double SendRate
{
get
{
return m_transmitter != null ? m_transmitter.SendRate : 0;
}
}
#endregion
#region Session Management
public void Disconnect(Session session)
{
if (session.IsConnected)
{
Message message = MessageFactory.Current.ReserveMessage(typeof(LeaveRequestMessage));
session.Send(message);
MessageFactory.Current.ReleaseMessage(message);
}
else
{
throw new Exception("Not connected.");
}
}
#endregion
#region Processing
public void Process()
{
ProcessMessages();
Clean();
}
public void Clean()
{
foreach (MXPClientView clientView in m_clients)
{
if (clientView.Session.SessionState == SessionState.Disconnected)
{
m_sessionsToRemove.Add(clientView);
}
}
foreach (MXPClientView clientView in m_sessionsToRemove)
{
clientView.Scene.RemoveClient(clientView.AgentId);
clientView.OnClean();
m_clients.Remove(clientView);
m_sessions.Remove(clientView.Session);
}
m_sessionsToRemove.Clear();
}
public void ProcessMessages()
{
if (m_transmitter.PendingSessionCount > 0)
{
Session tmp = m_transmitter.AcceptPendingSession();
m_sessions.Add(tmp);
m_sessionsToClient.Add(tmp);
}
List<Session> tmpRemove = new List<Session>();
foreach (Session session in m_sessionsToClient)
{
while (session.AvailableMessages > 0)
{
Message message = session.Receive();
if (message.GetType() == typeof (JoinRequestMessage))
{
JoinRequestMessage joinRequestMessage = (JoinRequestMessage) message;
m_log.Info("[MXP ClientStack]: Session join request: " + session.SessionId + " (" +
(session.IsIncoming ? "from" : "to") + " " + session.RemoteEndPoint.Address + ":" +
session.RemoteEndPoint.Port + ")");
try
{
if (joinRequestMessage.BubbleId == Guid.Empty)
{
foreach (Scene scene in m_scenes.Values)
{
if (scene.RegionInfo.RegionName == joinRequestMessage.BubbleName)
{
m_log.Info("[MXP ClientStack]: Resolved region by name: " + joinRequestMessage.BubbleName + " (" + scene.RegionInfo.RegionID + ")");
joinRequestMessage.BubbleId = scene.RegionInfo.RegionID.Guid;
}
}
}
if (joinRequestMessage.BubbleId == Guid.Empty)
{
m_log.Warn("[MXP ClientStack]: Failed to resolve region by name: " + joinRequestMessage.BubbleName);
}
UUID sceneId = new UUID(joinRequestMessage.BubbleId);
bool regionExists = true;
if (!m_scenes.ContainsKey(sceneId))
{
m_log.Info("[MXP ClientStack]: No such region: " + sceneId);
regionExists = false;
}
UUID userId = UUID.Zero;
UserAccount account = null;
bool authorized = regionExists ? AuthoriseUser(joinRequestMessage.ParticipantName,
joinRequestMessage.ParticipantPassphrase,
new UUID(joinRequestMessage.BubbleId), out account)
: false;
if (authorized)
{
Scene scene = m_scenes[sceneId];
UUID mxpSessionID = UUID.Random();
string reason;
m_log.Debug("[MXP ClientStack]: Session join request success: " + session.SessionId + " (" +
(session.IsIncoming ? "from" : "to") + " " + session.RemoteEndPoint.Address + ":" +
session.RemoteEndPoint.Port + ")");
m_log.Debug("[MXP ClientStack]: Attaching UserAgent to UserProfile...");
UUID secureSession = UUID.Zero;
AttachUserAgentToUserProfile(account, session, mxpSessionID, sceneId, out secureSession);
m_log.Debug("[MXP ClientStack]: Attached UserAgent to UserProfile.");
m_log.Debug("[MXP ClientStack]: Preparing Scene to Connection...");
if (!PrepareSceneForConnection(mxpSessionID, secureSession, sceneId, account, out reason))
{
m_log.DebugFormat("[MXP ClientStack]: Scene refused connection: {0}", reason);
DeclineConnection(session, joinRequestMessage);
tmpRemove.Add(session);
continue;
}
m_log.Debug("[MXP ClientStack]: Prepared Scene to Connection.");
m_log.Debug("[MXP ClientStack]: Accepting connection...");
AcceptConnection(session, joinRequestMessage, mxpSessionID, userId);
m_log.Info("[MXP ClientStack]: Accepted connection.");
m_log.Debug("[MXP ClientStack]: Creating ClientView....");
MXPClientView client = new MXPClientView(session, mxpSessionID, userId, scene, account.FirstName, account.LastName);
m_clients.Add(client);
m_log.Debug("[MXP ClientStack]: Created ClientView.");
client.MXPSendSynchronizationBegin(m_scenes[new UUID(joinRequestMessage.BubbleId)].SceneContents.GetTotalObjectsCount());
m_log.Debug("[MXP ClientStack]: Starting ClientView...");
try
{
client.Start();
m_log.Debug("[MXP ClientStack]: Started ClientView.");
}
catch (Exception e)
{
m_log.Error(e);
}
m_log.Debug("[MXP ClientStack]: Connected");
}
else
{
m_log.Info("[MXP ClientStack]: Session join request failure: " + session.SessionId + " (" +
(session.IsIncoming ? "from" : "to") + " " + session.RemoteEndPoint.Address + ":" +
session.RemoteEndPoint.Port + ")");
DeclineConnection(session, joinRequestMessage);
}
}
catch (Exception e)
{
m_log.Error("[MXP ClientStack]: Session join request failure: " + session.SessionId + " (" +
(session.IsIncoming ? "from" : "to") + " " + session.RemoteEndPoint.Address + ":" +
session.RemoteEndPoint.Port + "): "+e.ToString()+" :"+e.StackTrace.ToString());
}
tmpRemove.Add(session);
}
}
}
foreach (Session session in tmpRemove)
{
m_sessionsToClient.Remove(session);
}
foreach (MXPClientView clientView in m_clients)
{
int messagesProcessedCount = 0;
Session session = clientView.Session;
while (session.AvailableMessages > 0)
{
Message message = session.Receive();
if (message.GetType() == typeof(LeaveRequestMessage))
{
LeaveResponseMessage leaveResponseMessage = (LeaveResponseMessage)MessageFactory.Current.ReserveMessage(
typeof(LeaveResponseMessage));
m_log.Debug("[MXP ClientStack]: Session leave request: " + session.SessionId + " (" + (session.IsIncoming ? "from" : "to") + " " + session.RemoteEndPoint.Address + ":" + session.RemoteEndPoint.Port + ")");
leaveResponseMessage.RequestMessageId = message.MessageId;
leaveResponseMessage.FailureCode = 0;
session.Send(leaveResponseMessage);
if (session.SessionState != SessionState.Disconnected)
{
session.SetStateDisconnected();
}
m_log.Debug("[MXP ClientStack]: Removing Client from Scene");
//clientView.Scene.RemoveClient(clientView.AgentId);
}
if (message.GetType() == typeof(LeaveResponseMessage))
{
LeaveResponseMessage leaveResponseMessage = (LeaveResponseMessage)message;
m_log.Debug("[MXP ClientStack]: Session leave response: " + session.SessionId + " (" + (session.IsIncoming ? "from" : "to") + " " + session.RemoteEndPoint.Address + ":" + session.RemoteEndPoint.Port + ")");
if (leaveResponseMessage.FailureCode == 0)
{
session.SetStateDisconnected();
}
m_log.Debug("[MXP ClientStack]: Removing Client from Scene");
//clientView.Scene.RemoveClient(clientView.AgentId);
}
else
{
clientView.MXPPRocessMessage(message);
}
MessageFactory.Current.ReleaseMessage(message);
messagesProcessedCount++;
if (messagesProcessedCount > 1000)
{
break;
}
}
}
}
private void AcceptConnection(Session session, JoinRequestMessage joinRequestMessage, UUID mxpSessionID, UUID userId)
{
JoinResponseMessage joinResponseMessage = (JoinResponseMessage)MessageFactory.Current.ReserveMessage(
typeof(JoinResponseMessage));
joinResponseMessage.RequestMessageId = joinRequestMessage.MessageId;
joinResponseMessage.FailureCode = MxpResponseCodes.SUCCESS;
joinResponseMessage.BubbleId = joinRequestMessage.BubbleId;
joinResponseMessage.ParticipantId = userId.Guid;
joinResponseMessage.AvatarId = userId.Guid;
joinResponseMessage.BubbleAssetCacheUrl = "http://" +
NetworkUtil.GetHostFor(session.RemoteEndPoint.Address,
m_scenes[
new UUID(joinRequestMessage.BubbleId)].
RegionInfo.
ExternalHostName) + ":" +
m_scenes[new UUID(joinRequestMessage.BubbleId)].RegionInfo.
HttpPort + "/assets/";
joinResponseMessage.BubbleName = m_scenes[new UUID(joinRequestMessage.BubbleId)].RegionInfo.RegionName;
joinResponseMessage.BubbleRange = 128;
joinResponseMessage.BubblePerceptionRange = 128 + 256;
joinResponseMessage.BubbleRealTime = 0;
joinResponseMessage.ProgramName = m_programName;
joinResponseMessage.ProgramMajorVersion = m_programMajorVersion;
joinResponseMessage.ProgramMinorVersion = m_programMinorVersion;
joinResponseMessage.ProtocolMajorVersion = MxpConstants.ProtocolMajorVersion;
joinResponseMessage.ProtocolMinorVersion = MxpConstants.ProtocolMinorVersion;
joinResponseMessage.ProtocolSourceRevision = MxpConstants.ProtocolSourceRevision;
session.Send(joinResponseMessage);
session.SetStateConnected();
}
private void DeclineConnection(Session session, Message joinRequestMessage)
{
JoinResponseMessage joinResponseMessage = (JoinResponseMessage)MessageFactory.Current.ReserveMessage(typeof(JoinResponseMessage));
joinResponseMessage.RequestMessageId = joinRequestMessage.MessageId;
joinResponseMessage.FailureCode = MxpResponseCodes.UNAUTHORIZED_OPERATION;
joinResponseMessage.ProgramName = m_programName;
joinResponseMessage.ProgramMajorVersion = m_programMajorVersion;
joinResponseMessage.ProgramMinorVersion = m_programMinorVersion;
joinResponseMessage.ProtocolMajorVersion = MxpConstants.ProtocolMajorVersion;
joinResponseMessage.ProtocolMinorVersion = MxpConstants.ProtocolMinorVersion;
joinResponseMessage.ProtocolSourceRevision = MxpConstants.ProtocolSourceRevision;
session.Send(joinResponseMessage);
session.SetStateDisconnected();
}
public bool AuthoriseUser(string participantName, string password, UUID sceneId, out UserAccount account)
{
string firstName = "";
string lastName = "";
account = null;
string[] nameParts = participantName.Split(' ');
if (nameParts.Length != 2)
{
m_log.Error("[MXP ClientStack]: Login failed as user name is not formed of first and last name separated by space: " + participantName);
return false;
}
firstName = nameParts[0];
lastName = nameParts[1];
account = m_scenes[sceneId].UserAccountService.GetUserAccount(m_scenes[sceneId].RegionInfo.ScopeID, firstName, lastName);
if (account != null)
return (m_scenes[sceneId].AuthenticationService.Authenticate(account.PrincipalID, password, 1) != string.Empty);
return false;
}
private void AttachUserAgentToUserProfile(UserAccount account, Session session, UUID sessionId, UUID sceneId, out UUID secureSessionId)
{
secureSessionId = UUID.Random();
Scene scene = m_scenes[sceneId];
scene.PresenceService.LoginAgent(account.PrincipalID.ToString(), sessionId, secureSessionId);
}
private bool PrepareSceneForConnection(UUID sessionId, UUID secureSessionId, UUID sceneId, UserAccount account, out string reason)
{
Scene scene = m_scenes[sceneId];
AgentCircuitData agent = new AgentCircuitData();
agent.AgentID = account.PrincipalID;
agent.firstname = account.FirstName;
agent.lastname = account.LastName;
agent.SessionID = sessionId;
agent.SecureSessionID = secureSessionId;
agent.circuitcode = sessionId.CRC();
agent.BaseFolder = UUID.Zero;
agent.InventoryFolder = UUID.Zero;
agent.startpos = new Vector3(0, 0, 0); // TODO Fill in region start position
agent.CapsPath = "http://localhost/";
agent.Appearance = scene.AvatarService.GetAppearance(account.PrincipalID);
if (agent.Appearance == null)
{
m_log.WarnFormat("[INTER]: Appearance not found for {0} {1}. Creating default.", agent.firstname, agent.lastname);
agent.Appearance = new AvatarAppearance();
}
return scene.NewUserConnection(agent, 0, out reason);
}
public void PrintDebugInformation()
{
m_log.Info("[MXP ClientStack]: Statistics report");
m_log.Info("Pending Sessions: " + PendingSessionCount);
m_log.Info("Sessions: " + SessionCount + " (Clients: " + m_clients.Count + " )");
m_log.Info("Transmitter Alive?: " + IsTransmitterAlive);
m_log.Info("Packets Sent/Received: " + PacketsSent + " / " + PacketsReceived);
m_log.Info("Bytes Sent/Received: " + BytesSent + " / " + BytesReceived);
m_log.Info("Send/Receive Rate (bps): " + SendRate + " / " + ReceiveRate);
}
#endregion
}
}

File diff suppressed because it is too large Load Diff

View File

@@ -1,133 +0,0 @@
/*
* 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.Generic;
using System.Text;
using Nini.Config;
using OpenMetaverse;
using OpenSim.Client.VWoHTTP.ClientStack;
using OpenSim.Framework;
using OpenSim.Framework.Servers;
using OpenSim.Framework.Servers.HttpServer;
using OpenSim.Region.Framework.Interfaces;
using OpenSim.Region.Framework.Scenes;
namespace OpenSim.Client.VWoHTTP
{
class VWoHTTPModule : IRegionModule, IHttpAgentHandler
{
private bool m_disabled = true;
private IHttpServer m_httpd;
private readonly List<Scene> m_scenes = new List<Scene>();
private Dictionary<UUID, VWHClientView> m_clients = new Dictionary<UUID, VWHClientView>();
#region Implementation of IRegionModule
public void Initialise(Scene scene, IConfigSource source)
{
if (m_disabled)
return;
m_scenes.Add(scene);
m_httpd = MainServer.Instance;
}
public void PostInitialise()
{
if (m_disabled)
return;
m_httpd.AddAgentHandler("vwohttp", this);
}
public void Close()
{
if (m_disabled)
return;
m_httpd.RemoveAgentHandler("vwohttp", this);
}
public string Name
{
get { return "VWoHTTP ClientStack"; }
}
public bool IsSharedModule
{
get { return true; }
}
#endregion
#region Implementation of IHttpAgentHandler
public bool Handle(OSHttpRequest req, OSHttpResponse resp)
{
string[] urlparts = req.Url.AbsolutePath.Split(new char[] {'/'}, StringSplitOptions.RemoveEmptyEntries);
if (urlparts.Length < 2)
return false;
if (urlparts[1] == "connect")
{
UUID sessID = UUID.Random();
VWHClientView client = new VWHClientView(sessID, UUID.Random(), "VWoHTTPClient", m_scenes[0]);
m_clients.Add(sessID, client);
return true;
}
else
{
if (urlparts.Length < 3)
return false;
UUID sessionID;
if (!UUID.TryParse(urlparts[1], out sessionID))
return false;
if (!m_clients.ContainsKey(sessionID))
return false;
return m_clients[sessionID].ProcessInMsg(req, resp);
}
}
public bool Match(OSHttpRequest req, OSHttpResponse resp)
{
return req.Url.ToString().Contains("vwohttp");
}
#endregion
}
}

View File

@@ -50,5 +50,6 @@ namespace OpenSim.Data
bool Store(UserAccountData data);
bool Delete(string field, string val);
UserAccountData[] GetUsers(UUID scopeID, string query);
UserAccountData[] GetUsersWhere(UUID scopeID, string where);
}
}

View File

@@ -74,9 +74,38 @@ namespace OpenSim.Data
bool StoreFolder(XInventoryFolder folder);
bool StoreItem(XInventoryItem item);
/// <summary>
/// Delete folders where field == val
/// </summary>
/// <param name="field"></param>
/// <param name="val"></param>
/// <returns>true if the delete was successful, false if it was not</returns>
bool DeleteFolders(string field, string val);
/// <summary>
/// Delete folders where field1 == val1, field2 == val2...
/// </summary>
/// <param name="fields"></param>
/// <param name="vals"></param>
/// <returns>true if the delete was successful, false if it was not</returns>
bool DeleteFolders(string[] fields, string[] vals);
/// <summary>
/// Delete items where field == val
/// </summary>
/// <param name="field"></param>
/// <param name="val"></param>
/// <returns>true if the delete was successful, false if it was not</returns>
bool DeleteItems(string field, string val);
/// <summary>
/// Delete items where field1 == val1, field2 == val2...
/// </summary>
/// <param name="fields"></param>
/// <param name="vals"></param>
/// <returns>true if the delete was successful, false if it was not</returns>
bool DeleteItems(string[] fields, string[] vals);
bool MoveItem(string id, string newParent);
XInventoryItem[] GetActiveGestures(UUID principalID);
int GetAssetPermissions(UUID principalID, UUID assetID);

View File

@@ -350,26 +350,48 @@ namespace OpenSim.Data.MSSQL
public EstateSettings LoadEstateSettings(int estateID)
{
// TODO: Implementation!
return new EstateSettings();
}
public List<EstateSettings> LoadEstateSettingsAll()
{
// TODO: Implementation!
return new List<EstateSettings>();
}
public List<int> GetEstates(string search)
{
// TODO: Implementation!
return new List<int>();
}
public List<int> GetEstatesAll()
{
// TODO: Implementation!
return new List<int>();
}
public List<int> GetEstatesByOwner(UUID ownerID)
{
return new List<int>();
}
public bool LinkRegion(UUID regionID, int estateID)
{
// TODO: Implementation!
return false;
}
public List<UUID> GetRegions(int estateID)
{
// TODO: Implementation!
return new List<UUID>();
}
public bool DeleteEstate(int estateID)
{
// TODO: Implementation!
return false;
}
#endregion

View File

@@ -56,15 +56,15 @@ namespace OpenSim.Data.MSSQL
string realm, string storeName)
{
m_Realm = realm;
m_ConnectionString = connectionString;
if (storeName != String.Empty)
{
Assembly assem = GetType().Assembly;
m_ConnectionString = connectionString;
using (SqlConnection conn = new SqlConnection(m_ConnectionString))
{
conn.Open();
Migration m = new Migration(conn, assem, storeName);
Migration m = new Migration(conn, GetType().Assembly, storeName);
m.Update();
}
@@ -335,24 +335,35 @@ namespace OpenSim.Data.MSSQL
}
}
public virtual bool Delete(string field, string val)
public virtual bool Delete(string field, string key)
{
return Delete(new string[] { field }, new string[] { key });
}
public virtual bool Delete(string[] fields, string[] keys)
{
if (fields.Length != keys.Length)
return false;
List<string> terms = new List<string>();
using (SqlConnection conn = new SqlConnection(m_ConnectionString))
using (SqlCommand cmd = new SqlCommand())
{
string deleteCommand = String.Format("DELETE FROM {0} WHERE [{1}] = @{1}", m_Realm, field);
cmd.CommandText = deleteCommand;
cmd.Parameters.Add(m_database.CreateParameter(field, val));
cmd.Connection = conn;
conn.Open();
if (cmd.ExecuteNonQuery() > 0)
for (int i = 0; i < fields.Length; i++)
{
//m_log.Warn("[MSSQLGenericTable]: " + deleteCommand);
return true;
cmd.Parameters.Add(m_database.CreateParameter(fields[i], keys[i]));
terms.Add("[" + fields[i] + "] = @" + fields[i]);
}
return false;
string where = String.Join(" AND ", terms.ToArray());
string query = String.Format("DELETE * FROM {0} WHERE {1}", m_Realm, where);
cmd.Connection = conn;
cmd.CommandText = query;
conn.Open();
return cmd.ExecuteNonQuery() > 0;
}
}
}

View File

@@ -61,7 +61,8 @@ namespace OpenSim.Data.MSSQL
}
catch
{
// Something went wrong, so we're version 0
// Return -1 to indicate table does not exist
return -1;
}
}
return version;

View File

@@ -492,12 +492,11 @@ ELSE
using (SqlConnection conn = new SqlConnection(m_connectionString))
using (SqlCommand cmd = new SqlCommand(sql, conn))
{
conn.Open();
foreach (TaskInventoryItem taskItem in items)
{
cmd.Parameters.AddRange(CreatePrimInventoryParameters(taskItem));
conn.Open();
cmd.ExecuteNonQuery();
cmd.Parameters.Clear();
}
}
@@ -1154,9 +1153,9 @@ VALUES
PrimitiveBaseShape baseShape = new PrimitiveBaseShape();
baseShape.Scale = new Vector3(
Convert.ToSingle(shapeRow["ScaleX"]),
Convert.ToSingle(shapeRow["ScaleY"]),
Convert.ToSingle(shapeRow["ScaleZ"]));
(float)Convert.ToDouble(shapeRow["ScaleX"]),
(float)Convert.ToDouble(shapeRow["ScaleY"]),
(float)Convert.ToDouble(shapeRow["ScaleZ"]));
// paths
baseShape.PCode = Convert.ToByte(shapeRow["PCode"]);
@@ -1193,8 +1192,11 @@ VALUES
{
}
if (!(shapeRow["Media"] is System.DBNull))
if (!(shapeRow["Media"] is System.DBNull) )
{
baseShape.Media = PrimitiveBaseShape.MediaList.FromXml((string)shapeRow["Media"]);
}
return baseShape;
}
@@ -1573,7 +1575,16 @@ VALUES
parameters.Add(_Database.CreateParameter("Texture", s.TextureEntry));
parameters.Add(_Database.CreateParameter("ExtraParams", s.ExtraParams));
parameters.Add(_Database.CreateParameter("State", s.State));
parameters.Add(_Database.CreateParameter("Media", null == s.Media ? null : s.Media.ToXml()));
if(null == s.Media )
{
parameters.Add(_Database.CreateParameter("Media", DBNull.Value));
}
else
{
parameters.Add(_Database.CreateParameter("Media", s.Media.ToXml()));
}
return parameters.ToArray();
}

View File

@@ -238,5 +238,10 @@ namespace OpenSim.Data.MSSQL
return DoQuery(cmd);
}
}
public UserAccountData[] GetUsersWhere(UUID scopeID, string where)
{
return null;
}
}
}

View File

@@ -79,11 +79,21 @@ namespace OpenSim.Data.MSSQL
return m_Folders.Delete(field, val);
}
public bool DeleteFolders(string[] fields, string[] vals)
{
return m_Folders.Delete(fields, vals);
}
public bool DeleteItems(string field, string val)
{
return m_Items.Delete(field, val);
}
public bool DeleteItems(string[] fields, string[] vals)
{
return m_Items.Delete(fields, vals);
}
public bool MoveItem(string id, string newParent)
{
return m_Items.MoveItem(id, newParent);

View File

@@ -22,7 +22,11 @@ COMMIT
BEGIN TRANSACTION
INSERT INTO auth (UUID, passwordHash, passwordSalt, webLoginKey, accountType) SELECT [UUID] AS UUID, [passwordHash] AS passwordHash, [passwordSalt] AS passwordSalt, [webLoginKey] AS webLoginKey, 'UserAccount' as [accountType] FROM users;
IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[users]') AND type in (N'U'))
INSERT INTO auth (UUID, passwordHash, passwordSalt, webLoginKey, accountType) SELECT [UUID] AS UUID, [passwordHash] AS passwordHash, [passwordSalt] AS passwordSalt, [webLoginKey] AS webLoginKey, 'UserAccount' as [accountType] FROM users;
COMMIT
COMMIT

View File

@@ -13,5 +13,28 @@ PRIMARY KEY CLUSTERED
) ON [PRIMARY]
COMMIT
:VERSION 2
BEGIN TRANSACTION
CREATE TABLE dbo.Tmp_Avatars
(
PrincipalID uniqueidentifier NOT NULL,
[Name] varchar(32) NOT NULL,
Value text NOT NULL DEFAULT '',
) ON [PRIMARY]
TEXTIMAGE_ON [PRIMARY]
IF EXISTS(SELECT * FROM dbo.Avatars)
EXEC('INSERT INTO dbo.Tmp_Avatars (PrincipalID, Name, Value)
SELECT PrincipalID, CONVERT(text, Name), Value FROM dbo.Avatars WITH (HOLDLOCK TABLOCKX)')
DROP TABLE dbo.Avatars
EXECUTE sp_rename N'dbo.Tmp_Avatars', N'Avatars', 'OBJECT'
COMMIT
COMMIT

View File

@@ -15,6 +15,8 @@ COMMIT
BEGIN TRANSACTION
INSERT INTO Friends (PrincipalID, Friend, Flags, Offered) SELECT [ownerID], [friendID], [friendPerms], 0 FROM userfriends;
IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[userfriends]') AND type in (N'U'))
INSERT INTO Friends (PrincipalID, Friend, Flags, Offered)
SELECT [ownerID], [friendID], [friendPerms], 0 FROM userfriends;
COMMIT

View File

@@ -222,4 +222,17 @@ ALTER TABLE [regions] ADD [Token] varchar(255) NOT NULL DEFAULT 0;
COMMIT
:VERSION 8
BEGIN TRANSACTION
ALTER TABLE regions ALTER COLUMN regionName VarChar(128)
DROP INDEX IX_regions_name ON dbo.regions
ALTER TABLE regions ALTER COLUMN regionName VarChar(128) null
CREATE NONCLUSTERED INDEX IX_regions_name ON dbo.regions
(
regionName
) WITH( STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
COMMIT

View File

@@ -0,0 +1,19 @@
:VERSION 1 # --------------------------
BEGIN TRANSACTION
CREATE TABLE "GridUser" (
"UserID" VARCHAR(255) NOT NULL,
"HomeRegionID" CHAR(36) NOT NULL DEFAULT '00000000-0000-0000-0000-000000000000',
"HomePosition" CHAR(64) NOT NULL DEFAULT '<0,0,0>',
"HomeLookAt" CHAR(64) NOT NULL DEFAULT '<0,0,0>',
"LastRegionID" CHAR(36) NOT NULL DEFAULT '00000000-0000-0000-0000-000000000000',
"LastPosition" CHAR(64) NOT NULL DEFAULT '<0,0,0>',
"LastLookAt" CHAR(64) NOT NULL DEFAULT '<0,0,0>',
"Online" CHAR(5) NOT NULL DEFAULT 'false',
"Login" CHAR(16) NOT NULL DEFAULT '0',
"Logout" CHAR(16) NOT NULL DEFAULT '0',
PRIMARY KEY ("UserID")
)
COMMIT

View File

@@ -238,7 +238,10 @@ alter table inventoryitems
COMMIT
:VERSION 8
ALTER TABLE inventoryitems
ADD CONSTRAINT DF_inventoryitems_creatorID
DEFAULT '00000000-0000-0000-0000-000000000000' FOR creatorID
:GO

View File

@@ -7,14 +7,7 @@ CREATE TABLE [Presence] (
[RegionID] uniqueidentifier NOT NULL,
[SessionID] uniqueidentifier NOT NULL DEFAULT '00000000-0000-0000-0000-000000000000',
[SecureSessionID] uniqueidentifier NOT NULL DEFAULT '00000000-0000-0000-0000-000000000000',
[Online] char(5) NOT NULL DEFAULT 'false',
[Login] char(16) NOT NULL DEFAULT '0',
[Logout] char(16) NOT NULL DEFAULT '0',
[Position] char(64) NOT NULL DEFAULT '<0,0,0>',
[LookAt] char(64) NOT NULL DEFAULT '<0,0,0>',
[HomeRegionID] uniqueidentifier NOT NULL,
[HomePosition] CHAR(64) NOT NULL DEFAULT '<0,0,0>',
[HomeLookAt] CHAR(64) NOT NULL DEFAULT '<0,0,0>',
)
ON [PRIMARY]
@@ -27,4 +20,12 @@ BEGIN TRANSACTION
CREATE UNIQUE INDEX SessionID ON Presence(SessionID);
CREATE INDEX UserID ON Presence(UserID);
COMMIT
:VERSION 2
BEGIN TRANSACTION
ALTER TABLE Presence ADD LastSeen DateTime
COMMIT

View File

@@ -1,4 +1,3 @@
:VERSION 1
CREATE TABLE [dbo].[prims](
@@ -926,11 +925,121 @@ ALTER TABLE regionsettings ADD loaded_creation_datetime int NOT NULL default 0
COMMIT
:VERSION 24
-- Added post 0.7
BEGIN TRANSACTION
ALTER TABLE prims ADD COLUMN MediaURL varchar(255)
ALTER TABLE primshapes ADD COLUMN Media TEXT
ALTER TABLE prims ADD MediaURL varchar(255)
ALTER TABLE primshapes ADD Media TEXT NULL
COMMIT
COMMIT
:VERSION 25
BEGIN TRANSACTION
CREATE TABLE "regionwindlight" (
"region_id" varchar(36) NOT NULL DEFAULT '000000-0000-0000-0000-000000000000',
"water_color_r" [float] NOT NULL DEFAULT '4.000000',
"water_color_g" [float] NOT NULL DEFAULT '38.000000',
"water_color_b" [float] NOT NULL DEFAULT '64.000000',
"water_fog_density_exponent" [float] NOT NULL DEFAULT '4.0',
"underwater_fog_modifier" [float] NOT NULL DEFAULT '0.25',
"reflection_wavelet_scale_1" [float] NOT NULL DEFAULT '2.0',
"reflection_wavelet_scale_2" [float] NOT NULL DEFAULT '2.0',
"reflection_wavelet_scale_3" [float] NOT NULL DEFAULT '2.0',
"fresnel_scale" [float] NOT NULL DEFAULT '0.40',
"fresnel_offset" [float] NOT NULL DEFAULT '0.50',
"refract_scale_above" [float] NOT NULL DEFAULT '0.03',
"refract_scale_below" [float] NOT NULL DEFAULT '0.20',
"blur_multiplier" [float] NOT NULL DEFAULT '0.040',
"big_wave_direction_x" [float] NOT NULL DEFAULT '1.05',
"big_wave_direction_y" [float] NOT NULL DEFAULT '-0.42',
"little_wave_direction_x" [float] NOT NULL DEFAULT '1.11',
"little_wave_direction_y" [float] NOT NULL DEFAULT '-1.16',
"normal_map_texture" varchar(36) NOT NULL DEFAULT '822ded49-9a6c-f61c-cb89-6df54f42cdf4',
"horizon_r" [float] NOT NULL DEFAULT '0.25',
"horizon_g" [float] NOT NULL DEFAULT '0.25',
"horizon_b" [float] NOT NULL DEFAULT '0.32',
"horizon_i" [float] NOT NULL DEFAULT '0.32',
"haze_horizon" [float] NOT NULL DEFAULT '0.19',
"blue_density_r" [float] NOT NULL DEFAULT '0.12',
"blue_density_g" [float] NOT NULL DEFAULT '0.22',
"blue_density_b" [float] NOT NULL DEFAULT '0.38',
"blue_density_i" [float] NOT NULL DEFAULT '0.38',
"haze_density" [float] NOT NULL DEFAULT '0.70',
"density_multiplier" [float] NOT NULL DEFAULT '0.18',
"distance_multiplier" [float] NOT NULL DEFAULT '0.8',
"max_altitude" int NOT NULL DEFAULT '1605',
"sun_moon_color_r" [float] NOT NULL DEFAULT '0.24',
"sun_moon_color_g" [float] NOT NULL DEFAULT '0.26',
"sun_moon_color_b" [float] NOT NULL DEFAULT '0.30',
"sun_moon_color_i" [float] NOT NULL DEFAULT '0.30',
"sun_moon_position" [float] NOT NULL DEFAULT '0.317',
"ambient_r" [float] NOT NULL DEFAULT '0.35',
"ambient_g" [float] NOT NULL DEFAULT '0.35',
"ambient_b" [float] NOT NULL DEFAULT '0.35',
"ambient_i" [float] NOT NULL DEFAULT '0.35',
"east_angle" [float] NOT NULL DEFAULT '0.00',
"sun_glow_focus" [float] NOT NULL DEFAULT '0.10',
"sun_glow_size" [float] NOT NULL DEFAULT '1.75',
"scene_gamma" [float] NOT NULL DEFAULT '1.00',
"star_brightness" [float] NOT NULL DEFAULT '0.00',
"cloud_color_r" [float] NOT NULL DEFAULT '0.41',
"cloud_color_g" [float] NOT NULL DEFAULT '0.41',
"cloud_color_b" [float] NOT NULL DEFAULT '0.41',
"cloud_color_i" [float] NOT NULL DEFAULT '0.41',
"cloud_x" [float] NOT NULL DEFAULT '1.00',
"cloud_y" [float] NOT NULL DEFAULT '0.53',
"cloud_density" [float] NOT NULL DEFAULT '1.00',
"cloud_coverage" [float] NOT NULL DEFAULT '0.27',
"cloud_scale" [float] NOT NULL DEFAULT '0.42',
"cloud_detail_x" [float] NOT NULL DEFAULT '1.00',
"cloud_detail_y" [float] NOT NULL DEFAULT '0.53',
"cloud_detail_density" [float] NOT NULL DEFAULT '0.12',
"cloud_scroll_x" [float] NOT NULL DEFAULT '0.20',
"cloud_scroll_x_lock" tinyint NOT NULL DEFAULT '0',
"cloud_scroll_y" [float] NOT NULL DEFAULT '0.01',
"cloud_scroll_y_lock" tinyint NOT NULL DEFAULT '0',
"draw_classic_clouds" tinyint NOT NULL DEFAULT '1',
PRIMARY KEY ("region_id")
)
COMMIT TRANSACTION
:VERSION 26
BEGIN TRANSACTION
ALTER TABLE regionsettings ADD map_tile_ID CHAR(36) NOT NULL DEFAULT '00000000-0000-0000-0000-000000000000'
COMMIT
:VERSION 27 #---------------------
BEGIN TRANSACTION
ALTER TABLE land ADD MediaType VARCHAR(32) NOT NULL DEFAULT 'none/none'
ALTER TABLE land ADD MediaDescription VARCHAR(255) NOT NULL DEFAULT ''
ALTER TABLE land ADD MediaSize VARCHAR(16) NOT NULL DEFAULT '0,0'
ALTER TABLE land ADD MediaLoop bit NOT NULL DEFAULT 0
ALTER TABLE land ADD ObscureMusic bit NOT NULL DEFAULT 0
ALTER TABLE land ADD ObscureMedia bit NOT NULL DEFAULT 0
COMMIT
:VERSION 28 #---------------------
BEGIN TRANSACTION
ALTER TABLE prims
ADD CONSTRAINT DF_prims_CreatorID
DEFAULT '00000000-0000-0000-0000-000000000000'
FOR CreatorID
ALTER TABLE prims ALTER COLUMN CreatorID uniqueidentifier NOT NULL
ALTER TABLE primitems
ADD CONSTRAINT DF_primitems_CreatorID
DEFAULT '00000000-0000-0000-0000-000000000000'
FOR CreatorID
ALTER TABLE primitems ALTER COLUMN CreatorID uniqueidentifier NOT NULL
COMMIT

View File

@@ -19,7 +19,7 @@ CREATE TABLE [UserAccounts] (
:VERSION 2
BEGIN TRANSACTION
IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[users]') AND type in (N'U'))
INSERT INTO UserAccounts (PrincipalID, ScopeID, FirstName, LastName, Email, ServiceURLs, Created) SELECT [UUID] AS PrincipalID, '00000000-0000-0000-0000-000000000000' AS ScopeID,
username AS FirstName,
lastname AS LastName,

View File

@@ -47,6 +47,11 @@ namespace OpenSim.Data.MySQL
private string m_connectionString;
private object m_dbLock = new object();
protected virtual Assembly Assembly
{
get { return GetType().Assembly; }
}
#region IPlugin Members
public override string Version { get { return "1.0.0.0"; } }
@@ -66,13 +71,10 @@ namespace OpenSim.Data.MySQL
{
m_connectionString = connect;
// This actually does the roll forward assembly stuff
Assembly assem = GetType().Assembly;
using (MySqlConnection dbcon = new MySqlConnection(m_connectionString))
{
dbcon.Open();
Migration m = new Migration(dbcon, assem, "AssetStore");
Migration m = new Migration(dbcon, Assembly, "AssetStore");
m.Update();
}
}

View File

@@ -28,6 +28,7 @@
using System;
using System.Collections;
using System.Collections.Generic;
using System.Reflection;
using System.Data;
using OpenMetaverse;
using OpenSim.Framework;
@@ -42,6 +43,11 @@ namespace OpenSim.Data.MySQL
private int m_LastExpire;
// private string m_connectionString;
protected virtual Assembly Assembly
{
get { return GetType().Assembly; }
}
public MySqlAuthenticationData(string connectionString, string realm)
: base(connectionString)
{
@@ -51,7 +57,7 @@ namespace OpenSim.Data.MySQL
using (MySqlConnection dbcon = new MySqlConnection(m_connectionString))
{
dbcon.Open();
Migration m = new Migration(dbcon, GetType().Assembly, "AuthStore");
Migration m = new Migration(dbcon, Assembly, "AuthStore");
m.Update();
}
}

View File

@@ -43,7 +43,7 @@ namespace OpenSim.Data.MySQL
public class MySQLAvatarData : MySQLGenericTableHandler<AvatarBaseData>,
IAvatarData
{
private static readonly ILog m_log = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType);
// private static readonly ILog m_log = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType);
public MySQLAvatarData(string connectionString, string realm) :
base(connectionString, realm, "Avatar")

View File

@@ -48,12 +48,17 @@ namespace OpenSim.Data.MySQL
private string m_connectionString;
private long m_waitTimeout;
private long m_waitTimeoutLeeway = 60 * TimeSpan.TicksPerSecond;
private long m_lastConnectionUse;
// private long m_lastConnectionUse;
private FieldInfo[] m_Fields;
private Dictionary<string, FieldInfo> m_FieldMap =
new Dictionary<string, FieldInfo>();
protected virtual Assembly Assembly
{
get { return GetType().Assembly; }
}
public MySQLEstateStore()
{
}
@@ -82,8 +87,7 @@ namespace OpenSim.Data.MySQL
{
dbcon.Open();
Assembly assem = GetType().Assembly;
Migration m = new Migration(dbcon, assem, "EstateStore");
Migration m = new Migration(dbcon, Assembly, "EstateStore");
m.Update();
Type t = typeof(EstateSettings);
@@ -123,7 +127,7 @@ namespace OpenSim.Data.MySQL
}
}
m_lastConnectionUse = DateTime.Now.Ticks;
// m_lastConnectionUse = DateTime.Now.Ticks;
m_log.DebugFormat(
"[REGION DB]: Connection wait timeout {0} seconds",
@@ -409,6 +413,46 @@ namespace OpenSim.Data.MySQL
return DoLoad(cmd, UUID.Zero, false);
}
}
public List<EstateSettings> LoadEstateSettingsAll()
{
List<EstateSettings> allEstateSettings = new List<EstateSettings>();
List<int> allEstateIds = GetEstatesAll();
foreach (int estateId in allEstateIds)
allEstateSettings.Add(LoadEstateSettings(estateId));
return allEstateSettings;
}
public List<int> GetEstatesAll()
{
List<int> result = new List<int>();
using (MySqlConnection dbcon = new MySqlConnection(m_connectionString))
{
dbcon.Open();
using (MySqlCommand cmd = dbcon.CreateCommand())
{
cmd.CommandText = "select estateID from estate_settings";
using (IDataReader reader = cmd.ExecuteReader())
{
while (reader.Read())
{
result.Add(Convert.ToInt32(reader["EstateID"]));
}
reader.Close();
}
}
dbcon.Close();
}
return result;
}
public List<int> GetEstates(string search)
{
@@ -440,6 +484,36 @@ namespace OpenSim.Data.MySQL
return result;
}
public List<int> GetEstatesByOwner(UUID ownerID)
{
List<int> result = new List<int>();
using (MySqlConnection dbcon = new MySqlConnection(m_connectionString))
{
dbcon.Open();
using (MySqlCommand cmd = dbcon.CreateCommand())
{
cmd.CommandText = "select estateID from estate_settings where EstateOwner = ?EstateOwner";
cmd.Parameters.AddWithValue("?EstateOwner", ownerID);
using (IDataReader reader = cmd.ExecuteReader())
{
while (reader.Read())
{
result.Add(Convert.ToInt32(reader["EstateID"]));
}
reader.Close();
}
}
dbcon.Close();
}
return result;
}
public bool LinkRegion(UUID regionID, int estateID)
{
using (MySqlConnection dbcon = new MySqlConnection(m_connectionString))

View File

@@ -39,6 +39,8 @@ namespace OpenSim.Data.MySQL
{
public class MySQLGenericTableHandler<T> : MySqlFramework where T: class, new()
{
// private static readonly ILog m_log = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType);
protected Dictionary<string, FieldInfo> m_Fields =
new Dictionary<string, FieldInfo>();
@@ -46,6 +48,11 @@ namespace OpenSim.Data.MySQL
protected string m_Realm;
protected FieldInfo m_DataField = null;
protected virtual Assembly Assembly
{
get { return GetType().Assembly; }
}
public MySQLGenericTableHandler(string connectionString,
string realm, string storeName) : base(connectionString)
{
@@ -57,7 +64,7 @@ namespace OpenSim.Data.MySQL
using (MySqlConnection dbcon = new MySqlConnection(m_connectionString))
{
dbcon.Open();
Migration m = new Migration(dbcon, GetType().Assembly, storeName);
Migration m = new Migration(dbcon, Assembly, storeName);
m.Update();
}
}
@@ -212,7 +219,6 @@ namespace OpenSim.Data.MySQL
{
using (MySqlCommand cmd = new MySqlCommand())
{
string query = "";
List<String> names = new List<String>();
List<String> values = new List<String>();
@@ -221,6 +227,16 @@ namespace OpenSim.Data.MySQL
{
names.Add(fi.Name);
values.Add("?" + fi.Name);
// Temporarily return more information about what field is unexpectedly null for
// http://opensimulator.org/mantis/view.php?id=5403. This might be due to a bug in the
// InventoryTransferModule or we may be required to substitute a DBNull here.
if (fi.GetValue(row) == null)
throw new NullReferenceException(
string.Format(
"[MYSQL GENERIC TABLE HANDLER]: Trying to store field {0} for {1} which is unexpectedly null",
fi.Name, row));
cmd.Parameters.AddWithValue(fi.Name, fi.GetValue(row).ToString());
}
@@ -248,19 +264,34 @@ namespace OpenSim.Data.MySQL
}
}
public virtual bool Delete(string field, string val)
public virtual bool Delete(string field, string key)
{
return Delete(new string[] { field }, new string[] { key });
}
public virtual bool Delete(string[] fields, string[] keys)
{
if (fields.Length != keys.Length)
return false;
List<string> terms = new List<string>();
using (MySqlCommand cmd = new MySqlCommand())
{
for (int i = 0 ; i < fields.Length ; i++)
{
cmd.Parameters.AddWithValue(fields[i], keys[i]);
terms.Add("`" + fields[i] + "` = ?" + fields[i]);
}
cmd.CommandText = String.Format("delete from {0} where `{1}` = ?{1}", m_Realm, field);
cmd.Parameters.AddWithValue(field, val);
string where = String.Join(" and ", terms.ToArray());
if (ExecuteNonQuery(cmd) > 0)
return true;
string query = String.Format("delete from {0} where {1}", m_Realm, where);
return false;
cmd.CommandText = query;
return ExecuteNonQuery(cmd) > 0;
}
}
}
}
}

View File

@@ -867,7 +867,7 @@ namespace OpenSim.Data.MySQL
dbcon.Open();
using (MySqlCommand sqlCmd = new MySqlCommand(
"SELECT * FROM inventoryitems WHERE avatarId = ?uuid AND assetType = ?type and flags = 1", dbcon))
"SELECT * FROM inventoryitems WHERE avatarId = ?uuid AND assetType = ?type and flags & 1", dbcon))
{
sqlCmd.Parameters.AddWithValue("?uuid", avatarID.ToString());
sqlCmd.Parameters.AddWithValue("?type", (int)AssetType.Gesture);

View File

@@ -43,7 +43,7 @@ namespace OpenSim.Data.MySQL
public class MySQLPresenceData : MySQLGenericTableHandler<PresenceData>,
IPresenceData
{
private static readonly ILog m_log = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType);
// private static readonly ILog m_log = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType);
public MySQLPresenceData(string connectionString, string realm) :
base(connectionString, realm, "Presence")

View File

@@ -29,6 +29,8 @@ using System;
using System.Collections;
using System.Collections.Generic;
using System.Data;
using System.Reflection;
using OpenMetaverse;
using OpenSim.Framework;
using OpenSim.Data;
@@ -42,6 +44,11 @@ namespace OpenSim.Data.MySQL
private List<string> m_ColumnNames;
//private string m_connectionString;
protected virtual Assembly Assembly
{
get { return GetType().Assembly; }
}
public MySqlRegionData(string connectionString, string realm)
: base(connectionString)
{
@@ -51,7 +58,7 @@ namespace OpenSim.Data.MySQL
using (MySqlConnection dbcon = new MySqlConnection(m_connectionString))
{
dbcon.Open();
Migration m = new Migration(dbcon, GetType().Assembly, "GridStore");
Migration m = new Migration(dbcon, Assembly, "GridStore");
m.Update();
}
}
@@ -212,8 +219,8 @@ namespace OpenSim.Data.MySQL
if (data.Data.ContainsKey("locY"))
data.Data.Remove("locY");
if (data.RegionName.Length > 32)
data.RegionName = data.RegionName.Substring(0, 32);
if (data.RegionName.Length > 128)
data.RegionName = data.RegionName.Substring(0, 128);
string[] fields = new List<string>(data.Data.Keys).ToArray();

View File

@@ -52,6 +52,11 @@ namespace OpenSim.Data.MySQL
private string m_connectionString;
private object m_dbLock = new object();
protected virtual Assembly Assembly
{
get { return GetType().Assembly; }
}
public MySQLSimulationData()
{
}
@@ -61,7 +66,7 @@ namespace OpenSim.Data.MySQL
Initialise(connectionString);
}
public void Initialise(string connectionString)
public virtual void Initialise(string connectionString)
{
m_connectionString = connectionString;
@@ -71,8 +76,7 @@ namespace OpenSim.Data.MySQL
// Apply new Migrations
//
Assembly assem = GetType().Assembly;
Migration m = new Migration(dbcon, assem, "RegionStore");
Migration m = new Migration(dbcon, Assembly, "RegionStore");
m.Update();
// Clean dropped attachments
@@ -126,7 +130,7 @@ namespace OpenSim.Data.MySQL
public void Dispose() {}
public void StoreObject(SceneObjectGroup obj, UUID regionUUID)
public virtual void StoreObject(SceneObjectGroup obj, UUID regionUUID)
{
uint flags = obj.RootPart.GetEffectiveObjectFlags();
@@ -254,7 +258,7 @@ namespace OpenSim.Data.MySQL
}
}
public void RemoveObject(UUID obj, UUID regionUUID)
public virtual void RemoveObject(UUID obj, UUID regionUUID)
{
// m_log.DebugFormat("[REGION DB]: Deleting scene object {0} from {1} in database", obj, regionUUID);
@@ -403,7 +407,7 @@ namespace OpenSim.Data.MySQL
}
}
public List<SceneObjectGroup> LoadObjects(UUID regionID)
public virtual List<SceneObjectGroup> LoadObjects(UUID regionID)
{
const int ROWS_PER_QUERY = 5000;
@@ -572,7 +576,7 @@ namespace OpenSim.Data.MySQL
}
}
public void StoreTerrain(double[,] ter, UUID regionID)
public virtual void StoreTerrain(double[,] ter, UUID regionID)
{
m_log.Info("[REGION DB]: Storing terrain");
@@ -601,7 +605,7 @@ namespace OpenSim.Data.MySQL
}
}
public double[,] LoadTerrain(UUID regionID)
public virtual double[,] LoadTerrain(UUID regionID)
{
double[,] terrain = null;
@@ -651,7 +655,7 @@ namespace OpenSim.Data.MySQL
return terrain;
}
public void RemoveLandObject(UUID globalID)
public virtual void RemoveLandObject(UUID globalID)
{
lock (m_dbLock)
{
@@ -670,7 +674,7 @@ namespace OpenSim.Data.MySQL
}
}
public void StoreLandObject(ILandObject parcel)
public virtual void StoreLandObject(ILandObject parcel)
{
lock (m_dbLock)
{
@@ -727,7 +731,7 @@ namespace OpenSim.Data.MySQL
}
}
public RegionLightShareData LoadRegionWindlightSettings(UUID regionUUID)
public virtual RegionLightShareData LoadRegionWindlightSettings(UUID regionUUID)
{
RegionLightShareData nWP = new RegionLightShareData();
nWP.OnSave += StoreRegionWindlightSettings;
@@ -824,7 +828,7 @@ namespace OpenSim.Data.MySQL
return nWP;
}
public RegionSettings LoadRegionSettings(UUID regionUUID)
public virtual RegionSettings LoadRegionSettings(UUID regionUUID)
{
RegionSettings rs = null;
@@ -862,7 +866,7 @@ namespace OpenSim.Data.MySQL
return rs;
}
public void StoreRegionWindlightSettings(RegionLightShareData wl)
public virtual void StoreRegionWindlightSettings(RegionLightShareData wl)
{
using (MySqlConnection dbcon = new MySqlConnection(m_connectionString))
{
@@ -965,7 +969,7 @@ namespace OpenSim.Data.MySQL
}
}
public void RemoveRegionWindlightSettings(UUID regionID)
public virtual void RemoveRegionWindlightSettings(UUID regionID)
{
using (MySqlConnection dbcon = new MySqlConnection(m_connectionString))
{
@@ -980,7 +984,7 @@ namespace OpenSim.Data.MySQL
}
}
public void StoreRegionSettings(RegionSettings rs)
public virtual void StoreRegionSettings(RegionSettings rs)
{
lock (m_dbLock)
{
@@ -1032,7 +1036,7 @@ namespace OpenSim.Data.MySQL
}
}
public List<LandData> LoadLandObjects(UUID regionUUID)
public virtual List<LandData> LoadLandObjects(UUID regionUUID)
{
List<LandData> landData = new List<LandData>();
@@ -1090,7 +1094,7 @@ namespace OpenSim.Data.MySQL
// depending on the MySQL connector version, CHAR(36) may be already converted to Guid!
prim.UUID = DBGuid.FromDB(row["UUID"]);
prim.CreatorID = DBGuid.FromDB(row["CreatorID"]);
prim.CreatorIdentification = (string)row["CreatorID"];
prim.OwnerID = DBGuid.FromDB(row["OwnerID"]);
prim.GroupID = DBGuid.FromDB(row["GroupID"]);
prim.LastOwnerID = DBGuid.FromDB(row["LastOwnerID"]);
@@ -1243,7 +1247,7 @@ namespace OpenSim.Data.MySQL
taskItem.Name = (String)row["name"];
taskItem.Description = (String)row["description"];
taskItem.CreationDate = Convert.ToUInt32(row["creationDate"]);
taskItem.CreatorID = DBGuid.FromDB(row["creatorID"]);
taskItem.CreatorIdentification = (String)row["creatorID"];
taskItem.OwnerID = DBGuid.FromDB(row["ownerID"]);
taskItem.LastOwnerID = DBGuid.FromDB(row["lastOwnerID"]);
taskItem.GroupID = DBGuid.FromDB(row["groupID"]);
@@ -1453,7 +1457,7 @@ namespace OpenSim.Data.MySQL
cmd.Parameters.AddWithValue("TouchName", prim.TouchName);
// permissions
cmd.Parameters.AddWithValue("ObjectFlags", (uint)prim.Flags);
cmd.Parameters.AddWithValue("CreatorID", prim.CreatorID.ToString());
cmd.Parameters.AddWithValue("CreatorID", prim.CreatorIdentification.ToString());
cmd.Parameters.AddWithValue("OwnerID", prim.OwnerID.ToString());
cmd.Parameters.AddWithValue("GroupID", prim.GroupID.ToString());
cmd.Parameters.AddWithValue("LastOwnerID", prim.LastOwnerID.ToString());
@@ -1583,7 +1587,7 @@ namespace OpenSim.Data.MySQL
cmd.Parameters.AddWithValue("name", taskItem.Name);
cmd.Parameters.AddWithValue("description", taskItem.Description);
cmd.Parameters.AddWithValue("creationDate", taskItem.CreationDate);
cmd.Parameters.AddWithValue("creatorID", taskItem.CreatorID);
cmd.Parameters.AddWithValue("creatorID", taskItem.CreatorIdentification);
cmd.Parameters.AddWithValue("ownerID", taskItem.OwnerID);
cmd.Parameters.AddWithValue("lastOwnerID", taskItem.LastOwnerID);
cmd.Parameters.AddWithValue("groupID", taskItem.GroupID);
@@ -1798,7 +1802,7 @@ namespace OpenSim.Data.MySQL
cmd.Parameters.AddWithValue("Media", null == s.Media ? null : s.Media.ToXml());
}
public void StorePrimInventory(UUID primID, ICollection<TaskInventoryItem> items)
public virtual void StorePrimInventory(UUID primID, ICollection<TaskInventoryItem> items)
{
lock (m_dbLock)
{

View File

@@ -46,17 +46,21 @@ namespace OpenSim.Data.MySQL
{
string[] words = query.Split(new char[] {' '});
bool valid = false;
for (int i = 0 ; i < words.Length ; i++)
{
if (words[i].Length < 3)
{
if (i != words.Length - 1)
Array.Copy(words, i + 1, words, i, words.Length - i - 1);
Array.Resize(ref words, words.Length - 1);
}
if (words[i].Length > 2)
valid = true;
// if (words[i].Length < 3)
// {
// if (i != words.Length - 1)
// Array.Copy(words, i + 1, words, i, words.Length - i - 1);
// Array.Resize(ref words, words.Length - 1);
// }
}
if (words.Length == 0)
if ((!valid) || words.Length == 0)
return new UserAccountData[0];
if (words.Length > 2)
@@ -67,18 +71,33 @@ namespace OpenSim.Data.MySQL
if (words.Length == 1)
{
cmd.CommandText = String.Format("select * from {0} where (ScopeID=?ScopeID or ScopeID='00000000-0000-0000-0000-000000000000') and (FirstName like ?search or LastName like ?search)", m_Realm);
cmd.Parameters.AddWithValue("?search", "%" + words[0] + "%");
cmd.Parameters.AddWithValue("?search", words[0] + "%");
cmd.Parameters.AddWithValue("?ScopeID", scopeID.ToString());
}
else
{
cmd.CommandText = String.Format("select * from {0} where (ScopeID=?ScopeID or ScopeID='00000000-0000-0000-0000-000000000000') and (FirstName like ?searchFirst or LastName like ?searchLast)", m_Realm);
cmd.Parameters.AddWithValue("?searchFirst", "%" + words[0] + "%");
cmd.Parameters.AddWithValue("?searchLast", "%" + words[1] + "%");
cmd.CommandText = String.Format("select * from {0} where (ScopeID=?ScopeID or ScopeID='00000000-0000-0000-0000-000000000000') and (FirstName like ?searchFirst and LastName like ?searchLast)", m_Realm);
cmd.Parameters.AddWithValue("?searchFirst", words[0] + "%");
cmd.Parameters.AddWithValue("?searchLast", words[1] + "%");
cmd.Parameters.AddWithValue("?ScopeID", scopeID.ToString());
}
return DoQuery(cmd);
}
public UserAccountData[] GetUsersWhere(UUID scopeID, string where)
{
MySqlCommand cmd = new MySqlCommand();
if (scopeID != UUID.Zero)
{
where = "(ScopeID=?ScopeID or ScopeID='00000000-0000-0000-0000-000000000000') and (" + where + ")";
cmd.Parameters.AddWithValue("?ScopeID", scopeID.ToString());
}
cmd.CommandText = String.Format("select * from {0} where " + where, m_Realm);
return DoQuery(cmd);
}
}
}

View File

@@ -85,11 +85,21 @@ namespace OpenSim.Data.MySQL
return m_Folders.Delete(field, val);
}
public bool DeleteFolders(string[] fields, string[] vals)
{
return m_Folders.Delete(fields, vals);
}
public bool DeleteItems(string field, string val)
{
return m_Items.Delete(field, val);
}
public bool DeleteItems(string[] fields, string[] vals)
{
return m_Items.Delete(fields, vals);
}
public bool MoveItem(string id, string newParent)
{
return m_Items.MoveItem(id, newParent);
@@ -130,7 +140,7 @@ namespace OpenSim.Data.MySQL
{
using (MySqlCommand cmd = new MySqlCommand())
{
cmd.CommandText = String.Format("select * from inventoryitems where avatarId = ?uuid and assetType = ?type and flags = 1", m_Realm);
cmd.CommandText = String.Format("select * from inventoryitems where avatarId = ?uuid and assetType = ?type and flags & 1", m_Realm);
cmd.Parameters.AddWithValue("?uuid", principalID.ToString());
cmd.Parameters.AddWithValue("?type", (int)AssetType.Gesture);
@@ -189,7 +199,7 @@ namespace OpenSim.Data.MySQL
{
cmd.ExecuteNonQuery();
}
catch (Exception e)
catch (Exception)
{
return false;
}

View File

@@ -87,3 +87,10 @@ ALTER TABLE `regions` ADD COLUMN `Token` varchar(255) NOT NULL;
COMMIT;
:VERSION 8 # ------------
BEGIN;
alter table regions modify column regionName varchar(128) default NULL;
COMMIT;

View File

@@ -99,3 +99,11 @@ BEGIN;
alter table inventoryitems modify column creatorID varchar(128) not NULL default '00000000-0000-0000-0000-000000000000';
COMMIT;
:VERSION 6 # ------------
BEGIN;
alter table inventoryitems modify column creatorID varchar(255) not NULL default '00000000-0000-0000-0000-000000000000';
COMMIT;

View File

@@ -817,3 +817,12 @@ ALTER TABLE `land` ADD COLUMN `MediaLoop` BOOLEAN NOT NULL DEFAULT FALSE;
ALTER TABLE `land` ADD COLUMN `ObscureMusic` BOOLEAN NOT NULL DEFAULT FALSE;
ALTER TABLE `land` ADD COLUMN `ObscureMedia` BOOLEAN NOT NULL DEFAULT FALSE;
COMMIT;
:VERSION 37 #---------------------
BEGIN;
ALTER TABLE `prims` MODIFY COLUMN `CreatorID` VARCHAR(255) NOT NULL DEFAULT '';
ALTER TABLE `primitems` MODIFY COLUMN `CreatorID` VARCHAR(255) NOT NULL DEFAULT '';
COMMIT;

View File

@@ -0,0 +1,133 @@
/*
* 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.Generic;
using System.Reflection;
using log4net;
using OpenMetaverse;
using OpenSim.Framework;
using OpenSim.Region.Framework;
using OpenSim.Region.Framework.Interfaces;
namespace OpenSim.Data.Null
{
public class NullEstateStore : IEstateDataStore
{
// private static readonly ILog m_log = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType);
// private string m_connectionString;
protected virtual Assembly Assembly
{
get { return GetType().Assembly; }
}
public NullEstateStore()
{
}
public NullEstateStore(string connectionString)
{
Initialise(connectionString);
}
public void Initialise(string connectionString)
{
// m_connectionString = connectionString;
}
private string[] FieldList
{
get { return new string[0]; }
}
public EstateSettings LoadEstateSettings(UUID regionID, bool create)
{
// This fools the initialization caller into thinking an estate was fetched (a check in OpenSimBase).
// The estate info is pretty empty so don't try banning anyone.
EstateSettings oneEstate = new EstateSettings();
oneEstate.EstateID = 1;
return oneEstate;
}
public void StoreEstateSettings(EstateSettings es)
{
return;
}
public EstateSettings LoadEstateSettings(int estateID)
{
return new EstateSettings();
}
public List<EstateSettings> LoadEstateSettingsAll()
{
List<EstateSettings> allEstateSettings = new List<EstateSettings>();
allEstateSettings.Add(new EstateSettings());
return allEstateSettings;
}
public List<int> GetEstatesAll()
{
List<int> result = new List<int>();
return result;
}
public List<int> GetEstates(string search)
{
List<int> result = new List<int>();
return result;
}
public bool LinkRegion(UUID regionID, int estateID)
{
return false;
}
public List<UUID> GetRegions(int estateID)
{
List<UUID> result = new List<UUID>();
return result;
}
public bool DeleteEstate(int estateID)
{
return false;
}
#region IEstateDataStore Members
public List<int> GetEstatesByOwner(UUID ownerID)
{
return new List<int>();
}
#endregion
}
}

View File

@@ -51,27 +51,55 @@ namespace OpenSim.Data.Null
//Console.WriteLine("[XXX] NullRegionData constructor");
}
private delegate bool Matcher(string value);
public List<RegionData> Get(string regionName, UUID scopeID)
{
if (Instance != this)
return Instance.Get(regionName, scopeID);
string cleanName = regionName.ToLower();
// Handle SQL wildcards
const string wildcard = "%";
bool wildcardPrefix = false;
bool wildcardSuffix = false;
if (cleanName.Equals(wildcard))
{
wildcardPrefix = wildcardSuffix = true;
cleanName = string.Empty;
}
else
{
if (cleanName.StartsWith(wildcard))
{
wildcardPrefix = true;
cleanName = cleanName.Substring(1);
}
if (regionName.EndsWith(wildcard))
{
wildcardSuffix = true;
cleanName = cleanName.Remove(cleanName.Length - 1);
}
}
Matcher queryMatch;
if (wildcardPrefix && wildcardSuffix)
queryMatch = delegate(string s) { return s.Contains(cleanName); };
else if (wildcardSuffix)
queryMatch = delegate(string s) { return s.StartsWith(cleanName); };
else if (wildcardPrefix)
queryMatch = delegate(string s) { return s.EndsWith(cleanName); };
else
queryMatch = delegate(string s) { return s.Equals(cleanName); };
// Find region data
List<RegionData> ret = new List<RegionData>();
foreach (RegionData r in m_regionData.Values)
{
if (regionName.Contains("%"))
{
string cleanname = regionName.Replace("%", "");
m_log.DebugFormat("[NULL REGION DATA]: comparing {0} to {1}", cleanname.ToLower(), r.RegionName.ToLower());
if (r.RegionName.ToLower().Contains(cleanname.ToLower()))
m_log.DebugFormat("[NULL REGION DATA]: comparing {0} to {1}", cleanName, r.RegionName.ToLower());
if (queryMatch(r.RegionName.ToLower()))
ret.Add(r);
}
else
{
if (r.RegionName.ToLower() == regionName.ToLower())
ret.Add(r);
}
}
if (ret.Count > 0)

View File

@@ -38,6 +38,15 @@ namespace OpenSim.Data.Null
/// </summary>
public class NullSimulationData : ISimulationDataStore
{
public NullSimulationData()
{
}
public NullSimulationData(string connectionString)
{
Initialise(connectionString);
}
public void Initialise(string dbfile)
{
return;
@@ -85,12 +94,20 @@ namespace OpenSim.Data.Null
return new List<SceneObjectGroup>();
}
Dictionary<UUID, double[,]> m_terrains = new Dictionary<UUID, double[,]>();
public void StoreTerrain(double[,] ter, UUID regionID)
{
if (m_terrains.ContainsKey(regionID))
m_terrains.Remove(regionID);
m_terrains.Add(regionID, ter);
}
public double[,] LoadTerrain(UUID regionID)
{
if (m_terrains.ContainsKey(regionID))
{
return m_terrains[regionID];
}
return null;
}

View File

@@ -28,6 +28,9 @@
using System;
using System.Collections;
using System.Collections.Generic;
using System.Reflection;
using System.Text;
using log4net;
using OpenMetaverse;
using OpenSim.Framework;
using OpenSim.Data;
@@ -36,12 +39,17 @@ namespace OpenSim.Data.Null
{
public class NullUserAccountData : IUserAccountData
{
private static Dictionary<UUID, UserAccountData> m_DataByUUID = new Dictionary<UUID, UserAccountData>();
private static Dictionary<string, UserAccountData> m_DataByName = new Dictionary<string, UserAccountData>();
private static Dictionary<string, UserAccountData> m_DataByEmail = new Dictionary<string, UserAccountData>();
private static readonly ILog m_log = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType);
private Dictionary<UUID, UserAccountData> m_DataByUUID = new Dictionary<UUID, UserAccountData>();
private Dictionary<string, UserAccountData> m_DataByName = new Dictionary<string, UserAccountData>();
private Dictionary<string, UserAccountData> m_DataByEmail = new Dictionary<string, UserAccountData>();
public NullUserAccountData(string connectionString, string realm)
{
// m_log.DebugFormat(
// "[NULL USER ACCOUNT DATA]: Initializing new NullUserAccountData with connectionString [{0}], realm [{1}]",
// connectionString, realm);
}
/// <summary>
@@ -54,6 +62,15 @@ namespace OpenSim.Data.Null
/// <returns></returns>
public UserAccountData[] Get(string[] fields, string[] values)
{
// if (m_log.IsDebugEnabled)
// {
// m_log.DebugFormat(
// "[NULL USER ACCOUNT DATA]: Called Get with fields [{0}], values [{1}]",
// string.Join(", ", fields), string.Join(", ", values));
// }
UserAccountData[] userAccounts = new UserAccountData[0];
List<string> fieldsLst = new List<string>(fields);
if (fieldsLst.Contains("PrincipalID"))
{
@@ -61,41 +78,61 @@ namespace OpenSim.Data.Null
UUID id = UUID.Zero;
if (UUID.TryParse(values[i], out id))
if (m_DataByUUID.ContainsKey(id))
return new UserAccountData[] { m_DataByUUID[id] };
}
if (fieldsLst.Contains("FirstName") && fieldsLst.Contains("LastName"))
userAccounts = new UserAccountData[] { m_DataByUUID[id] };
}
else if (fieldsLst.Contains("FirstName") && fieldsLst.Contains("LastName"))
{
int findex = fieldsLst.IndexOf("FirstName");
int lindex = fieldsLst.IndexOf("LastName");
if (m_DataByName.ContainsKey(values[findex] + " " + values[lindex]))
return new UserAccountData[] { m_DataByName[values[findex] + " " + values[lindex]] };
}
if (fieldsLst.Contains("Email"))
{
userAccounts = new UserAccountData[] { m_DataByName[values[findex] + " " + values[lindex]] };
}
}
else if (fieldsLst.Contains("Email"))
{
int i = fieldsLst.IndexOf("Email");
if (m_DataByEmail.ContainsKey(values[i]))
return new UserAccountData[] { m_DataByEmail[values[i]] };
userAccounts = new UserAccountData[] { m_DataByEmail[values[i]] };
}
// Fail
return new UserAccountData[0];
// if (m_log.IsDebugEnabled)
// {
// StringBuilder sb = new StringBuilder();
// foreach (UserAccountData uad in userAccounts)
// sb.AppendFormat("({0} {1} {2}) ", uad.FirstName, uad.LastName, uad.PrincipalID);
//
// m_log.DebugFormat(
// "[NULL USER ACCOUNT DATA]: Returning {0} user accounts out of {1}: [{2}]", userAccounts.Length, m_DataByName.Count, sb);
// }
return userAccounts;
}
public bool Store(UserAccountData data)
{
if (data == null)
return false;
m_log.DebugFormat(
"[NULL USER ACCOUNT DATA]: Storing user account {0} {1} {2} {3}",
data.FirstName, data.LastName, data.PrincipalID, this.GetHashCode());
m_DataByUUID[data.PrincipalID] = data;
m_DataByName[data.FirstName + " " + data.LastName] = data;
if (data.Data.ContainsKey("Email") && data.Data["Email"] != null && data.Data["Email"] != string.Empty)
m_DataByEmail[data.Data["Email"]] = data;
// m_log.DebugFormat("m_DataByUUID count is {0}, m_DataByName count is {1}", m_DataByUUID.Count, m_DataByName.Count);
return true;
}
public UserAccountData[] GetUsers(UUID scopeID, string query)
{
// m_log.DebugFormat(
// "[NULL USER ACCOUNT DATA]: Called GetUsers with scope [{0}], query [{1}]", scopeID, query);
string[] words = query.Split(new char[] { ' ' });
for (int i = 0; i < words.Length; i++)
@@ -156,5 +193,10 @@ namespace OpenSim.Data.Null
return false;
}
public UserAccountData[] GetUsersWhere(UUID scopeID, string where)
{
return null;
}
}
}

View File

@@ -33,7 +33,7 @@ using System.Reflection;
using log4net;
using OpenMetaverse;
using OpenSim.Framework;
using log4net;
#if CSharpSqlite
using Community.CsharpSqlite.Sqlite;
#else
@@ -49,7 +49,6 @@ namespace OpenSim.Data.SQLite
private string m_Realm;
private List<string> m_ColumnNames;
private int m_LastExpire;
private string m_connectionString;
protected static SqliteConnection m_Connection;
private static bool m_initialized = false;
@@ -58,7 +57,6 @@ namespace OpenSim.Data.SQLite
: base(connectionString)
{
m_Realm = realm;
m_connectionString = connectionString;
if (!m_initialized)
{

View File

@@ -47,7 +47,7 @@ namespace OpenSim.Data.SQLite
public class SQLiteAvatarData : SQLiteGenericTableHandler<AvatarBaseData>,
IAvatarData
{
private static readonly ILog m_log = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType);
// private static readonly ILog m_log = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType);
public SQLiteAvatarData(string connectionString, string realm) :
base(connectionString, realm, "Avatar")

View File

@@ -357,6 +357,17 @@ namespace OpenSim.Data.SQLite
return DoLoad(cmd, UUID.Zero, false);
}
public List<EstateSettings> LoadEstateSettingsAll()
{
List<EstateSettings> estateSettings = new List<EstateSettings>();
List<int> estateIds = GetEstatesAll();
foreach (int estateId in estateIds)
estateSettings.Add(LoadEstateSettings(estateId));
return estateSettings;
}
public List<int> GetEstates(string search)
{
@@ -379,6 +390,49 @@ namespace OpenSim.Data.SQLite
return result;
}
public List<int> GetEstatesAll()
{
List<int> result = new List<int>();
string sql = "select EstateID from estate_settings";
SqliteCommand cmd = (SqliteCommand)m_connection.CreateCommand();
cmd.CommandText = sql;
IDataReader r = cmd.ExecuteReader();
while (r.Read())
{
result.Add(Convert.ToInt32(r["EstateID"]));
}
r.Close();
return result;
}
public List<int> GetEstatesByOwner(UUID ownerID)
{
List<int> result = new List<int>();
string sql = "select EstateID from estate_settings where estate_settings.EstateOwner = :EstateOwner";
SqliteCommand cmd = (SqliteCommand)m_connection.CreateCommand();
cmd.CommandText = sql;
cmd.Parameters.AddWithValue(":EstateOwner", ownerID);
IDataReader r = cmd.ExecuteReader();
while (r.Read())
{
result.Add(Convert.ToInt32(r["EstateID"]));
}
r.Close();
return result;
}
public bool LinkRegion(UUID regionID, int estateID)
{

View File

@@ -258,17 +258,33 @@ namespace OpenSim.Data.SQLite
return false;
}
public bool Delete(string field, string val)
public virtual bool Delete(string field, string key)
{
return Delete(new string[] { field }, new string[] { key });
}
public bool Delete(string[] fields, string[] keys)
{
if (fields.Length != keys.Length)
return false;
List<string> terms = new List<string>();
SqliteCommand cmd = new SqliteCommand();
cmd.CommandText = String.Format("delete from {0} where `{1}` = :{1}", m_Realm, field);
cmd.Parameters.Add(new SqliteParameter(field, val));
for (int i = 0 ; i < fields.Length ; i++)
{
cmd.Parameters.Add(new SqliteParameter(":" + fields[i], keys[i]));
terms.Add("`" + fields[i] + "` = :" + fields[i]);
}
if (ExecuteNonQuery(cmd, m_Connection) > 0)
return true;
string where = String.Join(" and ", terms.ToArray());
return false;
string query = String.Format("delete * from {0} where {1}", m_Realm, where);
cmd.CommandText = query;
return ExecuteNonQuery(cmd, m_Connection) > 0;
}
}
}

View File

@@ -156,7 +156,7 @@ namespace OpenSim.Data.SQLite
item.InvType = Convert.ToInt32(row["invType"]);
item.Folder = new UUID((string) row["parentFolderID"]);
item.Owner = new UUID((string) row["avatarID"]);
item.CreatorId = (string)row["creatorsID"];
item.CreatorIdentification = (string)row["creatorsID"];
item.Name = (string) row["inventoryName"];
item.Description = (string) row["inventoryDescription"];
@@ -201,7 +201,7 @@ namespace OpenSim.Data.SQLite
row["invType"] = item.InvType;
row["parentFolderID"] = item.Folder.ToString();
row["avatarID"] = item.Owner.ToString();
row["creatorsID"] = item.CreatorId.ToString();
row["creatorsID"] = item.CreatorIdentification.ToString();
row["inventoryName"] = item.Name;
row["inventoryDescription"] = item.Description;

View File

@@ -669,10 +669,6 @@ namespace OpenSim.Data.SQLite
}
}
/// <summary>
///
/// </summary>
/// <param name="globalID"></param>
public void RemoveLandObject(UUID globalID)
{
lock (ds)
@@ -697,7 +693,7 @@ namespace OpenSim.Data.SQLite
DataRow landRow = land.Rows.Find(globalID.ToString());
if (landRow != null)
{
land.Rows.Remove(landRow);
landRow.Delete();
}
List<DataRow> rowsToDelete = new List<DataRow>();
foreach (DataRow rowToCheck in landaccesslist.Rows)
@@ -707,7 +703,7 @@ namespace OpenSim.Data.SQLite
}
for (int iter = 0; iter < rowsToDelete.Count; iter++)
{
landaccesslist.Rows.Remove(rowsToDelete[iter]);
rowsToDelete[iter].Delete();
}
}
Commit();
@@ -755,6 +751,7 @@ namespace OpenSim.Data.SQLite
}
for (int iter = 0; iter < rowsToDelete.Count; iter++)
{
rowsToDelete[iter].Delete();
landaccesslist.Rows.Remove(rowsToDelete[iter]);
}
rowsToDelete.Clear();
@@ -1243,7 +1240,7 @@ namespace OpenSim.Data.SQLite
prim.TouchName = (String) row["TouchName"];
// permissions
prim.ObjectFlags = Convert.ToUInt32(row["ObjectFlags"]);
prim.CreatorID = new UUID((String) row["CreatorID"]);
prim.CreatorIdentification = (String) row["CreatorID"];
prim.OwnerID = new UUID((String) row["OwnerID"]);
prim.GroupID = new UUID((String) row["GroupID"]);
prim.LastOwnerID = new UUID((String) row["LastOwnerID"]);
@@ -1385,7 +1382,7 @@ namespace OpenSim.Data.SQLite
taskItem.Name = (String)row["name"];
taskItem.Description = (String)row["description"];
taskItem.CreationDate = Convert.ToUInt32(row["creationDate"]);
taskItem.CreatorID = new UUID((String)row["creatorID"]);
taskItem.CreatorIdentification = (String)row["creatorID"];
taskItem.OwnerID = new UUID((String)row["ownerID"]);
taskItem.LastOwnerID = new UUID((String)row["lastOwnerID"]);
taskItem.GroupID = new UUID((String)row["groupID"]);
@@ -1583,7 +1580,7 @@ namespace OpenSim.Data.SQLite
row["TouchName"] = prim.TouchName;
// permissions
row["ObjectFlags"] = prim.ObjectFlags;
row["CreatorID"] = prim.CreatorID.ToString();
row["CreatorID"] = prim.CreatorIdentification.ToString();
row["OwnerID"] = prim.OwnerID.ToString();
row["GroupID"] = prim.GroupID.ToString();
row["LastOwnerID"] = prim.LastOwnerID.ToString();
@@ -1716,7 +1713,7 @@ namespace OpenSim.Data.SQLite
row["name"] = taskItem.Name;
row["description"] = taskItem.Description;
row["creationDate"] = taskItem.CreationDate;
row["creatorID"] = taskItem.CreatorID.ToString();
row["creatorID"] = taskItem.CreatorIdentification.ToString();
row["ownerID"] = taskItem.OwnerID.ToString();
row["lastOwnerID"] = taskItem.LastOwnerID.ToString();
row["groupID"] = taskItem.GroupID.ToString();

View File

@@ -81,5 +81,10 @@ namespace OpenSim.Data.SQLite
return DoQuery(cmd);
}
public UserAccountData[] GetUsersWhere(UUID scopeID, string where)
{
return null;
}
}
}

View File

@@ -91,11 +91,21 @@ namespace OpenSim.Data.SQLite
return m_Folders.Delete(field, val);
}
public bool DeleteFolders(string[] fields, string[] vals)
{
return m_Folders.Delete(fields, vals);
}
public bool DeleteItems(string field, string val)
{
return m_Items.Delete(field, val);
}
public bool DeleteItems(string[] fields, string[] vals)
{
return m_Items.Delete(fields, vals);
}
public bool MoveItem(string id, string newParent)
{
return m_Items.MoveItem(id, newParent);

View File

@@ -1,65 +0,0 @@
/*
* 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.Reflection;
using System.Runtime.InteropServices;
// General information about an assembly is controlled through the following
// set of attributes. Change these attribute values to modify the information
// associated with an assembly.
[assembly : AssemblyTitle("OpenSim.Data.SQLiteLegacy")]
[assembly : AssemblyDescription("")]
[assembly : AssemblyConfiguration("")]
[assembly : AssemblyCompany("http://opensimulator.org")]
[assembly : AssemblyProduct("OpenSim.Data.SQLiteLegacy")]
[assembly : AssemblyCopyright("Copyright (c) OpenSimulator.org Developers 2007-2009")]
[assembly : AssemblyTrademark("")]
[assembly : AssemblyCulture("")]
// Setting ComVisible to false makes the types in this assembly not visible
// to COM components. If you need to access a type in this assembly from
// COM, set the ComVisible attribute to true on that type.
[assembly : ComVisible(false)]
// The following GUID is for the ID of the typelib if this project is exposed to COM
[assembly : Guid("6113d5ce-4547-49f4-9236-0dcc503457b1")]
// Version information for an assembly consists of the following four values:
//
// Major Version
// Minor Version
// Build Number
// Revision
//
// You can specify all the values or you can default the Revision and Build Numbers
// by using the '*' as shown below:
[assembly : AssemblyVersion("0.6.5.*")]
[assembly : AssemblyFileVersion("0.6.5.0")]

View File

@@ -1,12 +0,0 @@
BEGIN TRANSACTION;
CREATE TABLE assets(
UUID varchar(255) primary key,
Name varchar(255),
Description varchar(255),
Type integer,
InvType integer,
Local integer,
Temporary integer,
Data blob);
COMMIT;

View File

@@ -1,18 +0,0 @@
BEGIN TRANSACTION;
CREATE TABLE auth (
UUID char(36) NOT NULL,
passwordHash char(32) NOT NULL default '',
passwordSalt char(32) NOT NULL default '',
webLoginKey varchar(255) NOT NULL default '',
accountType VARCHAR(32) NOT NULL DEFAULT 'UserAccount',
PRIMARY KEY (`UUID`)
);
CREATE TABLE tokens (
UUID char(36) NOT NULL,
token varchar(255) NOT NULL,
validity datetime NOT NULL
);
COMMIT;

View File

@@ -1,9 +0,0 @@
BEGIN TRANSACTION;
CREATE TABLE Avatars (
PrincipalID CHAR(36) NOT NULL,
Name VARCHAR(32) NOT NULL,
Value VARCHAR(255) NOT NULL DEFAULT '',
PRIMARY KEY(PrincipalID, Name));
COMMIT;

View File

@@ -1,10 +0,0 @@
BEGIN TRANSACTION;
CREATE TABLE `Friends` (
`PrincipalID` CHAR(36) NOT NULL,
`Friend` VARCHAR(255) NOT NULL,
`Flags` VARCHAR(16) NOT NULL DEFAULT 0,
`Offered` VARCHAR(32) NOT NULL DEFAULT 0,
PRIMARY KEY(`PrincipalID`, `Friend`));
COMMIT;

View File

@@ -1,32 +0,0 @@
BEGIN TRANSACTION;
CREATE TABLE inventoryfolders(
UUID varchar(255) primary key,
name varchar(255),
agentID varchar(255),
parentID varchar(255),
type integer,
version integer);
CREATE TABLE inventoryitems(
UUID varchar(255) primary key,
assetID varchar(255),
assetType integer,
invType integer,
parentFolderID varchar(255),
avatarID varchar(255),
creatorsID varchar(255),
inventoryName varchar(255),
inventoryDescription varchar(255),
inventoryNextPermissions integer,
inventoryCurrentPermissions integer,
inventoryBasePermissions integer,
inventoryEveryOnePermissions integer,
salePrice integer default 99,
saleType integer default 0,
creationDate integer default 2000,
groupID varchar(255) default '00000000-0000-0000-0000-000000000000',
groupOwned integer default 0,
flags integer default 0);
COMMIT;

View File

@@ -1,144 +0,0 @@
BEGIN TRANSACTION;
CREATE TABLE prims(
UUID varchar(255) primary key,
RegionUUID varchar(255),
ParentID integer,
CreationDate integer,
Name varchar(255),
SceneGroupID varchar(255),
Text varchar(255),
Description varchar(255),
SitName varchar(255),
TouchName varchar(255),
CreatorID varchar(255),
OwnerID varchar(255),
GroupID varchar(255),
LastOwnerID varchar(255),
OwnerMask integer,
NextOwnerMask integer,
GroupMask integer,
EveryoneMask integer,
BaseMask integer,
PositionX float,
PositionY float,
PositionZ float,
GroupPositionX float,
GroupPositionY float,
GroupPositionZ float,
VelocityX float,
VelocityY float,
VelocityZ float,
AngularVelocityX float,
AngularVelocityY float,
AngularVelocityZ float,
AccelerationX float,
AccelerationY float,
AccelerationZ float,
RotationX float,
RotationY float,
RotationZ float,
RotationW float,
ObjectFlags integer,
SitTargetOffsetX float NOT NULL default 0,
SitTargetOffsetY float NOT NULL default 0,
SitTargetOffsetZ float NOT NULL default 0,
SitTargetOrientW float NOT NULL default 0,
SitTargetOrientX float NOT NULL default 0,
SitTargetOrientY float NOT NULL default 0,
SitTargetOrientZ float NOT NULL default 0);
CREATE TABLE primshapes(
UUID varchar(255) primary key,
Shape integer,
ScaleX float,
ScaleY float,
ScaleZ float,
PCode integer,
PathBegin integer,
PathEnd integer,
PathScaleX integer,
PathScaleY integer,
PathShearX integer,
PathShearY integer,
PathSkew integer,
PathCurve integer,
PathRadiusOffset integer,
PathRevolutions integer,
PathTaperX integer,
PathTaperY integer,
PathTwist integer,
PathTwistBegin integer,
ProfileBegin integer,
ProfileEnd integer,
ProfileCurve integer,
ProfileHollow integer,
Texture blob,
ExtraParams blob,
State Integer NOT NULL default 0);
CREATE TABLE primitems(
itemID varchar(255) primary key,
primID varchar(255),
assetID varchar(255),
parentFolderID varchar(255),
invType integer,
assetType integer,
name varchar(255),
description varchar(255),
creationDate integer,
creatorID varchar(255),
ownerID varchar(255),
lastOwnerID varchar(255),
groupID varchar(255),
nextPermissions string,
currentPermissions string,
basePermissions string,
everyonePermissions string,
groupPermissions string);
CREATE TABLE terrain(
RegionUUID varchar(255),
Revision integer,
Heightfield blob);
CREATE TABLE land(
UUID varchar(255) primary key,
RegionUUID varchar(255),
LocalLandID string,
Bitmap blob,
Name varchar(255),
Desc varchar(255),
OwnerUUID varchar(255),
IsGroupOwned string,
Area integer,
AuctionID integer,
Category integer,
ClaimDate integer,
ClaimPrice integer,
GroupUUID varchar(255),
SalePrice integer,
LandStatus integer,
LandFlags string,
LandingType string,
MediaAutoScale string,
MediaTextureUUID varchar(255),
MediaURL varchar(255),
MusicURL varchar(255),
PassHours float,
PassPrice string,
SnapshotUUID varchar(255),
UserLocationX float,
UserLocationY float,
UserLocationZ float,
UserLookAtX float,
UserLookAtY float,
UserLookAtZ float,
AuthbuyerID varchar(36) NOT NULL default '00000000-0000-0000-0000-000000000000');
CREATE TABLE landaccesslist(
LandUUID varchar(255),
AccessUUID varchar(255),
Flags string);
COMMIT;

View File

@@ -1,17 +0,0 @@
BEGIN TRANSACTION;
-- useraccounts table
CREATE TABLE UserAccounts (
PrincipalID CHAR(36) primary key,
ScopeID CHAR(36) NOT NULL,
FirstName VARCHAR(64) NOT NULL,
LastName VARCHAR(64) NOT NULL,
Email VARCHAR(64),
ServiceURLs TEXT,
Created INT(11),
UserLevel integer NOT NULL DEFAULT 0,
UserFlags integer NOT NULL DEFAULT 0,
UserTitle varchar(64) NOT NULL DEFAULT ''
);
COMMIT;

View File

@@ -1,39 +0,0 @@
BEGIN TRANSACTION;
-- users table
CREATE TABLE users(
UUID varchar(255) primary key,
username varchar(255),
surname varchar(255),
passwordHash varchar(255),
passwordSalt varchar(255),
homeRegionX integer,
homeRegionY integer,
homeLocationX float,
homeLocationY float,
homeLocationZ float,
homeLookAtX float,
homeLookAtY float,
homeLookAtZ float,
created integer,
lastLogin integer,
rootInventoryFolderID varchar(255),
userInventoryURI varchar(255),
userAssetURI varchar(255),
profileCanDoMask integer,
profileWantDoMask integer,
profileAboutText varchar(255),
profileFirstText varchar(255),
profileImage varchar(255),
profileFirstImage varchar(255),
webLoginKey text default '00000000-0000-0000-0000-000000000000');
-- friends table
CREATE TABLE userfriends(
ownerID varchar(255),
friendID varchar(255),
friendPerms integer,
ownerPerms integer,
datetimestamp integer);
COMMIT;

View File

@@ -1,10 +0,0 @@
BEGIN TRANSACTION;
CREATE TEMPORARY TABLE assets_backup(UUID,Name,Description,Type,Local,Temporary,Data);
INSERT INTO assets_backup SELECT UUID,Name,Description,Type,Local,Temporary,Data FROM assets;
DROP TABLE assets;
CREATE TABLE assets(UUID,Name,Description,Type,Local,Temporary,Data);
INSERT INTO assets SELECT UUID,Name,Description,Type,Local,Temporary,Data FROM assets_backup;
DROP TABLE assets_backup;
COMMIT;

Some files were not shown because too many files have changed in this diff Show More