Commit Graph

3311 Commits (e34f537a1ae8d9c2ecc8e790d09c4007c2c58cf0)

Author SHA1 Message Date
Justin Clarke Casey f3067ce6f9 * Refactor: Change previous commits Object methods to SceneObject methods instead, on the basis that this is less likely to cause confusion with c#'s base object type 2008-05-24 22:45:13 +00:00
Justin Clarke Casey 79eecd3d25 * Refactor: Renaming various *Entity*() methods to *Object*() methods on the basis that they all take SOG parameters to improve code readability for now 2008-05-24 22:10:14 +00:00
Justin Clarke Casey 42693f3b20 * Refactor: Push some dictionary initialization down from Scene into InnerScene 2008-05-24 21:57:00 +00:00
Justin Clarke Casey d53db1d69b * Refactor: Make some inner scene dictionaries internal rather than public 2008-05-24 21:36:27 +00:00
Teravus Ovares cd79be569c * Fixes endless loop in the Land Module when selecting any object.
* Fixes returning objects when the object owner hasn't been in the simulator since the simulator started up last.
2008-05-24 21:13:44 +00:00
Justin Clarke Casey dd4100db4c * Get the xml2 entities serialization representation in the archiver module
* Not yet reusing serialization module - this will happen in the future
* No user functionality yet
2008-05-24 19:21:57 +00:00
Justin Clarke Casey 58e71b8507 * If the SVN build version is not available, state this in the About box explicitly, rather than leaving it out completely and possible engendering confusion 2008-05-24 18:27:57 +00:00
Justin Clarke Casey e5e666bb41 * Bump reported svn trunk revision number up to 0.5.7 2008-05-24 18:21:28 +00:00
Justin Clarke Casey 0b7f82153b * Temporary fix for mantis 1374
* If the agent throttle byte array is unexpectedly empty, then log a warning and drop the packet
2008-05-24 18:17:31 +00:00
Teravus Ovares 375673ec90 This enables return from the parcel object owner display.
There's some oddness with the parcel counts, but if you can get past the oddness, you can return objects under an owner that you have permission to return.
2008-05-24 11:10:21 +00:00
Teravus Ovares 3965fa2ff3 * Implements selected object return.
* If user is in the same sim with you, they'll get an inventory update, if not....  oh well, they'll have to clear their cache potentially before they'll see it.
2008-05-24 09:40:14 +00:00
Teravus Ovares c98fb26789 * an attempt to resolve the teleport + attachment = crash 2008-05-24 03:19:57 +00:00
Dr Scofield b3e413bef7 forgot to actually remove IRCBridgeModule.FindClientRegion() 2008-05-23 16:10:11 +00:00
Dr Scofield 09188d5d10 IRCBridgeModule (and ChatModule before the refactoring) didn't succeed in
finding out which region a new avatar was logging in to; the same problem
occurred when the client/avatar logged out. the reason was mani-fold:

- Scene.AddNewClient(...) would call SubscribeToClientEvents(client)
  which would subscribe to all client events and then call 
  TriggerOnNewClient(...) BEFORE the ScenePresence object had even been
  created and added. i've moved the TriggerOnNewClient() call to the
  end of Scene.AddNewClient()
- Scene.AddNewClient(...) is called with child == true; a later call
  to ScenePresence.MakeRootAgent() will turn child to false. When
  OnNewClient is triggered, child is still true, causing IRCBridgeModule's
  FindClientRegion to ignore the ScenePresence of the new avatar.

i've changed IRCBridgeModule to still use OnNewClient and also OnLogout
and OnConnectionClosed but only to signal that the avatar has logged on
(logged off respectively). to track whether an avatar has actually entered
a region i've added EventManager.OnMakeRootAgent (complementing 
OnMakeChildAgent). 

