Commit Graph

398 Commits

Author SHA1 Message Date
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
Sean Dague
4221ec23f9 further screwing around with the PacketQueue data structure.
Nearly time to replace a chunk of ClientView with this.
2007-12-07 19:13:35 +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
Jeff Ames
4bde56457f removed some duplicate hard-coded port numbers. changed ports to uint. 2007-12-06 01:41:41 +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
f195725db4 keeping opensim safe for children -- made some namespace references less explicit 2007-12-04 22:14:53 +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
Adam Frisby
be7ae3dd3e * Removed 12 compiler warnings. 2007-12-04 08:18:09 +00:00
Sean Dague
14d0a2ac74 further encapsulation of function in PacketQueue and PacketThrottle 2007-12-03 21:47:28 +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
Sean Dague
c29105aa3e This is a simple patch which just renames an IClientAPI method to
SendInventoryItemCreateUpdate() in order to reflect the actual packet it
sends (UpdateCreateInventoryItem).

From Justin Casey (IBM)
2007-12-03 17:24:27 +00:00
MW
27f182ac54 Part 1 of a commit. This revision will not compile, part 2 will be added in a couple of minutes that should fix that.
Some work towards persisting Avatar Appearance (what is being worn).
Added OnAvatarNowWearing event to IClientAPI that is triggered by AgentIsNowWearing packets.
stub code to subscribe to this event in AvatarFactoryModule. 
Todo: code needs to be added to AvatarFactoryModule to save the uuids to a database and then read them back when that modules TryGetIntialAvatarAppearance() method is called.
Done some changes to Scene to make it easier to subclass it: including changed some private fields to protected and made some methods virtual.
2007-12-01 14:20:37 +00:00
Sean Dague
e36ddb0e8c mod packetqueue to use the throttle class container 2007-11-30 21:51:13 +00:00
Sean Dague
174a3d2ca1 the packet throttle stuff is duped enough that a
seperate container for this probably makes the limits easier to
understand
2007-11-30 21:29:21 +00:00
Sean Dague
9c07a98831 starting to fill out PacketQueue, refactoring as I go. This
doesn't link into the rest of the code yet, and won't until it
is complete.
2007-11-30 21:09:49 +00:00
Sean Dague
b167507e32 Patch for mantis 0000015: Textures don't display in the object
properties window

From Justin Casey (IBM)
2007-11-30 20:16:40 +00:00
Teravus Ovares
31cec30aa0 * Extended our semi-stupid implementation of in world object permissions to show a user's client that it can't edit a prim if it doesn't have permission.
* Permissions is due for a big revamp. The current way it's done is a hack at best.
2007-11-30 04:54:15 +00:00
Sean Dague
641e541967 add a few more parens to make sure that throttling condition
is really happening the way we want it to.
2007-11-29 16:32:19 +00:00
lbsa71
7704bb6f63 * Fixed neighbour range bug
* Various refactorings
2007-11-29 15:27:57 +00:00
Teravus Ovares
4bd38fc65a * Thanks to _SomeOne_, Server side permissions on object editing. Be aware, that if you're editing an object on your client that you're not allowed to, it'll appear that it's moving to you, but won't actually be moving on the sim. 2007-11-29 15:24:31 +00:00
Sean Dague
40dc1ac3b0 I believe this turns throttling back on. I had expected
that the Queue would come in by reference, but it didn't
appear to be.
2007-11-28 18:39:07 +00:00
Sean Dague
5fb81ab881 merged ClientView into a non partial class. Will
make it easier to start breaking this up into 
more discreet functional classes
2007-11-28 13:33:57 +00:00
MW
ac77c50ba9 Moved the m_sceneGridService.RegisterRegion(RegionInfo); call out of LoadWorldMap and into its own public method (which is called during region creation). We shouldn't have things like that in methods like LoadWorldMap as some regions might not being having a worldmap loaded via the LoadWorldMap method (like in custom applications).
Deleted the CreateTerrainTextureInitial Method which was a 99% duplicate of CreateTerrainTexture, with just a bool field setting difference. That bool is now passed to CreateTerrainTexture as a param.
2007-11-28 12:36:09 +00:00
Sean Dague
f3895c1e01 build ThrottleCheck function to clear up bits of the throttle
code.

