Skip to content
This repository has been archived by the owner on Aug 19, 2018. It is now read-only.

InWorldz Halcyon 0.9.23

Compare
Choose a tag to compare
@appurist appurist released this 13 May 20:29

LSL Scripting

  • Implemented iwValidateURL function, which allows a scripter to verify if a URL is formatted correctly according to the HTTP, HTTPS, and WWW schemes.
  • Improved argument handling in iwStringCodec to allow codec names to be case-insensitive, and allowed cryptographic hashes to be specified with or without a dash (e.g.: sha512 vs sha-512).
  • Relaxed botGetPos to not require ownership of the target bot. This makes botGetPos consistent with botGetName, etc. in that any script can get the position of a bot in the region. It is not only available to the owner, and is not privileged info. See the forum discussion for more.
  • Tweak to error message of llRemoteLoadScriptPin when PIN is wrong. The error now differentiates from failure due to the wrong PIN being set and failure due to no PIN being set.
  • For performance and security reasons, llRemoteLoadScriptPin will now give an error message and return if the PIN is zero.
  • llGetMemoryLimit respects Phlox's recent increased 128KB memory limit.
  • Fixed llJsonSetValue with zero values, empty strings, and other cases. (Fixes Mantis 3174 and Mantis 3182.)
  • Fixed the format of the User-Agent from LSL scripts calling llHTTPRequest, which was not accepted at some servers, notably Shoutcast servers. They would reject (with a 403) calls from InWorldz scripts that would work unchanged in SL. (Fixes Mantis 3194.)
  • llHTTPRequest now supports many more custom headers: "accept", "content-length", "content-type", "expect", "host", "date", "if-modified-since", "range", "transfer-encoding" (auto-enabling chunked sends), and "connection" (including recognizing keep-alive).
  • Duplicate custom headers passed to llHTTPRequest now append as comma-separated values if that custom header already exists. This matches SL behavior.
  • Much simpler implementation and cleaned up region chat methods used by llSay, llRegionSay, llOwnerSay, llShout, llWhisper, etc.
  • [R5942] Restored previous "(Mozilla compatible)" suffix on User-Agent headers from llHTTPRequest. The User-Agent change fixed some Shoutcast servers and broke others. The best combination is SL-compatible prefix, with original IW "(Mozilla Compatible)" suffix. We will continue to need that for other server types anyway.
  • [R5942] Disabled the blocking of User-Agent headers in llHTTPRequest calls, i.e. allow them to be specified in custom headers, since we don't support the SL kludge of appending them to the end of the URL in a multi-line hack (and won't be, since it seems like a major security risk anyway). Allows scripters to provide a specific User-Agent as needed by the destination server.
  • [R5955] Fixed the region position associated with llDialog replies (button presses), which was causing them to sometimes appear to be out of range to be heard by the listener object, resulting in dialog menu buttons being ignored if the owner was in the region. Fixes Mantis 3206. Thanks to Judy Muircastle, Chuck String and Ayiana Cerna for helping us track this one down.

Behavior and Reliability

  • Fairly significant fixes to the memory management of bot clients, avatar "scene presence" objects and region "scene view" objects to avoid sending updates to bot clients which did not recognize or process them, and hanging on to object references, resulting in possibly large region memory leaks.
  • Fixed the implementation of the teleport routing value: "Blocked". (Fixes Mantis 3201.)
  • Fixed the server to recognize a region restart time of -1 as a region restart abort request.
  • Viewer protocol fixes to add support for missing AlertInfo parameters. Proper implemenations for HomePositionSet and RegionSecondsRestart alerts.
  • Fixed a possible null reference exception in the user friend permissions checks. Seen on IDI when there were bots.
  • Changes to XML files (especially region.XML) are now committed out-of-place. This avoids cases where a 0-length region.xml file was created when the VM is out of disk space.
  • Changed the code that saves the last map UUID to not rewrite the whole XML file twice.
  • Added a more informative server console error message on netacl errors.
  • The "forcegc" console command now includes command options to specify the maximum generation, and forced mode.
  • Fixed SQL field and trigger creation issues in new Halcyon installations.