also, i've cleaned up the internal IRCModule code a bit. currently it 
still uses IClientAPI.SendChatMessage() which replicates the code in
ChatModule, that needs to be changed to use TriggerOnChatFromWorld().
2008-05-23 16:07:47 +00:00
mingchen d04443b4fe *Refactor of the LandManagementModule that allows OpenSim to run without it 2008-05-23 15:12:15 +00:00
Dr Scofield bf23e5d66c i've refactored the ChatModule into two modules: ChatModule and IRCBridgeModule.
ChatModule is now only doing in-world chat. IRCBridgeModule is only doing, well,
bridging chat to/from IRC. Both modules are now using a new OnChatFromWorld event
handler (which Scene.PacketHandler is feeding for chat from in-world instead of 
going via the Interface method). This refactoring will allow us to easily add
other bridge modules (e.g., an XMPP bridge module).

there is still a bug in IRCBridgeModule (inherited from the old ChatModule)
where FindClientRegion does not really find the client region...
2008-05-23 10:24:26 +00:00
Charles Krinke 066b350d20 Thank you kindly, Melanie, for:
Nothing huge, but the new button code for producing 
a new script does well, but the script will not allow 
for name change once created. It reverts back to new script.
2008-05-23 02:45:52 +00:00
Charles Krinke 7dcaa409b3 Thank you kindly, Melanie, for a patch which:
Previously, upload charging was possible only for UPD uploads. 
This is because UDP uploads are charged by the viewer, while in CAPS, 
this was changed to be server side, so hackers couldn't avoid 
paying the upload charge. This patch adds a method to allow 
implementation of this serverside charge.
2008-05-23 01:38:20 +00:00
Justin Clarke Casey 8cde4a1c28 * minor: Remove unused variables causing warnings in Scene 2008-05-22 22:31:42 +00:00
Justin Clarke Casey 0c94da8305 * Plug in stubbed out archiver module 2008-05-22 22:21:58 +00:00
Justin Clarke Casey 4e33906973 * Add (DEPRECATED) to load-xml/save-xml region console help 2008-05-22 21:26:00 +00:00
Sean Dague b27ae0e8dc make VS compile Scene.cs 2008-05-22 20:59:40 +00:00
Sean Dague 1c49752a44 don't trust appearance assetid, instead do an inventory
lookup any time we get it from the server.  This should
preventent unwearable appearance.
2008-05-22 20:07:31 +00:00
MW 811cd3e0bf change to how initial terrain data is sent. Instead of sending the 64 packets in rapid fire as quickly as possible. The terrain data sending is now done in a threadpool worker thread over ~10 seconds with a thread.sleep between each packet sending. this hasn't been tested thoroughly, so it might not actually help with the atom bomb terrain (missing patches) but its a simple thing to revert if it makes things worse for anyone.
10 seconds is roughly the time between the region handshake completing and you being in world where you can see your avatar. So normally the terrain still should have loaded by time you get in the region, although it is possible that sometimes you might see the very end of the terrain load just after you arrive.
2008-05-22 19:44:57 +00:00
Teravus Ovares c124bb58ec * Limiting the Quaternion reset to x=y=z=w=0 2008-05-22 19:09:51 +00:00
Sean Dague 1ebc6bfd0a add a lock on the update, this should have been there before.
still not convinced this will help, but it was wrong.
2008-05-22 18:31:47 +00:00
Sean Dague 36bfa66719 we should be return null in these 2 places, though this won't
help with the timeouts.
2008-05-22 17:55:28 +00:00
Sean Dague fb120e3e23 catch case where avatar might have been child agent 2008-05-22 17:39:13 +00:00
Justin Clarke Casey 401e9bc3b9 * Documentation for load/save xml methods
* Insert the very rough beginning stubs for a save/load OpenSim archive facility that will load/save prim assets (textures & inventory) as well as the prim details themselves 
(our existing xml facilities).
* This won't be ready for even rough testing for quite some time.
* I'm doing this directly in the region server for now since this will be quicker to get something working (hence giving me the Serotonin boost that I need).  However, there are 
very good arguments for later also including it (or moving it entirely) to the separate export executable which Sean stubbed out some time ago.
2008-05-22 17:09:33 +00:00
Dr Scofield a97fa3f43e changing more 'raw' HTTP status codes to OSHttpStatusCodes. 2008-05-22 12:59:42 +00:00
Adam Johnson 9915fa13fb Fix for Mantis 1340. Thanks Melanie! 2008-05-22 12:21:34 +00:00
Adam Johnson 336c761ba0 Mantis 1357 Patch - Thanks mikem! 2008-05-22 12:07:47 +00:00
Dr Scofield bdc792d319 here are further enhancements to the IHttpAgentHandler and to BaseHttpServer (from awebb)
i've added the OSHttpStatusCodes enumeration of HTTP status codes, have adapted 
BaseHttpServer to use those.

