Added option to try alternate UDP ports if the one configured is in use.
UDP packets are now bound to the actual outside IP address and hopefully won't "randomly" select IP on multihomed systems.
* You can type 'stats' at the REGION# prompt to get this information in grid or standalone mode
* Don't take these numbers as gospel yet, since for some reason textures displayed from inventory which require downloading from the server are being recorded as assets
rather than textures
* But I don't have any reason to believe they aren't broadly accurate.
* I've put these in so I can tell whether the high memory usage on regions is down to the asset/texture cache
* This will require a prebuild
* DEV: Only adds needed to be implemented since, as far as I can tell, assets cached are currently never released. For my part, seeing large cache memory numbers will
provoke me to think about doing something about this.
* DEV: Now switched to using a singleton to get the stats reporters rather than threading the object through various layers
* DEV: Will refactor the other server stats reporters to do this in one of the next commits
* The hooks are still plugged in too high at the asset server, but then next layer down is the database and this may be refactored soon.
* This change will requires a prebuild
* I intended to think about refactoring the servers to use this common base class, but temporary laziness won out.
* I'm leaving this here as a reminder/mind poke and for reasons of laziness (again)
* If people object to me leaving this kind of thing lying around, please say
* Typing 'stats' on the command line will given total number of successful logins today and yesterday
* A little bit more to come, probably
* Refactoring will follow next
* 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.
** 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.
* On restart the latest save will be restored rather than the very first dragged in scripts
* Also add previously missed out database commits to separate prim inventory commit path (sigh)
for now. It doesn't build on new mono at the moment, and
isn't currently used. Please make sure this functions on
mono 1.2.6 prior to adding it back in for the main tree.
* Added a Logout message with a name on the console
* Added a *fixme* message to figure out why the current agent session is null
* After updating you may notice that there's a login <user> and also a logout<user>
Possibly solved startup crash.
Moved MySQL Commit() to inside each functions respective dataset access mutex because if not other threads would be waiting until function released mutex and modify the dataset before the function could commit
* This means that you can take an object from a region and rez it somewhere else, with its inventory intact.
* As for earlier, at this stage only scripts can be placed in inventory
* This isn't an efficient implementation, a better one will probably need to come along soonish
* Apologies, any sqlite databases created between r3069 and this change will now contain unfindable assets.
* But sqlite asset databases used previous to r3069 will now work again.
* This change may have been done on purpose, so it's not impossible it will be re-reverted