Commit Graph

158 Commits (3003133a6674eeef11ae3944c155a18b03373122)

Author SHA1 Message Date
Teravus Ovares (Dan Olivares) 4af77e84b1 * Fix Inconsistent line ending style in Util 2009-12-01 10:21:22 -05:00
Melanie 69d83e1548 Merge branch 'master' into careminster 2009-11-30 08:25:40 +00:00
Teravus Ovares (Dan Olivares) 4338f4e1d7 * Patch from Misterblue to fix Environment.TickCount for statistics purposes. Resolves the wrap-around of the 32 bit uint.
* Teravus moved the Environment methods to the Util class
2009-11-29 05:06:25 -05:00
Melanie ad2f0a1290 Remove OS version crap from about dialog 2009-11-26 18:04:58 +00:00
John Hurliman f89c2cac0f Experimental test to rate limit the incoming packet handler and try to always leave a worker thread available for other tasks 2009-10-27 14:16:01 -07:00
John Hurliman 52a4534f7f * Change the way Util.FireAndForget() calls SmartThreadPool to avoid using a delegate (which STP appears to hold on to). This removes the slow leak I was seeing when using async_call_method=SmartThreadPool and stabilizes allocated memory for an idle OpenSim instance 2009-10-23 13:45:18 -07:00
John Hurliman 36b0e5e1d3 Terrible typo in the previous commit! 2009-10-22 11:07:23 -07:00
John Hurliman 6ca4b0f366 * Added a check if Util.m_ThreadPool is null before trying to use it, and if so initialize it to sane defaults
* Simplified the InitThreadPool() function
2009-10-22 10:37:11 -07:00
John Hurliman 2f394b7e7e * Allow SmartThreadPool to be initialized without setting max stack size (like the original implementation)
* Only initialize Util's SmartThreadPool if it is actually being used
* No longer initializing Util's SmartThreadPool with a custom max stack size. From MSDN: "Avoid using this constructor overload. The default stack size used by the Thread(ThreadStart) constructor overload is the recommended stack size for threads."
2009-10-22 01:30:12 -07:00
Melanie b35fbe1f98 Merge branch 'melanie_test' into prioritization
This makes SmartThreadPool configurable and also makes it the default, since
the regular thread pool simply stinks.
2009-10-22 07:02:21 +01:00
John Hurliman 32ccd5bb40 * Changed the misc. methods calling ThreadPool.UnsafeQueueUserWorkItem() to Util.FireAndForget()
* Changed Util.FireAndForget() to use any of five different methods set with async_call_method in the [Startup] section of OpenSim.ini. Look at the example config for possible values
2009-10-21 23:03:18 -07:00
Melanie 8ce4fd7234 Reduce the default pool threads to 15 (from 30) and the minimum from 5 to 2 2009-10-22 04:02:26 +01:00
Melanie 8a336c6860 Add MaxPoolThreads in startup to limit the size of the thread pool used
for FireAndForget. This lets us limit concurrency to make OpenSim play nice
2009-10-22 02:28:53 +01:00
John Hurliman 142008121e * Change Util.FireAndForget to use ThreadPool.UnsafeQueueUserWorkItem(). This avoids .NET remoting and a managed->unmanaged->managed jump. Overall, a night and day performance difference
* Initialize the LLClientView prim full update queue to the number of prims in the scene for a big performance boost
* Reordered some comparisons on hot code paths for a minor speed boost
* Removed an unnecessary call to the expensive DateTime.Now function (if you *have* to get the current time as opposed to Environment.TickCount, always use DateTime.UtcNow)
* Don't fire the queue empty callback for the Resend category
* Run the outgoing packet handler thread loop for each client synchronously. It seems like more time was being spent doing the execution asynchronously, and it made deadlocks very difficult to track down
* Rewrote some expensive math in LandObject.cs
* Optimized EntityManager to only lock on operations that need locking, and use TryGetValue() where possible
* Only update the attachment database when an object is attached or detached
* Other small misc. performance improvements
2009-10-19 15:19:09 -07:00
John Hurliman 80a8a9c4a7 Converted FireAndForget methods to use a singleton pattern to attempt to work around a Mono bug with nested delegates 2009-10-16 14:34:42 -07:00
John Hurliman fb19d1ca0a * Try/catch around EndInvoke() when Util.FireAndForget() returns to catch exceptions thrown in the async method
* Added packet stats handling to the new LLUDP implementation
* Attempting to avoid a race condition when creating a new LLUDPClient
2009-10-06 10:12:59 -07:00
John Hurliman e7c877407f * Continued work on the new LLUDP implementation. Appears to be functioning, although not everything is reimplemented yet
* Replaced logic in ThreadTracker with a call to System.Diagnostics that does the same thing
* Added Util.StringToBytes256() and Util.StringToBytes1024() to clamp output at byte[256] and byte[1024], respectively
* Fixed formatting for a MySQLAssetData error logging line
2009-10-06 02:38:00 -07:00
Melanie 6878b26b0d Merge branch 'diva-textures-osgrid' 2009-10-04 05:49:16 +01:00
John Hurliman 387e9f7a7f * Creates Util.UTF8 and switches some references of Encoding.UTF8 to Util.UTF8 (not all references were switched since not all OpenSim libraries reference OpenSim.Framework)
* Shrinks the largest in-memory object, the LLRAW.HeightmapLookupValue struct (only used for exporting to LLRAW terrain files), to the minimum possible size. This seems to have the odd side effect of cutting the size of the two double[256,256] terrain objects in half. Possibly an alignment optimization?
2009-10-02 18:31:08 -07:00
Jeff Ames ee205e7e81 Formatting cleanup. 2009-10-01 01:17:47 +09:00
Diva Canto f4bf581b96 Moved all HG1 operations to HGGridConnector.cs and HypergridServerConnector.cs/HypergridServiceConnector.cs, away from Region.Communications and HGNetworkServersInfo.
Fixed small bugs with hyperlinked regions' map positions.
2009-09-26 21:00:51 -07:00
Adam Frisby 71a4b02c7e * Minor commit, added two new math utility functions. 2009-09-24 20:56:01 +10:00
John Hurliman 584c113836 Added Util.FireAndForget(), to replace leaking calls to Delegate.BeginInvoke() 2009-09-03 12:27:23 -07:00
Melanie 257ed4c4ac Remove debugging output frm ini file loading. Make it collect matching
files only from last path component.
2009-08-07 23:05:16 +01:00
Melanie e97beb07c9 Add extensive debug output to Util.Glob 2009-08-07 21:59:54 +01:00
Melanie d10f157183 Remove GetFullPath call from config includes, because it barfs in Windoze 2009-08-07 20:51:07 +01:00
Melanie 178b40971a Add a method to init the OSSL Api's m_LSL_Api member back to the OSSL Api 2009-08-07 19:50:47 +01:00
Melanie efc57bc3d7 Allow arbitrary wildcards in config includes. Things like
Include-Modules = "addin-modules/*/config/*.ini" will now work.
Adds Util.Glob, which will resolve a globbed path into a string list.
2009-08-06 02:29:12 +01:00
Jeff Ames a23d64dec1 Formatting cleanup. 2009-06-10 04:28:56 +00:00
Jeff Ames 840de6c036 Minor: Change OpenSim to OpenSimulator in older copyright headers and LICENSE.txt. 2009-06-01 06:37:14 +00:00
Jeff Ames 35b450d41d Add copyright headers, formatting cleanup, ignore some generated files. 2009-05-31 18:35:00 +00:00
diva 896c206718 One more utility. Not used yet. 2009-05-25 19:20:27 +00:00
Adam Frisby 70f6a2852e * Fixes [irritating] edge case in Util.GetLocalHost which could return an IPv6 address if no non-loopback IPv4 address can be found.
* Restores internal IPv6 support to NetworkUtil.*
* Fixes bad login unit tests.
2009-05-23 07:51:29 +00:00
Adam Frisby 2d06135166 * Adds new NetworkUtil class, contains methods for handling IP resolution when located on the same subnet. (Eg, can be used to avoid NAT Loopback requirements if fully utilized.)
* Adds a few new network-related methods to Util.
2009-05-23 05:09:10 +00:00
Charles Krinke c1d680b6c3 Thank you kindly, Patnad, for a patch that:
This is to handle the changes in the v1.23 viewer 
of LL regarding the adult rating. With this patch 
a region can be changed to the adult rating from 
LL viewer v1.23 and above.
2009-05-12 03:30:37 +00:00
Justin Clarke Casey 52d5628806 * Add preliminary code for resolving iar profile names
* Not yet active
2009-04-28 17:47:09 +00:00
diva 0413d052a3 Adds session authentication upon NewUserConnections. Adds user key authentication (in safemode only) upon CreateChildAgents. All of this for Hypergrid users too. This addresses assorted spoofing vulnerabilities. 2009-04-14 19:35:35 +00:00
Homer Horwitz c6283cacac Remove some Mono warnings. 2009-04-04 14:26:24 +00:00
lbsa71 0266c344fb * Added NUnit tested utility function GetHashGuid() for future use.
* Did some aligning refactoring of the MD5 and SHA-1 functions.
2009-04-01 06:11:51 +00:00
lbsa71 fb9a358b79 * Refactored out and de-duplicated Base64ToString(string)
* Fixed minor typo
2009-03-31 05:51:28 +00:00
MW 76133d0763 Refactoring of CreateCommsManagerPlugin.
Plus some general cleanup of a few other files (deleting excess blank lines etc)
2009-03-03 12:51:54 +00:00
MW 23a7af4538 Added check so Util.ReadSettingsFromIniFile doesn't try to set static fields. 2009-02-28 16:42:13 +00:00
MW 77b70759a6 Copied the Util.ReadSettingsFromIniFile method from the branch to trunk. 2009-02-28 16:13:20 +00:00
Adam Frisby c2f3ff872d * Performance Changes:
* Moves Entity Updates into a seperate thread, allowing for OpenSim to utilize a computers CPU more effectively in return for potentially greater user and prim capacity.
* Removes an expensive Sqrt call performed during Update on each object. This should lower CPU requirements for high-prim regions with physics enabled.
* MXP Changes: Centers the region around 0,0 for primitives instead of 128,128. Prim display should now look more correct for MXP viewers.
2009-02-23 06:55:42 +00:00
Charles Krinke 8f55b9d735 Mantis#3218. Thank you kindly, TLaukkan (Tommil) for a patch that:
* Added log4net dependency to physxplugin in prebuild.xml.
* Added missing m_log fields to classes.
* Replaced Console.WriteLine with appropriate m_log.Xxxx
* Tested that nant test target runs succesfully.
* Tested that local opensim sandbox starts up without errors.
2009-02-22 20:52:55 +00:00
lbsa71 93465df5e3 * Moved the nifty MySQLEstateData connectionstring password-stripper out into the Util project 2009-02-17 14:12:57 +00:00
lbsa71 801da4346a * optimized usings. 2009-02-12 09:53:12 +00:00
idb ea6e4a95ce Complete the implementation of llSHA1String. 2009-01-29 19:47:55 +00:00
Melanie Thielker 1c3542303c Change fake parcel ids to allow a Z coordinate. Change TP by lure
to also transmit and use a Z coordinate.
2009-01-13 23:29:54 +00:00
Justin Clarke Casey b1c2cb3d82 * minor: Move GetRandomCapsPath() to a CapsUtil class 2009-01-06 17:27:04 +00:00
Justin Clarke Casey e7ac639f3a * Centralize references to the well known blank texture 5748decc-f629-461c-9a36-a35a221fe21f to a constant in OpenSim.Framework.Util 2009-01-05 19:36:48 +00:00
Charles Krinke e6eb571c1d Mantis#2725. Thank you kindly, Diva, for a patch that:
Adds missing protocol pieces for EstablishAgentCommunication
event which allows the client to activate CAPS and the EQ for 
child agents.
2008-12-14 02:17:12 +00:00
Adam Frisby 888151833b * Added primitive exception logging capabilities.
* Disabled by default (see OpenSim.ini.example for how to enable)
* Saves exceptions to a folder on disk (default "crashes") when enabled.
* These reports can then be uploaded or posted to help debug an error.
2008-12-09 03:06:26 +00:00
Melanie Thielker d1841ca94d Mantis #2584 (again)
Next step of diva's TP fixes and HG support
2008-11-30 23:36:56 +00:00
Melanie Thielker f518ca7feb Reapply r7369 r7367 r7366 r7370 r7381. This brings it back up to the new
libOMV.
2008-11-19 06:25:34 +00:00
Melanie Thielker 3234472d62 Reverting the texture sending patch and the new libOMV. This makes this
release a direct descendant of the stable 7364, with all the features and
none of the issues.
This omits the following patch chain: r7383 r7382 r7381 r7377 r7375 r7373
r7372 r7370 r7369 r7368 r7367 r7366
2008-11-19 06:15:21 +00:00
Justin Clarke Casey c25a0ea792 * Update libOMV to r2359. This is necessary for the progressive texture patch
* Update libopenjpeg as well for this patch.
* Appears to be okay on a very short sniff test
* Source code will be placed in opensim-libs shortly
2008-11-17 21:00:34 +00:00
Justin Clarke Casey 97816f8c90 * Implement basic region filtering as described in https://lists.berlios.de/pipermail/opensim-dev/2008-November/003468.html
* This is done by sending a 'major interface version' number on sim registration.  Developers must increment this every time they make a change that would make the previous 
OpenSim revision failure incompatible with the new one (non-fatal incompatibilities are fine).
* This number resides in OpenSim.Framework.Servers.VersionInfo.MajorInterfaceVersion
* This allows the grid service to stop older, incompatible regions from connecting
2008-11-11 17:02:46 +00:00
Adam Frisby cf0a14bec9 * Added IClientIM to IClientCore interfaces
* Changed SendInstantMessage, dropped fromAgentSession and imSessionID as security precaution, see http://opensimulator.org/wiki/OpenSim_0.6_IClientAPI#Porting_Guide for details on porting.
* Removed unused usings from Framework.*
2008-11-08 17:20:54 +00:00
Justin Clarke Casey 57caef119c * Use the UUID regex sitting in utils for detection of uuids embedded in scripts
* Replaces the one in the module itself, which had a dumb bug in it anyway
2008-11-03 16:57:03 +00:00
Homer Horwitz 499f1428f7 - Add Util.isUUID
- Add tests for Util.isUUID
- First part of the fix for protocol interoperability between viewer 1.20 and 1.21 for friend offers.
2008-11-02 13:07:57 +00:00
Homer Horwitz 3a75a54da1 - Fix Util.UnixTimeSinceEpoch:
* Unix epoch starts at midnight, not at 8:00am
  * All date/time handling should be done in UTC in the server, not in
    the local timezone.
  * Refactor out repeated computation of a constant value