then RestPlugin now has proper Failure handling returning proper HTTP status
codes. Regions/POSTHandler is work-in-progress.
2008-05-22 12:00:01 +00:00
Adam Johnson f22a63bd1c Added "show regions" to the CL help screen. Mantis 1123 2008-05-22 08:37:49 +00:00
Adam Johnson 5bfdb8c003 Adding basic show users functionality back in to console. Mantis 1212 2008-05-22 04:55:23 +00:00
Teravus Ovares bdcfc2e322 * Prevent an error from stopping startup when decoding the sculpt mesh j2k fails. 2008-05-22 02:40:19 +00:00
Justin Clarke Casey 61bba6375c * Fix mantis 1325. This is a minor issue where 'show assets' would not work fully in the region console 2008-05-22 00:49:17 +00:00
Justin Clarke Casey 1f57fd4bec * Minor: Tidy ups and logging tweaks. 2008-05-22 00:41:03 +00:00
Justin Clarke Casey 203017f554 * Refactor: Move enhancement of version string with operating system information from Scene to OpenSimMain
* This also means the operating system info will show up in the region console (and hence the logs)
2008-05-22 00:32:04 +00:00
Justin Clarke Casey 2e758172f0 * Fix circular dependency from last checkin by passing version as a parameter to Scene rather than referencing VersionInfo directly
* Butt ugly solution
2008-05-22 00:18:33 +00:00
Justin Clarke Casey 9263f07d70 * Send VersionInfo string instead of the hardcoded Scene string to the "About Second Life" box
* This is the same string as printed out on the opensim region console at startup, so it should now include the svn revision number (if available)
* This dialog box takes an awful long time to come up on my local system - no idea why that is.  However, that also seems to have been the case before this revision.
2008-05-21 23:52:02 +00:00
Justin Clarke Casey cca1563a78 * Deprecate load-xml and save-xml in favour of load-xml2/save-xml2.
* Please file a mantis if you are not able to use load-xml2/save-xml2 but can successfully use load-xml/save-xml
2008-05-21 22:57:29 +00:00
Justin Clarke Casey 42ac35ba7d * Provide relief for mantis 1263, 1202, 679
* If a caller attempts to set PrimitiveBaseShape.ProfileCurve with a HollowShape or ProfileShape component which is not a valid enum, a warning is spat out and a default shape 
subtituted
* This does not solve any underlying problem if we're missing some enum values (though it's not obvious what these are), but it should allow save-xml2/load-xml2 to be used 
without causing invalid enum value related exceptions.  The checks will also guard against badly behaved clients.
* This change alters the order of shape values in the xml, since it appears properties are serialized after fields (at least this is the case in mono).  .net native 
deserialization can cope with this it appears, though people manipulating xml manually may need to adapt (if there are any).
* This may be a good argument against relying on .net [de]serialization for our xml format.
2008-05-21 22:17:28 +00:00
Teravus Ovares c8857daf52 * Going to the C# syntactic sugar way of handling the backup event delegates. 2008-05-21 22:06:38 +00:00
Teravus Ovares 8afd93c943 * Sets backup bool volatile for extra protection against two backup processes running. 2008-05-21 21:47:03 +00:00
Teravus Ovares 5af108a029 * This update causes the backup process to run in a separate thread.
* Concurrency issues are resolved because each object makes a memory-only copy of itself and backs up the copy.
* Because of the way this is done, the latest at the time of the backup gets backed up (no functionality change)
* You can move *thousands of objects at a time* and the sim doesn't freeze and wait for the backup to complete.
* This can be enhanced more by dedicating the thread as opposed to starting it when the backup process starts.
2008-05-21 21:22:56 +00:00
Sean Dague 3e997772ea implement in memory appearance cache for sqlite. This
isn't db backed, but will hang around between reboots.
2008-05-21 20:36:34 +00:00
Sean Dague 9389429ed3 Clean out some crufty in AvatarFactoryModule
Fix RequestUpdateInventoryItem so that asset changes
generate a new asset, which is needed for editing
appearance to do the right thing.  Persistant appearance
seems to work after this, except you need to rebake textures
some times.
2008-05-21 20:18:40 +00:00
Sean Dague 53bcf2139e this removes use of the mapper for wearables, and I can confirm things
get saved to the database.  There are still issues on wearing things
after a cleared cache that I'm looking at now.
2008-05-21 18:02:09 +00:00
Teravus Ovares 0b719286a4 IZ QUATERNION NORMALIZE TO 0? NOWAI! KTHXBYE 2008-05-21 17:29:03 +00:00
Dr Scofield aa348c4804 renaming GETRestRegionPlugin to GETHandler as that's what it really is. 2008-05-21 16:20:21 +00:00
Sean Dague 0e39250506 create some direct sql calls for appearance 2008-05-21 14:34:52 +00:00
Teravus Ovares 8217bbe484 * Fixed needing to alter your sculptie sometimes to get physics to generate a collision mesh for it.
* Sculpties load on startup reliably now and successfully generate a collision mesh as soon as the sculpt texture is available.
2008-05-21 05:46:32 +00:00
Sean Dague e3efe1de16 attempt to fix mysql mapper usage 2008-05-20 22:37:18 +00:00
Sean Dague 70ada9181d move SceneEvents.cs to EventManager.cs, as that's actually
the name of the contained class.
2008-05-20 20:39:44 +00:00
Dr Scofield a53cea6b7e i'm extending the RestStreamHandler.Handler(...) signature to actually
provide OSHttpRequest and OSHttpResponse to our REST handler. 

