Commit Graph

1208 Commits

Author SHA1 Message Date
Oren Hurvitz
5097ba81d4 Added locking in NullRegionData.
This prevents errors when one thread iterates over the regions (e.g., from RegenerateMaptileAndReregister()) while another thread is adding a region.
2013-01-02 22:48:25 +00:00
BlueWall
8efae93b51 Restrict IPresenceData.VerifyAgent
Restrict IPresenceData.VerifyAgent to only return bool result
2012-12-09 15:08:32 -05:00
BlueWall
f85b23edea Add agent verification to Presence 2012-12-08 17:33:03 -05:00
Justin Clark-Casey (justincc)
16e4019eca Fix database service unit test failures by temporarily reverting BasicDataServiceTest extending OpenSimTestCase.
Mono 2.4.3 doesn't like this when running nunit, with nunit throwing
AssetTests`2 : System.MemberAccessException : Cannot create an instance of OpenSim.Data.Tests.AssetTests`2[TConn,TAssetData] because Type.ContainsGenericParameters is true.
and similar.  Mono 2.10.8.1 does not have this issue.
So will wait until min version of mono bumps before restoring.
2012-11-26 22:25:36 +00:00
Justin Clark-Casey (justincc)
22d4c52ffc Consistenly make NUnit test cases inherit from OpenSimTestCase which automatically turns off any logging enabled between tests 2012-11-24 03:15:24 +00:00
Justin Clark-Casey (justincc)
82690e1384 Fix bug where loading an OAR with a deeded parcel would always set the parcel owner ID to the estate owner even if the group UUID was present.
Aims to address http://opensimulator.org/mantis/view.php?id=6355
As part of this work, an incomplete IXGroupsData was added which currently only allows store/fetch/delete of group records
(i.e. no membership data etc)
This is subject to change and currently only an in-memory storage implementation exists for regression test purposes.
2012-11-24 02:43:31 +00:00
Justin Clark-Casey (justincc)
350cd58e5e refactor: move common inventory folder version update code to parent class in mysql, mssql and sqlite database plugins 2012-11-15 04:01:30 +00:00
Justin Clark-Casey (justincc)
16dd94b956 Improve inventory folder version updating for mssql database plugin.
I am not in a position to test this so the updates have been done blind.
If it needs any fixing will probably require patches.
2012-11-15 03:39:17 +00:00
Justin Clark-Casey (justincc)
1aa0271239 Implement folder version updating for the sqlite inventory plugin 2012-11-15 03:29:55 +00:00
Justin Clark-Casey (justincc)
94da908813 More consistently dispose of SqliteCommand in OpenSim.Data.SQLite where possible.
Not doing SQLiteInventoryStore since this is no longer used and should disappear in the future.
2012-11-14 04:45:59 +00:00
Diva Canto
e4cb7af98a Updated all existing AssemblyVersions's to 0.7.5.*. Many DLLs still don't have an AssemblyInfo file. 2012-11-13 19:26:43 -08:00
Justin Clark-Casey (justincc)
61b816ebba minor: Adjust method doc on IXInventoryData MoveItem() and MoveFolder() to make it clear we're moving to an existing folder. 2012-11-09 01:18:11 +00:00
Justin Clark-Casey (justincc)
75c880a6f3 Update parent inventory folder version numbers when folders are moved/created/deleted to match version numbers cached by viewers.
This is done in the way that one would expect (e.g. moving a folder increments version number on both source and destination parent folders).
This should hopefully improve viewer reuse of its cached inventory information.
Currently MySQL only but will be implement for SQLite/MSSQL if there are no issues.
2012-11-09 01:13:19 +00:00
Justin Clark-Casey (justincc)
bf469819a6 Update folder version numbers when moving items and making the Delete(string[], string[]) call (not just string, string).
This is to stop viewer inventory cache version numbers becoming out of sync with grid stored numbers when viewer performs these actions.
If there are no problems with these changes, they will be propogated to SQLite (and MSSQL if that's simple enough).
May also need to do the same on folder store/create/delete and maybe propogate version increments up the folder hierarchy, but that requires investigation.
2012-11-06 23:44:52 +00:00
Justin Clark-Casey (justincc)
a8424490ae Increment version number of a folder when an object it contains is deleted.
Not doing this was allowing the viewer inventory cache to become out of sync if an item was directly deleted.
2012-11-06 23:40:33 +00:00
PixelTomsen
20eac8d6d0 SQLite DB: some values of land data will be not saved / loaded
http://opensimulator.org/mantis/view.php?id=6370

Signed-off-by: BlueWall <jamesh@bluewallgroup.com>
2012-10-21 10:41:23 -04:00
Justin Clark-Casey (justincc)
40bf789ad7 Disambiguate use of RegionFlags in NullRegionData
This was not necessary with the nant build but is for xbuild, since xbuild includes associated project DLLs
And so picks up OpenMetaverse.dll even though it isn't referenced by OpenSim.Data.Null.dll
2012-10-09 17:20:01 +01:00
Justin Clark-Casey (justincc)
73c9abf5f2 Move OpenSim.Data.RegionFlags -> OpenSim.Framework.RegionFlags to make it easier for other code to use (e.g. LSL_Api) without having to reference OpenSim.Data just for this. 2012-10-09 01:35:27 +01:00
Diva Canto
7a50705188 Removed the bits about the TOSModule. That module doesn't go into core. WARNING: migration on GridUser withdrawn too, but left the migration number there. 2012-09-27 16:43:18 -07:00
Diva Canto
ae58cf4224 TOS module. WARNING: migration in GridUser table. 2012-09-25 20:03:49 -07:00
Justin Clark-Casey (justincc)
3bd3f448a2 Also do other MySQL region settings related calls under m_dbLock, in common with other calls. 2012-08-31 00:33:06 +01:00
Justin Clark-Casey (justincc)
7c6e8fab15 Do Windlight storage and removal calls in MySQL under m_dbLock, as is done with all the other database calls. 2012-08-31 00:29:57 +01:00
Justin Clark-Casey (justincc)
7ea832d47c Fix regression introduced in a0d178b2 (Sat Aug 25 02:00:17 2012) where folders with asset type of 'Folder' and 'Unknown' were accidentally treated as system folders.
This prevented more than one additional ordinary folder from being created in the base "My Inventory" user folder.
Added regression test for this case.
Switched tests to use XInventoryService with mostly implemented TestXInventoryDataPlugin rather than InventoryService
Disabled TestLoadIarV0_1SameNameCreator() since this has not been working for a very long time (ever since XInventoryService) started being used
since it doesnt' preserve creator data in the same way as InventoryService did and so effectively lost the OSPAs.
However, nobody noticed/complained about this issue and OSPAs have been superseded by HG like creator information via the --home save oar/iar switch.
2012-08-29 02:01:43 +01:00
Melanie
c7f2debd38 Fix and finish the extra parameters storage system for MySQL 2012-08-15 18:58:32 +01:00
Melanie
dc82ad0f7a Add a skeleton for a name value storage associated with regions 2012-08-15 02:06:22 +01:00
Justin Clark-Casey (justincc)
16d5b79d57 minor: remove some recent mono compiler warnings 2012-07-07 00:36:01 +01:00
Justin Clark-Casey (justincc)
7ff4eec79c Remove redundant SetScene() function in Scene.AddSceneObject()
This is always done later on in SceneGraph.AddSceneObject() if the call hasn't failed due to sanity checks.
There's no other purpose for this method to exist and it's dangerous/pointless to call in other conditions.
2012-07-07 00:02:45 +01:00
PixelTomsen
bc543c1797 Environment Module - allows Environment settings for Viewer3 warning: includes database region store migrations for mssql, mysql, sqlite
enable/disable this module:
Cap_EnvironmentSettings = "localhost" (for enable)
Cap_EnvironmentSettings = "" (for disable) at ClientStack.LindenCaps section (OpenSimDefaults.ini file)
 or owerwrite in OpenSim.ini

mantis: http://opensimulator.org/mantis/view.php?id=5860

Signed-off-by: BlueWall <jamesh@bluewallgroup.com>
2012-05-23 17:04:19 -04:00
BlueWall
b490050165 Format cleanup 2012-05-23 16:58:04 -04:00
Melanie
e7819ce909 Port Avination's collision fixes to core. 2012-05-15 01:02:38 +01:00
Justin Clark-Casey (justincc)
4ad45934c6 If there are no new prim items to store then don't bother opening the MySqlConnection only to do nothing with it. 2012-04-30 16:00:31 +01:00
Justin Clark-Casey (justincc)
522eff6138 Consistently use using() to make sure we dispose of used MySqlCommands where this is not already being done. 2012-04-30 15:54:35 +01:00
Oren Hurvitz
da5fd53702 Fixed problem with MySQL: it was possible for one thread to use an incomplete list of column names if another thread was creating the list at the same time. Now this is thread-safe. 2012-04-24 20:49:28 +01:00
Oren Hurvitz
c70e85a327 When reading a region, use null objects to represent NULL fields.
Previously NULL fields were converted to an empty string due to the use of ToString(). But if the field was an Int (e.g., "locZ"), then the subsequent attempt to convert an empty string to an int caused an exception. Now the field is null so we don't try to convert it, so there's no exception.
2012-04-24 20:46:31 +01:00
Justin Clark-Casey (justincc)
f0406f9fe2 Rename SOG.HasChildPrim(uint) to SOG.ContainsPart(uint) to match existing ContainsPart method and remove method duplication.
HasChildPrim is also misleading since the 'root' prim can also be returned.
2012-03-31 01:45:37 +01:00
Justin Clark-Casey (justincc)
38d241a317 Add MSSQL login processing fix for servers run on different locales.
This may no longer be an issue with better locale enforcement in OpenSimulator but it doesn't hurt to have this patch.
http://opensimulator.org/mantis/view.php?id=4680
Thanks to controlbreak for this
2012-03-31 01:12:04 +01:00
Justin Clark-Casey (justincc)
1ef62ca75e Lock NullFriendsData.m_Data for consistency and against concurrent read/write 2012-03-30 01:23:34 +01:00
Justin Clark-Casey (justincc)
59157d9d63 Add simple login test with online friends. Add IFriendsModule.GrantRights() for granting rights via a module call.
Rename IFriendsModule.GetFriendPerms() -> GetRightsGrantedByFriend() to be more self-documenting and consistent with friends module terminology.
Add some method doc.
2012-03-30 00:42:55 +01:00
Justin Clark-Casey (justincc)
ab54ce1907 Fix configuration problems where XAssetDatabasePlugin was picked up accidentally.
The asset data plugin now implements IXAssetData rather than IAssetData so the ordinary AssetService should no longer pick it up.
This replaces the changes in 92b1ade.  There is no longer any need to adjust your StandaloneCommon.ini/Robust.ini/Robust.HG.ini files.
This may explain very recent issues in the last few weeks where textures have been disappearing or turning white (as they were going to different places).
Unfortunately, you will need to rollback to an earlier database backup or reupload the textures.
2012-03-19 00:18:04 +00:00
Robert Adams
e0dd38f672 Rename the stream extension method WebUtil.CopyTo() to WebUtil.CopyStream().
.NET 4.0 added the method Stream.CopyTo(stream, bufferSize). For .NET 3.5
and before, WebUtil defined an extension method for Stream with the signature
Stream.CopyTo(stream, maxBytesToCopy). The meaning of the second parameter
is different in the two forms and depending on which compiler and/or
runtime you use, you could get one form or the other. Crashes ensue.
This change renames the WebUtil stream copy method to something that
cannot be confused with the new CopyTo method defined in .NET 4.0.
2012-03-12 10:07:04 -07:00
Justin Clark-Casey (justincc)
034c9d6bcc Merge branch 'xassetservice' 2012-03-09 00:19:42 +00:00
Justin Clark-Casey (justincc)
3c5bd7c35a minor: move some compression related var setup inside compression if/then switch 2012-03-09 00:16:49 +00:00
Justin Clark-Casey (justincc)
0cbdf9dad2 Put big fat EXPERIMENTAL warning in xassetservice database plugin
This should not currently be used in any circumstances except for experimentation.
Database tables used by this plugin can still change at any time with no migration path.
2012-03-09 00:05:34 +00:00
Chris Hart
413bc1e77e Updates to MSSQL store for 0.7.3 to include:
* Telehub support
* Bugfix to Friends lookups
* Updates to Creator fields to store up to 255 characters for HG item creator storage
2012-03-06 00:27:49 +00:00
Justin Clark-Casey (justincc)
441449e240 Switch to sha256 from sha1 in order to avoid future asset hash collisions.
Some successful collision attacks have been carried out on sha1 with speculation that more are possible.
http://en.wikipedia.org/wiki/Cryptographic_hash_function#Cryptographic_hash_algorithms
No successful attacks have been shown on sha256, which makes it less likely that anybody will be able to engineer an asset hash collision in the future.
Tradeoff is more storage required for hashes, and more cpu to hash, though this is neglible compared to db operations and network access.
2012-03-06 00:14:21 +00:00
Justin Clark-Casey (justincc)
fd2b285b1b remove unnecessary hash local variable 2012-03-05 23:50:41 +00:00
Justin Clark-Casey (justincc)
3780df8a32 Make asset compression optional. Currently set to false and not configurable from outside MySQLXAssetData. 2012-03-03 01:43:36 +00:00
Justin Clark-Casey (justincc)
75dc8b1aed Implement basic gzip compression for xassetdata
Whether this is worthwhile is debatable since here we are not transmitting data over a network
In addition, jpeg2000 (the biggest data hog) is already a compressed image format.
May not remain.
2012-03-03 01:28:58 +00:00
Justin Clark-Casey (justincc)
2535a4cafc If asset data already exists with the required hash then don't rewrite it 2012-03-03 00:05:02 +00:00
Justin Clark-Casey (justincc)
94b323d1d8 Perform asset storage transactionally 2012-03-02 23:41:54 +00:00