- Added setting of CreationTime to some places where inventoryitems
  are created
This fixes Mantis#2390.
2008-10-18 15:26:41 +00:00
Justin Clarke Casey 98fdf504d9 * Truncate outgoing media and music urls to 254 characters.
* Hopefully this will resolve http://opensimulator.org/mantis/view.php?id=2383
2008-10-15 20:24:44 +00:00
Dahlia Trimble 901acddbdd Thanks to M. Igarashi and nlin for a patch that implements llGetCameraRot(). 2008-10-15 04:42:28 +00:00
Homer Horwitz b8a50c40b1 - Added helper method to compute global coordinates from a fake parcelID
- Some formatting cleanups
2008-10-12 18:07:39 +00:00
Justin Clarke Casey 2b9e115fd7 * minor: eat up some yummy warnings 2008-09-15 20:50:57 +00:00
Justin Clarke Casey 52a4c4d82f * Check in first part of http://opensimulator.org/mantis/view.php?id=2073
* This patch aims to introduce look at direction persistence between logins.  It won't be active until the second part of the patch is committed in about two weeks time.  At 
this point, region servers that haven't upgraded past this revision may run into problems
* This checkin upgrades the user database.  As always, we recommend you have backups in case something goes wrong.
* Many thanks to tyre for this patch.
2008-09-12 20:12:03 +00:00
Jeff Ames fae34bb10c Update svn properties, formatting cleanup. 2008-09-09 01:26:48 +00:00
Melanie Thielker 58d79b33ff Mantis #2142
Thank you, HomerHorwitz, for a patch that fixes landmark teleport
and about landmarks with the new OMV types.
2008-09-07 20:09:11 +00:00
Charles Krinke b85a29d1b8 Mantis#2136. Thank you kindly, HomerHorwitz for a patch that:
libomv corrected the endianess of some Helper methods, which 
broke the fake parcelID computation for "About Landmark". 
The attached patch fixes this.
2008-09-06 23:08:08 +00:00
Teravus Ovares 7d89e12293 * This is the fabled LibOMV update with all of the libOMV types from JHurliman
* This is a HUGE OMG update and will definitely have unknown side effects.. so this is really only for the strong hearted at this point.  Regular people should let the dust settle.
* This has been tested to work with most basic functions. However..   make sure you back up 'everything' before using this.  It's that big!  
* Essentially we're back at square 1 in the testing phase..  so lets identify things that broke.
2008-09-06 07:52:41 +00:00
Adam Frisby 50a62145ad * Initial inspection of UserLoginService.cs, cleaned up source code slightly to make it easier to work with. 2008-08-30 12:58:54 +00:00
Jeff Ames 6ef9d4da90 Formatting cleanup. 2008-08-18 00:39:10 +00:00
Charles Krinke d9cc908471 Mantis#1965. Thank you kindly, HomerHorwitz for a patch that:
Places touched:
- Added two events for in-packets to LLCLientView: RegionHandleRequest and
  ParcelInfoRequest