also, this adds proper RestPlugin.IsGod() checking against the X-OpenSim-Godkey
HTTP request header.

last, i added XML doc comments to RestPlugin.cs
2008-05-20 16:51:45 +00:00
Sean Dague 185eff8d0d From: Jeremy Bongio <jbongio@us.ibm.com>
House cleaning ...

Rather than using the variable name EntityList, the variable name
EntitieList was being used. Here's a patch to fix it.
2008-05-20 16:19:35 +00:00
Jeff Ames 535d64b66b Add copyright notices.
Fix spelling typo (Thanks ChrisDown for pointing this out)
2008-05-20 15:38:49 +00:00
Dr Scofield 60ceef7ea2 my last "simplification" of the the if-then-else logic in BaseHttpServer placed the return in
the "if (request.UserAgent != null)" branch in the wrong place: as a result BaseHttpServer would not do 
anything if the user agent header field was present....ARGH! BAAAAAAD.
2008-05-20 12:58:27 +00:00
Sean Dague 6d2f6be82b autocreate appearance table if it isn't there 2008-05-19 21:47:31 +00:00
Sean Dague 419adadc46 prep for changes need to create the appearance tables
by default
2008-05-19 21:39:02 +00:00
Sean Dague 29fb93d243 fix a constant that meant pants still weren't working. now
you really can have pants.
2008-05-19 21:24:39 +00:00
Sean Dague d1c4fc94e7 make the super class conveniance appearance stuff virtual
so they can be overrided correctly by subclasses
2008-05-19 20:49:57 +00:00
Sean Dague 7a52b35c57 fix crash in standalone mode for initial appearance setup 2008-05-19 20:33:54 +00:00
Charles Krinke 01b5425a2d Thank you kindly, Melanie for a patch that avoids a null
ref in inventory give and also now causes items to appear
in the correct folders now, no longer in the root folder.
2008-05-19 20:05:10 +00:00
Sean Dague 9808f39b6f i can haz pantz?
You sure can.  This change set restores pants (and the rest of the
default appearance) in grid mode.  The 
root issue had to do with serializing multi-faced textures to the 
grid server.  This also restores the lookup path through the avatar
factory module, as that seems the reasonable place to have it live.
Some clean up patches are coming later as well, plus testing on 
standalone, but this should be in a good kicking around state for 
grid users.
2008-05-19 19:08:59 +00:00
Dr Scofield 4b622ec881 (from awebb)
Fixes a bug in BaseRequestHandler.

