Commit Graph

209 Commits (875211b262ecda2eced68b217221dead20cbdb6b)

Author SHA1 Message Date
Charles Krinke 2c81e18fc3 Thank you very much Ahzzmandius for adding the support
to purge the avatars inventory "Trash" folder using the
bizarre tortoiseSVN method of diff/patch.
2008-02-18 03:25:14 +00:00
Justin Clarke Casey a1a206cb05 * Clean up LIBRARY INVENTORY messages 2008-02-13 02:43:41 +00:00
lbsa71 d79633b7c7 * various minuscule code convention conformance fixes 2008-02-12 11:21:23 +00:00
Teravus Ovares 6e01769bcf * A bunch of updates to make things more smooth.
** Sending the actual TimeDilation to the client now instead of the 62455 constant.  The client is *supposed* to use that value to sync with the simulator.    (actually sending ushort.maxvalue * TimeDilation)
** Disabling prim that inter-penetrate instead of just not attaching a joint
** Reduced prim spin a 'little' bit, but not *enough* 
** Tweaked the TimeDilation algorithm to be closer to 1.0 by default and various changes to the sim stats reporter 
** Created a .SetValues method to PhysicsVector so we can simply call the setvalues function instead of .x, .y, .z sets.
** Experimented with a .GetBytes Method on PhysicsActor to be able to use the LLVector3.FromBytes() method.   
** Upped the Inter-penetration depth to 0.25 instead of .08.
2008-02-12 04:27:20 +00:00
Dalien Talbot c935b308e6 The very beginnings of attachments (no detachments! :) 2008-02-10 22:23:11 +00:00
lbsa71 e0424254bd * Refactored permissions handling to extract info out of permisisons block in ClientView
* Changed some uint constants to Enum values
2008-02-10 14:27:21 +00:00
Jeff Ames e207284fef Clean up logging calls using String.Format explicitly 2008-02-10 01:57:59 +00:00
Teravus Ovares 07d0f558c4 * Fixed nebadon's UserServer crash bug from yesterday.
* Made Estate tools work for estate managers without needing to request admin status First
* Added code to make the Simulator version to be reported in the About box of the client
2008-02-09 07:53:01 +00:00
Justin Clarke Casey a50a8376d6 * In the most basic situations, ClientView and ScenePresence no longer leak memory
* However, I'm no longer sure they were even a big contributory factor (to this particular leak, there are other causes of other leaks).  I need better measurement techniques
* Removed most of my debugging gawp
2008-02-09 01:37:53 +00:00
Justin Clarke Casey f05f583613 Still chasing logout memory leak. Putting in small changes and temporary light verbosity to this end 2008-02-08 22:39:08 +00:00
Teravus Ovares 3674257095 * This update contains a bucket-full of network optimizations.
* ParcelProperties are sent only when needed instead of on any movement
* Terse Updates and other temporary data packets are marked unreliable
* After a certain amount of users, the sim actually sends updates on things less
* Experimental
* Tested to 68 avatar with pCampBot  (And it's surprising what actually causes the most lag..  the text chat!)
2008-02-07 08:15:38 +00:00
Justin Clarke Casey 548bbc97e5 * Chasing down memory leak where memory used by a client is not returned on client logout
* This code may or may not be on the right track, but I want to save my work so far.
2008-02-06 20:34:18 +00:00
Jeff Ames 6ed5283bc0 Converted logging to use log4net.
Changed LogBase to ConsoleBase, which handles console I/O.
This is mostly an in-place conversion, so lots of refactoring can still be done.
2008-02-05 19:44:27 +00:00
Teravus Ovares ca5aadfbff * Refactored the sound calls to SceneObjectPart
* Fixed a few bugs
* Wrote an example module to make certain event systems more mature.
2008-02-05 05:26:18 +00:00
Teravus Ovares 3ff5ad1ed3 Patch from mikkopa/_someone Thanks! adds support for llPreloadSound, llTriggerSound, llPlaySound, llPreloadSound.
* Time to make music boxes?
2008-02-04 14:40:46 +00:00
MW 755ad9e3e0 First part of avatar persistence, currently only really works in standalone mode (with accounts_authenticate set to true), it also only currently has a mysql database connector. (sqlite one will follow soon). It also uses the tribalmedia database system, so this needs checking to see if the old problems with mono have been fixed.
To use, see the appearance section in opensim.ini.example, set "persist = true", then add the correct connection string for your database.(see mysql-AvatarAppearance.sql in share folder for a example of the table mysql table structure).
This could possible be used in a very small grid, but would mean each region server would need to connect to the same mysql database. 
But the work to move the code to one of the grid servers shouldn't be too much.
2008-02-04 12:04:02 +00:00
Adam Frisby 6fbc64af5e * Whole buncha stuff. 2008-02-04 10:39:30 +00:00
alondria 742ed9537d Implements LSL function llDialog().
The ScriptDialogReply packet handler is a bit of a hack job. It is currently handled similar to ChatFromViewer, which will trigger the listen() event, however this is not exactly how LL's implementation works and will/can be fixed up later.
2008-02-02 22:53:01 +00:00
Teravus Ovares d4f32649cd * Committing some untested stuff regarding texture animations. This won't break anything, but the llSetTextureAnim function is completely untested.. (though it may be functional once the script engine works again) 2008-02-02 03:57:57 +00:00
Teravus Ovares 58106926bb * Added a try/catch handler around childdataupdates because the enumeration is prone to modification when logging on. These can be safely ignored because the data gets old fast and new ones get generated somewhat quickly. 2008-01-26 17:00:35 +00:00
Teravus Ovares 5cf96daaf2 * Enabled dead region tracking for ChildAgentDataUpdates
** If the region fails 3 times, then ChildAgentDataUpdates no longer get sent to that region
* Enabled Child_Get_Tasks in grid mode.   
* When Child_Get_Tasks is enabled on neighbor regions, the neighbor region uses the client's draw distance to send out prim.   This is a lot less likely to flood the client now since the ChildAgentDataUpdate contains both the throttle settings and the draw distance.   This means that with this enabled, you can see prim in other regions in grid mode.   Very experimental.
2008-01-22 08:52:51 +00:00
Brian McBee 730e2d6d7c Check if remote simulator is up before attempting teleport. Teleport to a remote region should now fail gracefully if remote simulator is down. 2008-01-20 19:12:00 +00:00
Teravus Ovares c3061717d0 * Fixed a packet counting issue that I introduced
* Fixed a bunch of goofy math for calculating the sim stats counters
* Made most of the sim stats counters additive so it's easy to change the sim stats interval
* Changed the sim stats send interval to 3 seconds
2008-01-16 19:34:48 +00:00
Teravus Ovares 771ed747e5 * Slowed down the sim stats update to once every 5 seconds because the network accounting required it... with it being the lowest updated stat.
* Time dilation is off now..  because it's the additive of the 0.91 * 10 (adds a second) / 5( the number of seconds since the last update) which results in 0.41td as common
* Slowing down the network accounting update will probably fix the red issue.
2008-01-16 17:07:46 +00:00
lbsa71 b12f56d1d0 * fixed a race condition where several UDP-generated threads would collide on accessing AckList
* introduced __TryGetValue__ (learn to love it!) instead of ugly ifs and catch
2008-01-16 12:38:08 +00:00
lbsa71 f2ca9c1d05 * Reverted bugfx that really should go into separate commit 2008-01-16 12:33:02 +00:00
lbsa71 5e757d2ad1 * More work on getting the database framework to actually work 2008-01-16 12:25:13 +00:00
Teravus Ovares 29c869fd33 * Fix for: http://opensimulator.org/mantis/view.php?id=358 2008-01-16 06:04:33 +00:00
Teravus Ovares 5958192398 * Added Packets In/s, Packets Out/s and Current un_acked Packets to the SimStatsReporter
* This doesn't take into account the throttler, it just assumes the throttle limit isn't reached.
2008-01-16 03:33:46 +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
Teravus Ovares e2c679637e * Trying something to see if it helps teleports and border crossings 2008-01-12 11:16:44 +00:00
lbsa71 c01dfe4953 * Removed superfluous and erroneous perms check on parts. 2008-01-08 15:01:15 +00:00
lbsa71 3ebd0430d9 * Heavy refactoring of MultipleObjUpdate flow for readability 2008-01-08 14:54:20 +00:00
Teravus Ovares 9ea4c03b8f * Hiding CompletePingChecks and UseCircuitCode messages.. as the packets are most definitely handled.
* My guess is someone was using them to diagnose a problem and they've been in the console output ever since.
2008-01-05 22:06:24 +00:00
Brian McBee b96da29d1a Inventory subfolders working again in grid mode. 2008-01-05 18:50:00 +00:00
Teravus Ovares 960b7e93b1 * Added the ability for estate managers to use the magic secondlife blue card of death to send out region and estate messages.
* Switched over Region Restart notices to the magic secondlife blue card of death method.
2008-01-04 02:24:05 +00:00
Justin Clarke Casey f34ccdd222 Reduce maximum number of items in an inventory packet to approximate Linden servers count, to see if this solves Ursula's inventory problem 2008-01-03 01:45:40 +00:00
Johan Berntsson 047aba2067 I have fixed the ZeroDecodeCommand bug, and restored my packet recycling code. Let me know by IRC if there are other problems 2008-01-03 00:59:12 +00:00
lbsa71 4b4ee98070 * Trying to address TextureSender issues
* The BlockingQueue exposes Contains so we can make sure we don't add a TextureSender to the queue if there's already one present
* introduced some TryGetValue and various code convention stuff
2008-01-02 09:07:11 +00:00
Teravus Ovares 2f43578386 * Re-wrote IM that sends the friend request so that it displays the name of the person who sent the request, or (hippos) if it can't find it. 2008-01-02 03:05:18 +00:00
Teravus Ovares b4c9b6bd19 * You can add and remove a friend in standalone now within the same simulator. It saves.
* You can add and remove a friend in grid mode now within the same simulator.  It doesn't save yet.
* I got rid of Mr. OpenSim as a friend..   he bothers me /:b...
2008-01-01 06:12:04 +00:00
Teravus Ovares 32438ab1b9 * This update rolls back the packetpool and LibSL changes. Please retest and then patch these changes back in. Currently it's not quite ready for 0.5. The down side to this action, is that we loose some performance to the garbage collector for now. Given that the target date for 0.5 is *Two days* from now, I'm taking the initiative to work towards a real stable version.
* This update also fixes scripting and some weird physics reactions
2007-12-30 06:18:17 +00:00
Teravus Ovares 14368d9a73 * Applied Melanie's same instance IM fix. This will make IMs work within the same OpenSim Instance. 2007-12-30 04:12:08 +00:00
Teravus Ovares f64d94f8ca * Rezzing items from Inventory on top of other prim rezzes them 0.5 meters above the 'hit' prim instead of buried in the ground somewhere.
* Various Refactorings
2007-12-28 14:24:14 +00:00
Adam Johnson 79496381fc Patch from Johan: LibSL updated to the latest revision (1568) and all packets are now
recycled to improve performance and memory usage.
2007-12-28 08:51:39 +00:00
Teravus Ovares 5bd5770ed2 * Patch from Melanie. Thanks Melanie!
* This patch addresses a regression where 5 default textures, including the default "new prim" texture, would not be shown unless in viewer cache.
* Further, it supplies a new plywood texture as the base texture, which is purpose-made from locally photo-sourced material (means i took a picture and made it into a tile), which is closer in appearance and color to the Linden one.
* It changes the default new prim texture UUID to match the UUID generated by the viewer when "default" is clicked, which is a texture UUID hardcoded in some scripts as well, so it would cause compatibility issues if not addressed.
* The patch fixes a number of UUID duplications (same UUID for asset and inventory items) and capitalization issues in the XML files.
* It also includes new versions of 4 other textures, which were no longer loadable in grid mode.
2007-12-28 05:36:28 +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
lbsa71 efd90b56b7 * Optimized usings
* shortened references
* Removed redundant 'this'
* Normalized EOF
2007-12-27 21:41:48 +00:00
lbsa71 87e2a694e2 * AssetServerBase: _ProcessRequest is now called GetAsset
* PrimitiveBaseShape: The textures are now exposed as a 'TextureEntry Textures'; all serialization still using the 'byte[] TextureEntry' for backwards compatibility.
* Scene: Re-added AddTree, since the Tree type isn't gone from libsl, merely relocated.
2007-12-27 14:00:30 +00:00
Teravus Ovares 87d55443d3 * Added slightly better object sit handling
* Added sit handling for sit targets
* Implemented llSitTarget()
* Implemented llAvatarOnSitTarget()
* Sit targets do not persist sim restart.
2007-12-27 03:25:00 +00:00
Justin Clarke Casey bde1690c4c FOR http://opensimulator.org/mantis/view.php?id=226 I have a theory that an inventory descendents packet which exceeds a certain size is not being received by the client due
to something in the network constraining the maximum UDP packet size.
This hypothesis fits the observed facts.  The change here reduces the maximum number of items in any single packet to 20.
If I'm wrong I'll go back and correct the comments.
2007-12-24 03:26:55 +00:00
Justin Clarke Casey c470efea57 Make copying of scripts into prim inventories more reliable on the first attempt when the asset server is lagging by formalising the de facto polling.
This may not be the best solution in the long run, but should improve things for now.
This may also improve reliability when updating inventory item metadata (e.g. renaming an item) and in retrieving textures
for the main map view.
2007-12-22 19:48:01 +00:00
Justin Clarke Casey ed0f8bd572 minor refactor 2007-12-22 16:45:44 +00:00
Justin Clarke Casey 1ac57290ae Initial hookup of update task inventory event. No functionality yet. 2007-12-22 02:52:35 +00:00
mingchen 21e32196c7 *Fixed logic issue in LandManager that caused an 'invalid parcel' error to spew in the debug when land was selected 2007-12-21 21:04:27 +00:00
Justin Clarke Casey 42bc256e4f Refix bug where inventory textures don't appear in prim edit texture selection box
unless previously expanded in inventory.
2007-12-21 19:47:45 +00:00
Teravus Ovares a453672edb * Remapped the Connection shutdown path.
* This fixes a *bunch* of Mantis bugs related to the following
* -- Neighbouring simulators not appearing after relog
* -- Login to simulator only to be logged off by simulator.
* -- ThreadAbort 
* -- Unable to shutdown circuitCode: x
2007-12-21 16:55:03 +00:00
Teravus Ovares ba9e0e5cab * Fix for Mantis: 0000229 2007-12-21 15:02:57 +00:00
Teravus Ovares 2641f78a20 * Fixed a null NewPack error in ClientView.InPacket (object pool returning null objects?) 2007-12-20 14:44:59 +00:00
Jeff Ames be2ad79e52 Added patch from Johan. First attempt to solve the LibSL.Packet GC problem. Works with LibSL rev>1532 2007-12-20 05:43:02 +00:00
Jeff Ames 6702b03733 Misc. cleanup:
* added Util.Clip(value, min, max)
* modified asset cache's numPackets calculation to use max packet size (600) instead of 1000
* removed a few magic numbers
2007-12-19 08:44:25 +00:00
Teravus Ovares ccc8ffaaec * Added Incomplete Handling of the RegionInfoRequest packet
* Added Incomplete Handling of the EstateCovenantRequest packet 
* Added Incomplete Handling of the EstateOwnerMessageRequest.ChangeEstateCovenantid method
* Fixed a race condition with avatar animations
2007-12-18 12:08:34 +00:00
Teravus Ovares afe63faa2e * Fix for mantis 0000040 After client logout remote host closed connection on Simulator makes sim unuseable->'Closed Connection Called'
* I've fundamentally changed a few things, so this is experimental
* The routine that I used needs to be tested on Linux.  I don't expect it to cause a problem, but hey, it might.
* Child agents are still not logged off properly, so when the first set time out, the second set get logged off also, on the second log in if the second login is initiated before the first one fully times out.
2007-12-18 00:34:42 +00:00
Teravus Ovares adf7afb606 * Turned all instances of ForEach loops in ClientManager into Local Arrays.
* Added Locking while the Copy is taking place.
* Added an error message to describe what's actually happening.
2007-12-17 20:24:49 +00:00
mingchen e2ed1a4e1f *Adding and Removing Avatars from the Access/Ban List for a parcel now works, but the actual ban lines, etc are not done. 2007-12-16 19:53:27 +00:00
Teravus Ovares e3dd15bef0 * Added support for multiple terrain blocks to be edited at the same time
* Now sending South and East cords to the terrain editor..    
* No new functionality from a user perspective 
* Programming wise, there's enough information to get the select based terrain editor working in an upcoming revision.
2007-12-15 17:10:12 +00:00
lbsa71 653a41fa03 * some work on not storing the circuitPack (bad thing if we're going to reuse packets)
* some work on encapsulation, code convention compliance and beautification.
* also, some ignores
2007-12-15 12:19:29 +00:00
Brian McBee 8a8c89a0f3 Grid Inventory feature upgrade: renaming folders should now be correct, subfolders work, moving folders works.
Tested only in MYSQL, but may work in MSSQL and sqlite.
Probably not working in standalone mode.
2007-12-15 04:57:14 +00:00
Jeff Ames 8d995a5a5d Minor cleanup 2007-12-13 18:45:32 +00:00
Jeff Ames 83ca8bd178 Fix for #176 (... doesn't appear in chat bubbles). This also gets the viewer to handle starting/stopping of the typing animation. 2007-12-13 07:10:32 +00:00
Sean Dague c7f5a94763 put in a try block to catch the ForEach loop dying. 2007-12-11 22:20:22 +00:00
Sean Dague 6b5db310cd debug to catch any users of the stop interface 2007-12-11 21:57:11 +00:00
Sean Dague 2e38e534d9 consolidate client view exit paths, this seems to
cause a different synchronization issue in other
shutdown routines, though I'm not sure why
2007-12-11 21:47:18 +00:00
Sean Dague 1fd62bc1af force a flush before client shutdown, so no important packets are lost 2007-12-11 20:32:22 +00:00
Sean Dague 696fb65199 minor restructure of ClientView.cs to get all the attributes
and properties to the top of the class definition.
2007-12-11 19:04:08 +00:00
MW 909fcd554f A few minor changes/additions/fixes. 2007-12-11 16:05:53 +00:00
Brian McBee 16903ec488 Implementing updateinventoryfolder: Should now be able to rename folders in inventory 2007-12-11 03:51:32 +00:00
Jeff Ames 40fd37f95a Refactored animation handling in ScenePresence. Now maintains a list of current animations.
* Fixes weirdness when typing and sitting at the same time
* Should fix bug #32 (getting stuck in edit appearance pose)
* Crouchwalk and possibly jump may need more looking into
2007-12-10 15:08:44 +00:00
MW 611327e104 more work on texture downloading.
Refractored the TextureDownloadModule (but currently to make debugging easier, it is running as a non shared module, so this results in a instance of this module being created for each region (and a extra thread per region), this will be changed back soon.
Removed the old texture handling/sending code from AssetCache.
A few other small changes/fixes.
2007-12-10 13:27:23 +00:00
Jeff Ames af6eb67999 saved OpenSim source code from the giant rampaging unterminated copyright notice of doom 2007-12-10 05:25:16 +00:00
Jeff Ames e278d07220 refactored ChatModule a bit.
misc cleanup and code convention fixes.
2007-12-10 02:29:42 +00:00
Teravus Ovares e595f82489 * Hooked up the GridComm event ChildDataUpdate to the scene.
* Added List<RegionInfo> m_neighbours to Scene 
* Hooked up the OnRegionUp event to m_neighbours list 
* Modified RegionInfo to have a bool commFailTF value so that we can skip neighbors that fail.  (when the region comes up, this gets reset to false and the region will try again.
* Added SetChildAgentThrottle(byte[]) to IClientAPI 
* Several other insignificant changes related to passing child pertanant agent data from sim to sim.
2007-12-10 00:46:56 +00:00
Sean Dague cace0e055c change PacketQueue to take the byte[] throttle instead
of the Packet to set the throttles
2007-12-09 14:47:18 +00:00
Jeff Ames 65b9fa9a5f added more packet handling stubs 2007-12-09 00:07:03 +00:00
Brian McBee 383eccc543 hackish code to allow emptying of trash. This really should be done on the inventory server, and not from the region.
Also: it appeared to work the first try, so I have probably done something horribly wrong.
2007-12-08 20:41:37 +00:00
Brian McBee beca2373e1 Allow moving, deleting, and restoring objects in inventory.
Note: only tested in grid mode, and emptying trash is still not implemented.
2007-12-08 19:13:10 +00:00
MW 87b337ebf9 Enabled the TextureDownloadModule, so that hopefully I might get some feedback, as to if it makes the texture problem better or worse. As I plan/hope to work on texture/asset downloading this weekend. 2007-12-07 22:47:11 +00:00
Sean Dague 0aa982c252 move to PacketQueue for throttling. This has been tested with a couple
of people, but is enough of a change that more should try it out.  This
removes 500 lines from ClientView.cs in the process.
2007-12-07 21:30:01 +00:00
Adam Johnson 3d938f76b7 Updates to LibSL revision 1498. Thanks Johan! 2007-12-07 08:54:31 +00:00
Teravus Ovares 57f666497b * Added hacked support for 'anyone can move' and 'anyone can copy'.
* BACKUP YOUR PRIM BEFORE UPDATING TO THIS and then double check the prim permissions after applying it with a different avatar (then the master avatar or the prim owner avatar).
* Also, beware that any objects created under the old permission scheme may react oddly.  They may automatically allow anyone to modify them, (which you'll then have to un-set).  
* It's hacked support because when 'anyone can move is set', any avatar can modify the prim (texture, shape, scale, etc)
2007-12-07 07:42:03 +00:00
Sean Dague 9326ee425b added a lock to prevent multiple Timer popping races
on the packet queues.
2007-12-06 21:59:31 +00:00
Sean Dague 1ad83bcf1b reversing the r2599 patch, as this started causing CreateThread errors for
me on Mono 1.2.4, which led to client crashes.  I think the Timer.Stop() 
wasn't doing what was desired on Mono.  The Queue refactoring should address
the readability issues lbsa71 was working on as soon as I get the merge together.
2007-12-06 20:13:02 +00:00
Jeff Ames 73599c0f25 removed obsolete Verbose() function 2007-12-06 18:17:44 +00:00
lbsa71 395637acdd * now the throttle timer is stopped whilst processing Queue so that it won't fire twice
* started to refactored throttling method
* some code convention refactorings
2007-12-06 14:08:22 +00:00
Adam Frisby 9e5f7fb415 * Removed lots of scurrilous uses of ASCII/UTF8.GetBytes for making packet strings. BAD PROGRAMMER BAD. Use Helpers.StringToField instead. >_> 2007-12-06 06:36:49 +00:00
Teravus Ovares bb824eadee * Refactored Permissions into ScenePresence as requested by MW
* Un-hackerized generating the client_flags 
* Now handling the ObjectPermissions Update packet 
* Warning: Backup your prim before updating.  If you fail to do so and something goes wrong then, All Yr prim are belong to us!
2007-12-05 06:44:32 +00:00
Jeff Ames 54c070608e made log messages for known unhandled packet types shorter and yellower. added handler stubs. 2007-12-04 21:44:10 +00:00
Sean Dague 2adcdd3d15 minor refactor so that I can now grok what happens for outgoing packets 2007-12-04 20:20:15 +00:00
Adam Frisby 91c1e8a734 * Fixed a whole bunch of console messages. 2007-12-04 10:13:13 +00:00
Sean Dague 8f58a9a107 From Justin Casey (IBM)
While exploring what it would take to get the 'new script' button working,
I encountered the fact, some way down in the rabbit hole, that if a user
renamed an item in their inventory and logged out (without a restart of
the simulator), on log in the new name was not preserved.

As far as I can see, this was because any updates which didn't occur
inside a transaction were ignored by opensim.  This patch pays attention
to those changes.  It generates a new asset when an item is updated and
changes the user's inventory properties appropriately.  I believe this
behaviour is in line with the copy-on-write semantics used in the Second
Life protocol - perhaps it could be optimized if we knew for sure that the
only copy of the object was in the user's inventory.

This also means that if you rename an item (e.g. a script) before you drag
it into an object's inventory, the inventory will receive the item's most
recent name and description.
2007-12-03 20:06:01 +00:00