Fix typo on throttling Task packets incorrectly
2007-11-27 21:27:32 +00:00
Sean Dague
f4e91bc7d9 moved out nested class to it's own file 2007-11-27 20:50:45 +00:00
Sean Dague
cebdd069f4 some variable renames to help me read the throttle code 2007-11-27 20:37:17 +00:00
Brian McBee
35472b3666 Added new configuration item to User Server: X and Y of region to send user to if their logon region is down. Known good region, sort of. 2007-11-25 21:21:44 +00:00
Teravus Ovares
d263a044b1 * Added the ability to restart your individual sims from within them using the estate tools.
* The sims properly restart, however they don't yet notify the existing avatars that they are up.  To see the sim again, you'll need to log-out and back in until I can figure out how to get the proper data to the sims and to the avatar so they reconnect again.
2007-11-25 04:52:14 +00:00
Teravus Ovares
944b118c62 * Added a way for the Region master user to kick individual users from their sim with a custom message. Their client says, "You've been logged off of secondlife, <Your custom message here> and logs them off.
* Added a way for the Region master user to kick *ALL* users from *ALL* their regions in the estate with a custom message.
2007-11-24 03:28:42 +00:00
Teravus Ovares
52714c339e * Hanling RequestGodlikePowers. On Request.. sends the sim owner's client the appropriate messages to make it think it's got god status. Will be used for finding more unimplemented packets.... 2007-11-24 01:38:36 +00:00
Teravus Ovares
d7ec786244 * Added a nice 'The Region is going down.' message to the user when the sim owner issues 'shutdown' on the console. 2007-11-24 00:19:48 +00:00
Teravus Ovares
2db19b7d65 * Added more comments
* Tweaked the esoteric throttler parameters again.
2007-11-22 23:56:44 +00:00
Teravus Ovares
01cd8014da * Added another code path to skip the packet throttle queues when there's no need to queue the packet up. 2007-11-22 23:14:38 +00:00
Teravus Ovares
f97aeab916 * Quelled a Log format exception in the logging routines.
* Tweaked some esoteric throttle settings
* Removed AgentThrottle from the unsupported packet list.
2007-11-22 21:40:53 +00:00
Teravus Ovares
999eec603e Created a client driven packet throttler. The sim now respects the client's network throttle settings but does sanity checks to avoid too little(nothing gets sent) or too much(the sim crashes) data.
* Consider this experimental..   however, it looks very promising.
2007-11-22 19:01:53 +00:00
Teravus Ovares
e69c810486 * Added code to capture the draw distance setting from the client.
* Added a support function to InnerScene to calculate the distance between two vectors.
2007-11-22 01:32:13 +00:00
Teravus Ovares
615b40b68b * Refactored IClientAPI.OutPacket to require a second mandatory parameter. This parameter has an enum:int ThrottleOutPacketType and contains types; Resend, Land, Wind, Cloud, Task, Texture, and Asset. 2007-11-18 15:54:05 +00:00
Jeff Ames
924026d01c cleaned up some mono compiler warnings 2007-11-18 15:14:37 +00:00
Jeff Ames
d10c79d421 first stab at implementation of CopyInventoryItem 2007-11-18 13:50:46 +00:00
Dalien Talbot
8ebf75ec24 Revert the previous commit - indeed this needs to be fixed in a
different place...
2007-11-18 07:07:50 +00:00
Dalien Talbot
aa57b386b7 Trap the error during the logout with connections to multiple sims on
the same box (error in closecircuit) - temp band-aid, should have a 
better fix.
2007-11-18 06:33:15 +00:00
Dalien Talbot
793813a6a6 Added handler for MapNameRequest - OnMapNameRequest 2007-11-18 04:00:04 +00:00