If the length of the patter is equal to, or greater than, the length of
the actual request path, then an exception is thrown. System using is
added to support use of String.Empty. Exception is used to ensure most
efficient operation on (assumed to be most common) successful case.
2008-05-19 18:30:25 +00:00
Dr Scofield af46963176 i'm dropping VerifyGod() and adding IsGod(OSHttpRequest) instead, which actually now
takes a look at the HTTP request header and retrieves x-opensim-godkey (if it exists)
and compares that against the godkey from OpenSim.ini.

also, this makes AddStreamHandler() virtual so that it can be overridden.
2008-05-19 17:54:31 +00:00
Dr Scofield 3e8adc0d78 (from awebb)
This patch adds an additional handler to the existing BaseHttpServer. 
It does not affect any of the existing behaviors except insofar as the 
new handler may be selected.

It is selected first because its Agent-oriented nature means that it 
should not be pre-empted.  The new handler type is defined by IHttpAgentHandler 
in Framework/Servers and has two interface methods: Match and Handle.

The Match function returns a boolean result based upon examination of 
information presented in the User-Agent header.

The Handle function expects to get the request and response instances 
associated with the flow. The handler is responsible for ALL activity 
associated with the request except in the event of an unhandled exception, 
in which case the HandleAgentRequest routine will generate a 500 status 
message and close the stream.

There are two immediateley apparent (and VERY easy to implement) 
improvements that could be made:

   1. The Match call could be allowed to operate over the entire 
      request context., rather than just agent identity.
   2. The Handler could return a boolean indication of whether or not 
      the request was actually handled, and if not, the remaining handler 
      mechanism could take a shot at it. This would eliminate issues 
      arising from pre-empted streams.
