* Some copy and pasting has occurred because it's difficult to properly refactor some bits at present. I'm very ashamed and it will disappear at some future point.
* the methods were identical except that the Properties one did a check for the user profile beforehand. However, every caller was doing this already anyway.
fixes the terrain spikes, and is the result of mostly a tuning
operation on the smooth and flatten tools. I dug in and found that the
spikes apparently result from smooth's overly aggressive iteration
steps toward the average curvature, which leads to an instability that
blows up the heights. I introduced a scaling factor to dampen the
'duration' parameter which tames progress and seems to keep things
stable.
* There are still a lot of things that are hard coded to use http. They need to be fixed.
* Also includes directions
* A standard junk PEM file to append to app_settings/CA.pem in the client so SSL will work
Moved intialization of appearance from the SendInitialData
event handler into CompleteMovement handler. That ensures
that m_appearance is initialized before the inventory is
retrieved (so there is a place to check on attachments).
after using llTakeControls my sim receives about 200 messages per second,
l of which get queued , this could be because there is no lag as the viewer
and sim are on the same computer. The patch I have included checks to see if
the "Changed" param is 0 then searches the EventQueue for Control messages
being sent to the same localid, if it finds a message already in the Queue
and Changed==0 then the new message is only notifing you the key is being held,
since there is already a message the new one isnt needed so it isnt added
to the queue.
works. Also makes llGetFreeMemory return the constant 16384.
LLGetFreeMemory is useless in SL, as it never goes up, only down.
So, the only thing it is used for, in practice, is to detect an imminent
stack/heap collision, a danger we don't have.
Remove some unused osFunctions that were left in the LSL function
file from the separation way back when. Inline the osSetParcelMediaURL
code to get rid of the osFunction. Really need to add a way for one API
to call another.
functions return CLI strings, which, in the case of lists, don't
get wrapped. Therefore, the list had to be able to deal with
that CLI type here. The correct fix would be to change all LSL
function returns to LSL types.
.config (which no one does). Dropping in the .config lets you see that debug
messages, which is handy while writing tests and figuring out why things don't
behave like you would guess.
* Patch attached that adds the check for uninitialized appearance when inventory items are received and processed. Also attempts to ensure that appearance is initialized even
when the profile cache has not been built.
* This will not fix the race condition, but should at least remove the unhandled exception that is being reported in Mantis 0002126.
* Thanks cmickeyb
* RemoteAdmin SaveXMLMethod
* My tiny mind isn't quite sure how this is useful, but the load xml equivalent is already there, so what the hell :)
* Thanks Olish.
* 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.
OpenSim.Data.Tests, then subclass with custom init bits for sqlite.
As I've only been testing the plugin interfaces anyway, this should
make it very easy to write only a little bit of code to use these
tests for other databases. It will also give us the framework for
definining the datastore behavior and making sure that all the databases
do the same thing.
patch is attached that replaces the o(n^2) algorithm currently
used to build the inventory cache with an o(n) algorithm using
hash tables. the patch also adds some additional error handling.
* From looking at the code there shouldn't be any difference, and this appears to speed up prim loading and make a certain failure case (where prims seem to be going out of
bounds on startup) less of a problem.
* However, if I've been bad please revert this patch
couple of debug statements for null items while we
diagnose our interrmittent inventory issues. I looked
at this and it seems helpful to others. We can back it
later if desired.
Thank you, ralphos, for a patch the adapts llSetColor and friends to
a change in the underlying types.
Also, thank you for a much cleaner way of casting types out of
lists, which I will adopt throughout.
Floating text, Rotation, Texture animation, Particle System
This will make "Eye Candy" scripts work without modification in
XEngine. The use of the CHANGED_REGION_RESTART hack is no longer
needed. Implemented in MySQL only, hovertext also in SQLite.
* Please note that this implementation has not been mathematically verified to be correct-as-described, it is probable that this implementation may produce differing results to Linden Lab. Testing (and test data) would be appreciated.
duplicate delivery of state_entry if a region is restarted just after
saving the script. Changes script state saves to no longer abort long-
running event handlers. Queues the save instead. Adds shutdown handler
to save script state on irderly shutdown
* This may possibly (est. 20% change) help the situation that we see on OSGrid meetings when a region stops accepting logins, which appears to be because it never receives the expect_user request
* Now it should properly inform the user and stop a login if a region server could not be contacted in order to expect a user (the last commit didn't actually quite work correctly)
* also, properly tell the user if no region can be contacted, rather than letting the login proceed only to fail later when authentication fails on the region side
* copying and pasting code... it makes me cry inside... so sad...
* These are different types then the OMV types because changing them causes just about all grid comms to break. If these were the libOMV types, then libOMV couldn't change them ever again after that.. or we'd have a breakage whenever they changed them.
* This might introduce a map issue. Still checking it out.
* Testers, please try rezzing your inventory on this revision and sending me feedback in mantis.
* Users, it's not time to update yet. The dust still hasn't settled.
* 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.
Thank you, openlifegrid, for a patch to move new user connections to
thread pool threads.
Reworked by me to fit current trunk.
I believe that that patch may be beneficial in reducing the cases
in which regions become unresponsive and will no longer accept
new logins.
The attached patch (against r6075) fixes it for grid-mode. If the
home-region isn't available, the stored regionHandle will be used
to compute the region-coordinates of the home. This will be wrong
if the home-region has moved, of course, but without the region
being online we can't request the RegionInfo of it for finding out.
Doing that (before the patch) and accessing the (null) RegionInfo
led to a NullReferenceException, which prevented logging in to the
last location.
Types extracted from a LSL_Types.list have to be down-cast initially
to the exact type of value type object that the Object actually is.
This would make for very cumbersome, ugly code when extracting list
parameter items in ll functions where a few implicit conversions
should be applied such as key -> LSLString and LSLInteger -> LSLFloat
(but not LSLFloat -> LSLInteger). This patch adds a set of GetXXXItem
member functions to the LLS_Type.list class, where XXX is the name
of the LSL_Type to be extracted: LSLFLoat, LSLInteger etc. All take
a single, int parameter that is the item number to be extracted.
If the parcel pointed to by the landmark has nothing in the
Description field (of the General tab in About Land...), a
NullReferenceException is thrown and the client is logged out.
I added a check to the calls to Helpers.StringToField() in OpenSim.Region.ClientStack.LindenUDP.SendParcelInfo to avoid
this issue.
Eliminate gretuitious KillObject packets. KillObject is sent to the
viewer for the root part only.
Also prevents the full update on deselect that makes a deleted object
reappear and stay visible until the background deleter got around to it.
We still send 2 KillObject packets for the root prim, that could be
avoided only at a cost in reliability. One packet seems an acceptable
price to pay for consistency.
The attached patch fixes connectivety checking of root- and
child-agents. If an agent's client isn't sending any packets
for some time (not even to StartPingCheck packets), we assume
that we lost connection and try to log them out.
Due to the many problems with not cleaned up child-agents, I thought it
might make sense to be able to see them on the console. 'show users' on
the region-server's console now outputs root- and child-agents (with
"root" or "child" column)
1000 chars to avoid the exception thrown by libomv at 1100 chars.
Change string->int conversion so it copes with non-numeric chars
after the number and no longer uses a float to parse the value.
It wraps constants in new LSLType(x), so that lists with
constant values are processed correctly. Contains changes to
the lsl.parser.cs that are not (yet) reflected in opensim-libs,
since this experimental patch affects XEngine only. Also contains
nuts.
* Unpatched code certainly looks bizarre - attempts to add a new client if we encountered a failure in processing a packet. No apparant ill effects on a sniff test.
* Thanks openlifegrid
* a couple more remain that preferably the original coders should look at in more detail (obsolete warnings in the ogp module and not overriding warnings in the script
engine)
* TimeStamp field of the AgentMovementCompletePacket in LLClientView.MoveAgentIntoRegion contained a fixed number. The attached patch changes this to a current
timestamp.
* Thanks HomerHorwitz
* Implemented SuperManager inside of UserData. This means the userserver when running on MySQL will use 10 connections (+1 system connection) to handle requests, preventing the previous mire of locking resulting in singlethreadedness.
* This requires testing and grids relying on stability should not upgrade to this revision until it's been properly tested.
* You can replace "grid" as the asset system with "file" to save and load all your assets from a directory on your hard disk. Files are serialised to XML and saved in the format "/<dir>/0x/0x/0x/0000-0000-000000-0000-0000.xml"
* Directory <dir> is sharing the Asset Server URL path, use a normal path here instead (ie C:\xyz or /var/assets/).
* This probably wont work well in grid mode unless every sim has access to the same directory. This is mostly intended for standalone usage where quick and convenient access to assets is required.
Addresses the problem of ghost avatars. The problem was child-agents
sending data. Due to symmetry reasons, I considered that wrong.
Whenever an avatar A1 in region R1 looks at avatar A2 in adjacent
region R2, we have two possibilities to communicate: A2-root sends
to A1-child (both in region R2), or A2-child sends to A1-root
(both in region R1). Currently, the children send data in some cases,
and I guess the viewer gets puzzled about that and switches the child
to root as consequence (at least partly), so it becomes visible.
Found that during my ghost-hunt: Add some logging and you see that the
counting down happens twice (once at the place that is removed by the
patch, and once caused by the actual removal of the root-/child-agent
during LLClientView.Close). With the patch applied, I end up with correct
numbers, i.e. with 0 roots and 0 children after everyone has logged out.