- Added sending of two out-packets to LLCLientView: RegionIDAndHandleReply and
  ParcelInfoReply.
- Scene handles the RegionHandleRequest, LandManagementModule the
  ParcelInfoRequest
- Added inter-region request for LandData by RegionHandle and local position.
  This was implemented as XML-RPC request. The returned LandData isn't
  complete, it only contains the data necessary for answering the
  ParcelInfoRequest
- Added new CAPS (0009) for RemoteParcelRequest and some methods for LandData
  handling to LandManagementModule
- Added methods for fake parcelID creation and parsing to Util
- Fixed missing implementation of interface methods.
- Added new file:
    OpenSim/Framework/Communications/Capabilities/LLSDRemoteParcelResponse.cs
  NOTE: This is part of the patch, too.
Due to the many places touched, I would consider this patch as experimental.
2008-08-16 19:20:14 +00:00
Dr Scofield feb30217de dr scofield's warning safari:
* commented out [Obsolete(....)] attributes where no replacement feature
  was available: if we want to attribute code that we think needs to be 
  reworked, we should define a new attribute and use that instead 
  (together with a little tool to retrieve all the attributed code then)
* commenting out unused variables
2008-06-27 16:58:21 +00:00
Jeff Ames 76e24d02ad Minor refactoring of POS. Adds a Util.Clamp(x, min, max) function. 2008-06-26 02:03:40 +00:00
MW 7a9922af27 Added support for terrain map to be serialised to xml(as base64 binary). useful for places that the terrain map is needed in a serialised form. Also could add console commands to save and load from files, which should be faster than .raw files (these load/save commands are not included/implemented)
Add util functions to compress and uncompress strings. 
Fixed a couple of modules so they use SceneCommunicationService rather than directly call functions on the CommsManager.
2008-06-25 19:33:19 +00:00
Jeff Ames 7fefb80abb Minor cleanup. 2008-05-16 13:33:57 +00:00
Jeff Ames 65c5efe43b Formatting cleanup. 2008-05-16 01:22:11 +00:00
Justin Clarke Casey 6e2c7da018 * Minor: Insert utility function to format raw xml strings into indented xml for debugging purposes 2008-05-09 15:51:02 +00:00
Adam Frisby 375163a6fe * Spring cleaning.
* Added new generic "Location" class to handle 2D integer locations. Going to use it to replace all RegionHandle and X,Y coordinate references throughout the entire project. You have been warned.
2008-04-29 14:04:55 +00:00
Sean Dague 2a2ef42e64 replace hard tabs with 4 spaces to be consistant in the source.
Please adjust your editors to not use hard tabs.
2008-04-24 12:27:24 +00:00
Adam Frisby fef3b36894 * Optimised using statements and namespace references across entire project (this took a while to run). 2008-04-21 07:09:17 +00:00
Justin Clarke Casey 5c52068dd7 * Get Util.GetHostFromDNS to tell us the dns address it was trying to resolve if it fails. 2008-04-14 15:32:39 +00:00
Johan Berntsson 39f340e687 XmlRpcCommand refactoring 2008-03-24 01:37:00 +00:00
Justin Clarke Casey c1beb85315 * First draft resolution of mantis 777, 734, 389 - scripts do not save in non-home regions
* Should work in multi-region standalone and grid modes
* This should also solve other non-home region caps issues (map requests, RC client inventory requests, etc)
* We now pass CAPS information on to the destination region on region crossing, and set up a CAPS object when an agent becomes a master
* Current limitation is that this will only work if your http_listener_port is 9000
* This is a very early code cut (lots of bad practice, hard coding and inefficiency).  However, I wanted to get this out there for feedback and my own sanity.  Next few patches will clean up the mess.
2008-03-20 20:04:45 +00:00
Jeff Ames bf8b5844f2 Formatting cleanup. Minor refactoring. 2008-03-18 14:51:42 +00:00
Teravus Ovares 42857fe4e9 * Added the ability to type the partial name of a region in the start location box and go to that region if it's there. If no close match was found, it sends you home. This is tested on mySQL. There's untested code on grids that are based on sqlite and MSSQL. The SQL statements *should* be right, but your results may very.
* Ex, if you want to go to Wright Plaza, you simply need to type Wright Plaza in the start location in the client when you log-in.
2008-03-18 05:44:25 +00:00
Jeff Ames 47180080f0 Formatting cleanup. 2008-03-18 05:16:43 +00:00
MW 2fea38a5f2 Applied patch from mantis #610, fixed invalid filenames with dump_assets_to_file set to true. thanks tyre. 2008-03-12 15:45:56 +00:00
Johan Berntsson 279e0061c5 Merged 3Di code that provides scene and avatar serialization, and plugin support for region move/split/merge. See ThirdParty/3Di/README.txt. Unless the new modules are used there should be no noticeable changes when running OpenSim. 2008-03-04 05:31:54 +00:00
Teravus Ovares fe49c96ee0 * Applying Ahzz's profile patch. Thanks Ahzz!
* Fixed a few bugs in the patch that are sim crashers.
* There's still a bug in mySQL mode/ grid mode where the main userprofile text doesn't save.
2008-03-03 08:30:36 +00:00
Adam Frisby a1625a5410 * Applying mantis 339 patches round 2 -- Thanks daedius 2008-02-08 17:54:30 +00:00
Teravus Ovares 09a616e1ea * Added ReadEtcIssue to Util
* If you have Debian running, you should get a platform line that says, 'Found Debian!' when starting up your sim.
* If someone running Debian will confirm this does occur, that would be most helpful.
2008-01-23 23:32:19 +00:00
Adam Frisby b25f9f322c * Mother of all commits:
* Cleaned up copyright notices in AssemblyInfo.cs's
* Added Copyright headers to a bunch of files missing them
* Replaced several common string instances with a static constant to prevent reallocation of the same strings thousands of times. "" -> String.Empty is the first such candidate.
2008-01-15 02:09:55 +00:00
Jeff Ames 5a6fd21a2c Whitespace cleanup. 2008-01-10 06:49:29 +00:00
Justin Clarke Casey b8975ecbd9 Make it possible for new inventory 'libraries' to be added without changing the default OpenSimLibrary files. Additional library folders and items can be added in a separate
directory 
and linked in by an entry to inventory/Libraries.xml
2007-12-31 23:20:49 +00:00
Justin Clarke Casey 1b1649791f Allow OpenSim operators to specify their own asset sets without needing to change the default OpenSim set. Equivalent changes to allow operators to also specify their own
standard inventory library directories and items to follow.
2007-12-29 19:01:55 +00:00
Teravus Ovares 0631151e08 * Patch from Melanie provides Util.CleanString and uses it on the prim name and description. Thanks Melanie. 2007-12-28 23:19:03 +00:00
Teravus Ovares 67bbed8202 * Added ability to create new prim on existing prim (rezzing prim from inventory on other prim coming soon). No more new prim buried in the ground by accident.
* The prim are at the absolute position of the prim you rezzed it on top of + (0,0,0.5) for now.
2007-12-28 05:25:21 +00:00