2008-05-19 17:35:29 +00:00
Jeff Ames 7b0ca6ea30 Attempt to fix incorrect animations when using ODE (bugs #1320 / #1321) 2008-05-19 14:49:20 +00:00
Jeff Ames 259ddcfe1a Update svn properties. Minor formatting cleanup. 2008-05-19 13:26:42 +00:00
Dr Scofield 4e93228e25 fixing exception when RestPlugin not configured. refactors RestRegionPlugin, adds error checking. 2008-05-19 11:52:51 +00:00
Dr Scofield d725d1208b adding OSHttpRequest and OSHttpResponse which wrap HttpListenerRequest and HttpListenerResponse respectively.
enhancing IStreamHandler and IStreamedHandler interfaces so that OSHttp{Request,Response} get passed in, 
allowing RestHandlers to set response status code, redirections, etc.
2008-05-19 11:38:35 +00:00
Jeff Ames dfe8e2c502 Rework some of the animation logic in an attempt to resolve #1318 2008-05-19 04:14:43 +00:00
Jeff Ames 6ec680918b Formatting cleanup, minor refactoring. Fixed some comparisons of value types and null. 2008-05-18 23:06:50 +00:00
Jeff Ames 901e97f821 Update svn properties. 2008-05-18 21:54:13 +00:00
Teravus Ovares e57c2b47a8 * This fixes the Sculpty seam. Unfortunately not all sculpties will survive. A tiny fraction of them will turn into a torus. 2008-05-18 21:05:48 +00:00
Justin Clarke Casey f6add412d6 * Refactor: Eliminate empty if clause from AssetCache.GetAsset() 2008-05-18 19:56:25 +00:00
Justin Clarke Casey 682fc23e32 * minor: Just a few documentation odds and ends 2008-05-18 19:51:58 +00:00
Tedd Hansen aa5b26a4d3 Cleanup: Removed LSOEngine source again as it will not be used. 2008-05-18 14:10:51 +00:00
Adam Frisby c22b388f83 * Patch #1312 from Melanie - Abstracts Money Module to IMoneyModule. 2008-05-18 10:23:31 +00:00
Teravus Ovares 529553c77e * Fixed a logic error in previous commit. Darn these long client(param,param,param,param,param,param,param,param,param,param,param,param,param,param,param,param,param,param,param,param,param,param,param,param,param,param,param,param,param,param); methods! 2008-05-18 03:32:17 +00:00
Teravus Ovares 2bd03b7c8c * Group type stuff. Nothing spectacular. two packets, sorta almost semi half tiny amount implemented. 2008-05-18 03:21:22 +00:00
Charles Krinke 89056c492d Thank you very kindly, Melanie for:
The money module witll register (claim) an interface slot, 
even when disabled. This patch fixes it so that it will not
register to supply this interface unless it's activated.
2008-05-17 22:06:11 +00:00
Charles Krinke 4fde2e602c Thank you kindly, KMeisthax for: Moving the PostInitialize() code to the
Initialize() section that runs when the module is grabbing config data. 
This is run before any Providers are created and thus makes sure we don't 
get any more startup crashes.
2008-05-17 21:05:08 +00:00
Teravus Ovares 74fb5e1a94 * whoops, misplaced / where should have been \ 2008-05-17 18:48:06 +00:00
Teravus Ovares 6bcb0e8685 * Update on the script engine LSL parser. Blocks all static objects and method references. 2008-05-17 18:37:51 +00:00
Charles Krinke f6a4f8844f Thank you very much KMeisthax for DataSnapshot 1.1
to enhance search capability on OpenSim sims using
external search engines such as Metaversink.com and
others.
2008-05-17 15:47:08 +00:00
Sean Dague 06b1535ec5 while this doesn't fix the initial no pants issue in grid (which still baffles me)
it does make setting appearance in grid stick.
2008-05-17 12:45:43 +00:00
Teravus Ovares fbc98ca537 0001303: [PATCH] Make prim owner and data show for prims not owned. From Melanie. Thanks Melanie! 2008-05-17 02:07:38 +00:00
Teravus Ovares 349a17f664 * Tweaked patch mantis 1302 and committing it. 2008-05-17 00:16:16 +00:00
Jeff Ames a5f08b430d Formatting cleanup. 2008-05-17 00:06:35 +00:00
Teravus Ovares aa5197304e * Committing patch from mantis 0001297: [PATCH] Fix behavior of child prim inventories. Also enables 'New Script' button. from Melanie. Thanks Melanie! 2008-05-16 23:11:00 +00:00
Sean Dague ebb0cc5dd7 minor change to justin's previous fix that should still
prevent his crashes
2008-05-16 23:03:36 +00:00
Teravus Ovares abc06daefd * Patch from Melanie. Mantis 1294: Fix broken wearables icon display in prim inventories. From Melanie! Thanks Melanie. 2008-05-16 22:57:46 +00:00
Teravus Ovares a510033df5 * Applying patch in mantis 0001293: [PATCH] Fix a bug that corrupts uploaded assets on disk write from Melane. Thanks Melanie! 2008-05-16 22:50:37 +00:00
Teravus Ovares 00a1f0bab0 * This finishes the ODE options section of the OpenSim.ini.example. I've added 44 configurable options!
* This includes if you want to mesh sculpties and the Level of detail on the sculptie meshing for non physical and a separate LOD on physical sculpties.
* The options range from gravity..  to avatar movement speed, to friction management..  to object density.. to update throttling.
2008-05-16 20:16:33 +00:00
Sean Dague f99b4cbe3b prime the wearables structure, which should fix the exception
FluxOne found.
2008-05-16 19:24:28 +00:00
Sean Dague 7e17a444f0 it helps when both sides of the xml-rpc server agree on the method names 2008-05-16 19:06:58 +00:00
Sean Dague 8a7ae313be it helps to actually create the database if the connect
string is provided.  My bad.
2008-05-16 18:43:53 +00:00