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

Releases: IslandzVW/halcyon

Halcyon 0.9.41 R6800

14 Aug 19:17
Compare
Choose a tag to compare

This should be the last release of the 0.9 series as we are moving to getting Halcyon fully Linux compatible and going to the 1.0 series.

This is also the first release with precompiled binaries. Please understand that these binaries are being provided AS IS. They are built on 3rd party servers that we have no control over, using libraries pulled from sources that we have no control over. All that means is that if your systems are mission-critical to your business you should compile everything yourself.

If you choose to use the binary release in spite of the dire warning above, Most people should use the dotnet release. This will run on most Windows installations, .NET 4.5 or newer required. Those intrepid few who want to try running experimentally on Linux can try the mono release. Please note that running on comes with a mile-long list of caveats at the moment; the various grid servers run fine, it's the region server that's got the core issues. Getting the region server fully Linux compatible is the goal of milestone 1.

The main fix in this version is #456 is now resolved, meaning that importing the OAR 0.2 files produced by Halcyon will now properly permanently record the region settings. This should help with any rebirth of the InWorldz grid, or anyone wanting to load their OAR files from InWorldz into another Halcyon grid.

InWorldz Halcyon 0.9.40 R6779

25 Jul 07:24
Compare
Choose a tag to compare

This update only addresses a couple of things needed immediately in InWorldz, and a few things we already had queued for the next release:

  • Fixed object deserializing to avoid dumping binary assets to the console on an error. (This may fix the long-standing problem of an unattended XOFF causing the console to hang, requiring manual intervention.)
  • Fixed saveportable oar to allow an empty list of UUIDs as per help and the rest of the function is coded.
  • Fixed a null reference exception in mesh uploads and other assets when no money module.
  • Fix issue #418: Invoke the code to check and apply a fee on group creation if configured
  • Only apply the fee and message if the group is successfully created.
  • Report group create failure to user. Fix typo in success message.
  • Enable Ubuntu builds on AppVeyor

InWorldz Halcyon 0.9.38 R6704

16 May 00:49
Compare
Choose a tag to compare

This update provides fixes to several LSL scripting operations, especially in the areas of media and materials.

LSL Scripting

  • Fixed llParcelMediaQuery([PARCEL_MEDIA_COMMAND_DESC]) to return the correct value. Fixes Issue #425.
  • Fixed llRequestURL and llRequestSecureURLAdded to support PUT and DELETE options. (Previously only supported GET and POST.) Fixes Mantis #3367.
  • Setting PRIM_SPECULAR or PRIM_NORMAL to a NULL_KEY was previously being incorrectly filtered out and the change was not applied. It has been fixed to allow the settings for specular and normal textures to be cleared.
  • Fixed a null reference exception when an object attempted to set a Media-on-a-Prim (MOAP) whitelist. This would result in the change not being applied.
  • Fixed a second null reference exception fetching prim properties if a PRIM_MEDIA_WHITELIST was present. This would have caused serious problems such as a failure to send updates, an exception during region persistence (storage), or any time the prim is then copied, except that the whitelist setting bug above likely prevented all cases of a whitelist from being specified.
  • Fixed support for outbound scripted HTTPS requests to include support for TLS 1.2, which allows new connections to new destinations unavailable in the previous release. See #445 for more. This was causing problems for a couple of InWorldz creators, including the inIW.net Marketplace.

Reliability

  • Several automated testcases were added, fixed and updated. (These allow automated testing of the relevant code, allowing problems in the areas being tested to be caught prior to deployment in this and future releases, and to help prevent regression problems from appearing.)

Halcyon Open-Source Project

  • Added reasonable values to the Halcyon.sample.ini file for the missing [Economy] section. This fixes Issue #439 and when renamed to Halcyon.ini or otherwise used, a startup exception.

InWorldz Halcyon 0.9.37 R6622

05 Apr 21:46
e13a904
Compare
Choose a tag to compare

Note: The actual release date for this on InWorldz was Feb 28, 2018. Lack of posting the corresponding GitHub release, once that passed testing, was an unfortunate oversight. Our sincere apologies to anyone affected by the delay, which wasn't noticed until we started preparing 0.9.38 (coming in a couple of weeks now).

Assets Handling

  • Asset caching: Fixed the accounting of sizes in the 'removed' (replaced) case. It's possible that this could have prevented caching entirely in some cases, significantly hurting performance.
  • Region-side asset cache can now succeed with only the raw asset (not the full asset stream).
  • Region-side asset cache now stores the asset in the cache before attempting to fetch the asset stream, if possible.
  • Region-side asset cache makes the post-write cache update unconditional even if it is already cached based on wire asset, since we have both wire and stream at that point.
  • Added support for the option of asset storage being asynchronous, default disabled (opt-in) until we resolve the problem of unknown fetches after new uploads due to the use of separate processes.
  • Fixed excessive "asset not found" types of reports in the logs, which were normal cases but making it difficult to read region logs.

Reliability

  • Fixed an null reference exception seen when avatar took enough damage just after crossing. Two fixes: fixed the null ref exception if a user received critical damage just as (or just after) it was leaving the region, and fixed to not attempt to teleport home a user who was already leaving the region (in transit) or not in the region at all.
  • Mitigate against a duplicate CompleteMovement request which can cause all kinds of problems with the user session in the region. May resolve Mantis 3287 (duplicate notifications).

LSL/Scripting/Phlox Engine:

  • llSetLinkCamera: Fixed the camera offsets to be relative to the specified prim at function execute time. Fixes Mantis 3317.
  • iwMakeNotecard: Increase the length limit from 16K to 64K characters. This matches the viewer limit on reading notecards, as well as SL and OpenSim limits for notecards, while still providing a sanity limit for memory use.
  • iwAvatarName2Key: Performance change to avoid attempting to contact the central User grid service for an ID if the agent is known to the current region. (!)
  • iwAvatarName2Key: Changed the long delay to be 1 second (applied in addition to the User network/lookup time), was 5 seconds.
  • llPushObject: Also permitted now if the script is owned by either the Estate Owner or an Estate Manager (previously parcel owner only).
  • HTTP requests: Fixed a counter problem with HTTP request dynamic priorities that could result in theory in objects eventually being unable to send HTTP requests at all.
  • floating point formats: Fixed the float to string conversions to match SL. See halcyon's PR 105. #105
  • Also includes some fixes to the Phlox script engine code to allow it to operate correctly under Linux.

Administration/Hosting:

  • Remote admin: Fixed bug where the 1 minute alerts were not being sent. Now uses a timer so that the thread continues, resulting in the XMLRPC response being immediate instead delayed until the countdown stops.
  • Remote admin: Also fixed a bug where you could start multiple shutdowns or restarts in any combination.
  • Remote admin: Added a delay and logging for admin tool auth failures.

InWorldz Halcyon 0.9.36 R6427

19 Aug 00:33
Compare
Choose a tag to compare

This update is mostly a stability release with some bug fixes that have collected since the previous release:

Appearance

  • Fixed a race condition in the code which may have resulted in an appearance that was missing attachments, especially after a login to a different region than the previous logoff.

New Viewer Support

  • Fixed a server exception on saves after editing scripts, under updated viewers. Newer viewers such as Alchemy 5 are using the sim CAP now, which had a bug causing an exception in both OpenSim and Halcyon servers. This matches the fix in OpenSim for the same lack of support for the new CAP.

LSL Scripting

  • Lowered most notecard delays, as discussed in Mantis 3304, which should result in very noticeably faster loading of MLP furniture and other notecard-based scripted objects. Also added new delays on some errors:

    • Notecard line and line segment fetches via llGetNotecardLine, iwGetLinkNotecardLine, iwGetNotecardSegment, and iwGetLinkNotecardSegment now delay only 1ms (effectively 16ms), every 16 lines, starting at the first line, if cached. This should result in much, much faster processing of notecards by scripts, approximately 1000 lines per second. Previously, 1000-line notecard would take about 30.4 seconds. After this change, it is just under 1 second.
    • Notecard line and line segment fetches continue to delay by 25ms if not cached (i.e. first line only), same as above.
    • If an asset fetch is required (i.e. if not cached), llGetNumberOfNotecardLines and iwGetLinkNumberOfNotecardLines now delay 50ms instead of 100ms.
    • llGetNumberOfNotecardLines and iwGetLinkNumberOfNotecardLines now also include the old 100ms delay on "notecard not found" error cases. But if cached, both functions only delay 25ms now instead of 100ms.
  • HTTP query strings: Fixed null reference exception that caused 500 errors if an incoming HTTP query passed a query string that did not include a '='. This change fixes the string coming back from x-query-string requests, which returned a very incorrect value. It was also returning a filtered view of escape characters in the text, and other changes to the query string. Because this update fixes the value returned for x-query-string requests, it is a different return value than previous servers. In most cases this will fix any scripts that used query strings on HTTP requests, however in case the older incorrect text is actually wanted by a special-use script, this update also adds x-query-string-compat which returns the filtered and partial value that the previous server would have returned, e.g. '+' and '%20' converted to ' ', excluding parameters that don't include an '=', etc. This fixes Mantis 3309; see that report for more information on this issue.

Network Communications

  • This update sends an ACK for every UseCircuitCode (UCC) packet successfully received, even for near-duplicates that have different session IDs. This attempts to fix or avoid teleport problems reported, where the region server receives duplicate UCC messages that never sort out, even after relog or region restart. Previously the server would not recover without a region restart, if we rejected a UCC packet by refusing to ACK it.

  • Fixed an exception trying to add an existing connection rather than updating it. This was seen during testing, such as where the viewer was force-killed, or where an artificial delay was put in while the viewer sent a retry.

Exit Codes (Halcyon)

  • Differentiated restart commands from shutdown (and-stay-down) console requests by giving restart an error level of 63, shutdown an exit code of 64. Crashes will return exit code 1.

Linux Support (Halcyon)

  • Fixed the path to the addin-dir-data folder to support Linux.

Map Tiles (Halcyon)

  • This update includes some background work to enhance the support for map tile updates from regions. This is mostly for Halcyon regions at the moment, but could be used in InWorldz if we do not move to the Anaximander 2 map component soon. However Anaximander is much improved and we will probably move to that before making use of these changes in InWorldz:

  • Includes a map tile correction and optimization (2x speedup).

  • Preparatory work for map tile updates. Added ability to export the map tile when generated. This adds the base level of functionality for making the region able to push map changes to the map server. To set this up simply share and map the ingestion folder of the map server to the region and then point the new Halcyon.ini entry to the path and format appropriately. At this point the region now has the tools to do the push, but still needs to be told to generate the tile.

  • Added ability for simulator to detect the changes that cause the map tile to need to be updated. More of the map settings in the INI were brought under the new banner. Now the region can be configured to actively push the updated map tiles to a path where they can be picked up by the super map tile generator for inclusion into the world map.

Miscellaneous

  • All Halcyon server apps have been updated to create .PID files. (Previously only the User server supported them.)

  • This update includes support for AppVeyor builds. See Pull Request #388 for more.

  • Added more detail to inventory purge messages, including inventory type, inventory and asset IDs.

  • Additional reporting added to object rezzing to help track down a lost asset report.

  • Additional error reporting to help diagnose a report of trouble copying inventory from notecards.

  • The server no longer reports a missing inventory item if it's being deleted. This avoids the known false report of viewer requests to remove the COF folder link that the region server auto-removes anyway on an new folder link. (Workaround for earlier Firestorm problems.)

  • Small optimization: removed some calls to ContainsKey that were unnecessary.

InWorldz Halcyon 0.9.35 R6342

18 May 00:04
Compare
Choose a tag to compare

This was a small bugfix release intended to address one regression bug from the 0.9.32 release. It also includes one minor tweak for other Halcyon grids:

  • The fix for "Mantis 2847: Ghost copies of sim-crossing objects" and "Mantis 2025: DD Culling confusing viewers" introduced a regression bug where prims previously visible were removed from view when the avatar left draw distance, but not correctly restored if the avatar reentered draw distance. This problem has been fixed (also allowing the fixes for Mantis 2847 and 2025 to remain).

  • Fixed "$" becoming "" in the XML config files. Turns out there was a rather simplistic feature here for using "$XYZ" to be replaced with the value of an environment variable named "XYZ". This change makes that feature more obvious via logging when it's used or was abused, and meanwhile totally skips is it's only "$", as was the case for some Halcyon grids specifying "$" as the currency symbol.

InWorldz Halcyon 0.9.34 R6334

05 May 06:29
Compare
Choose a tag to compare

Inventory / Avatars / Outfits

  • Restored the previous support for sending duplicate inventory items for inventory links (which as very close to correct, but produced worrisome errors in the viewer log that sounded worse than they were).
  • Reorder the original / link item sequence on links to ensure the duplicate originals are sent before the links so that links are always immediately resolvable at the viewer end.
  • Fixed a null reference exception when attempting to resolve an actual (real) broken link, which could result in partial inventory loading. (Seen repeatedly during appearance updates after outfit changes by Astoria in some tests.)

This combination of commits should resolve all cases of valid links being falsely reported as broken, especially after clearing the viewer inventory cache.

Objects / Attachment: updates and culling on region entry

  • Split the check for whether an avatar was considered fully in a region into multiple separate completion flags, which causes agent/prim updates from the scene view (object culling) to wait until the agent is fully in the region, initial avatar data sent, animation pack sent, and the transition from child agent to root agent is fully complete. This is likely to resolve many issues with attachments or prims in the region missing on region entry (login or teleport), animations not being active on login/teleport, avatar radar and viewer avatar notification problems, avatars displayed at the wrong locations (e.g. in the sky at 128,128 or at 0,0,0), attachments missing or shown near 0,0,0 and other cases of improperly rendering attachments. (It may provide a fundamental fix for issues like the "ghost HUD" problems.
  • [R6331]: Tweaked the above to only affect avatar/object culling and updates on region entry rather than to affect the timing of avatar region exits as well. Also, the FullyInRegion (updates support) does not need to wait for ParcelInfoSent in order to start (avoids 250ms delay on entries too).

Login / Online status reliability

  • Fixed a MySQL exception problem when attempting to update the logout time and mark a user as offline, when a region is shut down with the user still in the region. This problem would leave the user showing as "online" when in fact the region wasn't even running anymore.
  • Fixed a possible Messaging grid service exception reported by VinHold on the GW grid when a user logs in and someone in their friends list is on a region that cannot be looked up (e.g. has just been shut down) but the user is still marked online. This problem is very likely the direct result of the problem fixed in the previous point above.

Other Fixes

  • Fixed an exception triggered by a Cool VL viewer login sending of an inventory fetch request that does not include an "items" list in the request.
  • [R6331]: Fixed the regression (from the Halcyon generic branding changes) that caused location URLs to be relative to example.com instead of places.inworldz.com.

Debugging / Diagnostic

  • Tweaked the /!find server chat command to allow a user to check the server's understanding of attachments too. The output will now include attachments too, if user specifies the UUID or owns the attachment. The output for these cases will indicate "(attached)" at the end of each matching object.

Note

This is a repost of the Halcyon 0.9.34 release, with an additional commit (as revision R6334), to correct a problem with the initial avatar rezzing.

InWorldz Halcyon Server 0.9.33 R6303

19 Apr 23:30
Compare
Choose a tag to compare

Fixes and Changes

Inventory Fixes

Please be sure to clear viewer cache (for each viewer in use) once the login region has been upgraded to this version. If you don't clear the cache, you may continue to experience inventory/outfit issues that have been resolved, but are still present because the viewer is still using older data that needs to be refreshed under the fixes. Clearing your viewer (inventory) cache will allow the fixes to be applied to your inventory:

  • Fixed the inventory descendants fetching to return the folder contents including links without following the links. Fixes several problems with the descendants' folder trees being duplicated internally at the viewer end, and also problems with the expected item counts not matching the actual counts which leads the viewer to think the inventory is incomplete (it actually has too many). This also eliminates a series of false error conditions that flooded region consoles when someone logged into a region and may improve region performance during logins, as well as the performance of inventory loading after login.
  • [LibreMetaverse] A critical fix to the underlying OMV/LMV library to specify the correct type ("link_f") for a folder link rather than the assumed type ("linkfolder"). This is critical in the Current Outfit folder (COF) and allows the viewer to recognize the current outfit more reliably. In combination with the fix above, this should allow the viewer to recognize that an outfit is fully loaded and which one it is. Hopefully, this will help or even fix Mantis 3162.

Other Fixes

  • User profile interests for the "I Want To" and "Skills" sections were reversed from what they should be. This resulted in the two areas of the profile appearing to become swapped every time someone changed them. (They were actually saved correctly with what the user wanted at save-time, but were displayed backwards.) This update fixes Mantis 948.
  • Saving OAR files will now skip unknown/invalid UUIDs that can't be read from damaged assets. Previously this caused the OAR save or to fail with an exception. Reported by Vinhold as a null reference exception when save oar was called with a 1 (option to include assets). Note that InWorldz backups do not use this option and were unaffected.
  • Fixed the viewer's sun position to be timezone-relative to UTC, but unaffected by DST. Keeps estate environment timing consistent between regions even after restarts on different sides of a DST change. Fixes Mantis 1863.
  • Some tweaks to region limit checks to help debug reports of problems with the limits (and also for the user to better understand). Recording of hard and soft limits in the log show current usage and limit. User now sees a different message for hard and soft limits. Hard limit reached shows user the current usage and limit values. Soft limit just reports "Region estate limit has been reached" for the limit, since estate staff may temporarily set the limit very small to disable additional agent entry.
  • Fixes for Mantis 760 and Mantis 1605: changed events now match the events sent in SL after object Edit form changes:
    • Color changes now fire CHANGED_COLOR instead of CHANGED_TEXTURE.
    • Alpha changes now fire CHANGED_COLOR instead of CHANGED_TEXTURE.
    • Texgen mode (e.g. planar vs default) changes no longer fire a changed event at all (as in SL).
    • Changes to prim shape now correctly trigger a CHANGED_SHAPE event, for both scripted and manual edit changes.
      Note: SL does not send any changed events AT ALL for scripted changes. Attempts to fix this problem broke some existing content in SL. However, Halcyon servers already send the changed events for scripted changes, so the same concern is unlikely to apply here. See SL JIRA report SVC-914 for more on that issue there (summary in the final comment at the bottom).

Halcyon Open-Source Project

Halcyon Grid Branding / Customization

  • Made the inventory Library name configurable. This adds two new OPTIONAL configuration entries:
    • In Halcyon.ini file, [StandAlone] section, the server now supports a LibraryName entry.
    • Similaryly, in UserServer_Config.xml, attribute library_name.
  • Added ability to specify the currency symbol at the region level. This is used in various notifications sent to the user, but has nothing to do with the symbol displayed in the top of the viewer window. This is done by specifying CurrencySymbol in the [Economy] section of the Halcyon.ini file.
  • The default currency symbol is "I'z$", although the hard-coded texts previously contained "$" in those places.
  • Added optional economy-specific connection string: EconomyConnString. If missing, it falls back to using ProfileConnString
  • Replaced some InWorldz-specific branding on error messages with more generic Halcyon text.

General Improvements

  • Added "remote-admin" as an option for aquiring a JSON web token (JWT), matching the semantics for "remote-console".
  • Added configuration options, fixups, and docs for the JWT certificate path. This makes the administrator able to specify the path for the certificates used to verify and create JWTs. It also updates the docs for the XMLRPC-based remote-admin.
  • SSLCertFile will now be used for http_listener_ssl_cert if the latter is not specified.
  • Refactored some repeated code: added common LocationURL, LocationURLPrefix, LocationShortCode operations. The localtion URL prefix can be specified in the Halcyon.ini file using a slurl_base option.

MOSES-Related

Freeswitch Voice
  • Added voice chat support for Freeswitch servers.
  • For more information, see the Readme.txt file.
Docker Support
  • Some work has been applied to make Halcyon more compatible with Docker environments. There is a new --background true command line argument to the GridServer, UserServer, and MessagingServer so they can be started in 'background mode' similar to Halcyon.exe. By adding the "--background true" CLI option that Halcyon already has, the processes do not prompt and idle at 0% CPU.
  • The former disabling of Ctrl-C has been replaced with a server shutdown if received. (This isn't really technically part of the Docker support, but is a direct result of making it work better under Docker.)
Arbiter Project
  • Considerable additional progress towards the Halcyon Arbiter project, and mapping between Halcyon objects and .fbs content. A detailed mapping between Halcyon primitives and flatbuffer types is complete. Work in progress continues.

InWorldz Halcyon Server 0.9.32 R6272

10 Mar 20:57
Compare
Choose a tag to compare
Halcyon Server 0.9.32 R6272 is now running on all InWorldz and InWorldz Beta grid regions.
  • Increased the number of attachment points supported (and saved with the user appearance) to include the additional attachment points necessary to support the recent SL "Project Bento" attachments. Also provides the associated LSL constant definitions, such as ATTACH_LHAND_RING1, and are the less-documented (red) ones listed here.
  • Fixed Mantis 3282 the restrictions that were preventing the viewer's Request Teleport operation from working.
  • Fixed Mantis 3285: Dual support for SL's new active/non-active sit targets led to a regression where the existing method of calling llSitTarget(ZERO_VECTOR, ZERO_ROTATION) didn't actually remove the sit target. The region server could not tell the difference between the case of an active zero sit target and an inactive (removed) sit target. The InWorldz database has been extended to provide storage for this data. LSL script developers, see background note below. This should finally, once and for all, hopefully resolve all sit target differences from SL. See details below.
  • Also implemented the setter for PRIM_SIT_TARGET (now supports llSetPrimitiveParams family of functions). Previously on the getter was supported (e.g. llGetPrimitiveParams, etc).
  • Restored the fix for Mantis 2847: Ghost copies of sim-crossing objects, and Mantis 2025: DD Culling confusing viewers. The server now sends 'kill' updates if an object moves outside of the view distance. This fix has been restored after applying a small additional fix for the problem discovered during testing of these changes in the attempt to include it in the previous Halcyon 0.9.31 release.
  • Implemented llReturnObjectsByOwner and llReturnObjectsByID. Also includes a performance enhancement to factor the code handling the caching of group powers, and otherwise also favor use of client-cached powers if available when not cached. Fixes Mantis 1179. See details below.
  • Fixed a possible null reference on money transfers, if the sender leaves the region or disconnects before it is processed.
  • Added implementation "stub" functions for llGetAnimationOverride, llSetAnimationOverride and llResetAnimationOverride (work in progress). These currently just result in "Not implemented" being displayed if called.
  • Fixed a Phlox script engine crash seen on Sandbox 5, Sandbox 6 and Plus Sandbox. Avoids a race condition when the user deletes the a script from the Contents a second time before the viewer updates the Contents to remove it.
  • Changed the loadexplicit oar console command to not fail if a creator ID no longer exists. (We've seen this with some of YadNi's items, not sure what method was used to create them in InWorldz.)
  • [Halcyon] Provide a default bin/aperture.example.cfg for other open-source users and grids.
  • [Halcyon] Some initial support for Flatbuffers for the MOSES Arbiter project.
  • [Halcyon] Replaced the former hard-coded InWorldz currency account (CURRENCY_ACCOUNT_ID) with a grid-configurable one. Useful for other Halcyon grids. to be overridden by halcyon.ini, use something like:
[Economy]
CurrencyAccount = efbfe4e6-95c2-4af3-9d27-25a35c2fd575

Additional Info and Background on the Sit Target fixes

The following additional information is provided for LSL scripters and administrators of other Halcyon grids:

Some time ago, SL extended sit target support to include a new PRIM_SIT_TARGET option for the llGet/SetPrimitiveParams family of functions. This option supports active, pos, rot parameters in a general way, which even supports active==TRUE for ZERO_VECTOR,ZERO_ROTATION. As a result, the region servers must persist this boolean state data too. This is done now with an update to the prims table in the region database:

ALTER TABLE `inworldz_rdb`.`prims` 
ADD COLUMN `ServerFlags` INT(11) NOT NULL DEFAULT '0' AFTER `KeyframeAnimation`;

The fixes have been tested heavily both in InWorldz and SL, and produce identical results in InWorldz as to the ones provided by SL. This should finally resolve any and all remaining sit target differences from SL.

You can also now pass PRIM_SIT_TARGET to both llGetPrimitiveParams and llSetPrimitiveParams, or even pass it in the params list on a call to iwRezPrim.

Additional Details on llReturnObjectsByOwner and llReturnObjectsByID

This server upgrade provides implementations of the llReturnObjectsByOwner and llReturnObjectsByID functions. These should now be fully-compatible with their SL counterparts.

The implementation delay on these functions was partly due to a rather unexpected set of differences from the normal (viewer) Return operations. The SL semantics when called from these functions are quite different, likely to reduce cases of griefing and social exploits.

For the convenience of LSL scripters in InWorldz (and SL), here is a summary of the semantics of these functions, rewritten a bit to try to be clearer than the SL wiki:

  • Both llReturnObjectsByOwner (wildcard) and llReturnObjectsByID (specific IDs) return the number of items returned, or an ERR_ flag on error.
  • Both functions do two primary checks (more info below) before even beginning to consider the objects being returned, a script check and a parcel check.
  • Script check: PERMISSION_RETURN_OBJECTS can only be used if:
    • the script owner is the permissions granter, or if:
    • the object containing the script is deeded and the permissions granter is an "Owner" in the object's group.
  • Parcel check: PERMISSION_RETURN_OBJECTS can also only be used if:
    • permissions granter is the owner of the other parcel with the target object, or if:
    • the other parcel with the target object is deeded to a group and the permissions granter is a group "Owner".
  • If fails any of these checks, a script error is reported.
  • Estate Owner, Estate Managers, and parcel owners cannot have items returned, except:
    • llReturnObjectsByID only: the scripted object is allowed to return itself (by ID)
  • llReturnObjectsByID only: If script owner is the Estate Owner or an Estate Manager, this function works anywhere on region. Otherwise:
    • Supports objects located in any parcel on the region that is owned by the script owner.
  • llReturnObjectsByOwner only: objects deeded, to the group that their parcel is set to, are not returned.

InWorldz Halcyon Server 0.9.31 R6242

13 Feb 19:25
Compare
Choose a tag to compare

This release attempts to provide a much-updated new baseline revision upon which to use as a foundation to build on for the coming year. It includes a brand-new replacement for the dated OpenMetaverse (OMV) library named LibreMetaverse (LMV) supporting some of the newer features of Second Life of the past couple years. Features like parcel privacy, default upload permissions, Project Bento bones, etc. This update also provides many other unrelated fixes and improvements.

LibreMetaverse (LMV)

This update includes some sizable changes to replace the much older OpenMetaverse (OMV) library that InWorldz was previously using with a completely up-to-date alternative from Cinder Roxley called LibreMetaverse (LMV). This update removes some major roadblocks that were preventing InWorldz from updating the code with some features that other grids (mostly SL) already supported, several of which have already now been implemented in this update (and will be listed below). However, this replacement is similar to replacing the foundation of a house with a new foundation; it is a series of significant changes that will need a longer test cycle than the usual one week for a server update. For this reason, we'll be doubling the test time to two full weeks, longer if any significant problems are found.

In addition to a whole having the updated LMV library itself, there were several immediate changes resulting from the LMV update:

  • Added support for the AgentPreferences CAP, which includes viewer language, the (non-shape) hover height slider, maturity preference, and default permissions. Added support for carrying AgentPreferences to the destination region on a teleport or crossing. Enabled AvatarHoverHeight in SimulatorFeatures.
  • Added full support for the avatar hover height slider (independent of the v2-style hover height on shapes)
  • Implemented llGetAgentLanguage. Fixes Mantis 2667.
  • Implemented default object permissions for object creation based on AgentPreferences. This may also fix Mantis 828.
  • Fixed Mantis 828: Fixed the NewAgentInventoryRequest CAP to support using any permissions specified in the call. Fixes cases of the default permissions not being correct until a relog, for uploaded assets (textures, animations, etc, rather than creation of objects).
  • Changed NewAgentInventoryRequest CAP to send an inventory item update to the viewer on a successful upload. This is a server-side fix for the second part of Mantis 828, which fixes the item permissions being out of sync with the default permissions after an upload (until the first relog/refresh).
  • Changed VisualParams to always store and return whatever the viewer sent (rather than variable 212/251/253 bytes). This may provide better support for avatar shape physics (bounce) across different viewers.

Other Fixes and Changes

This update includes many other changes:

  • Fixed Mantis 3274: Multi-byte characters passed to iwMakeNotecard cause the characters at the end of the notecard to be truncated.
  • Fixed Mantis 3270: Some iwRezPrim params (PRIM_PHYSICS and PRIM_PHANTOM) were applied to the host (rezzer) prim rather than the rezzed prim.
  • Fixed Mantis 2704: llSetKeyframedMotion does not work on phantom objects
  • Fixed Mantis 3173: llClearPrimMedia has no effect with ALL_SIDES
  • Fixed Mantis 3279: Fixed linking to fail on attachments. Also report slightly more informative message than SL's "nothing to link" (but include that text).
  • Fixed Mantis 3239: Fixes to parcel border checks. Fixed two methods for users to enter restricted parcels.
  • Fixed Mantis 980: Fixed llMapDestination in attachments to work with an implied target of the wearer. No changes to the event-related behavior, it still supports any event where llDetectedKey would return something (including collisions).
  • Fixed Mantis 2736: Cannot delete scripts in objects in regions if scripts are disabled on debug page of region window
  • Fixed new accounts created using the built-in adduser command to avoid leaving the password 'salt' blank. The password reset command had a similar problem and is also fixed.
  • Fixed a null reference crash seen in testing on disconnect if the controlling client (viewer session) is cleared in another thread.
  • Fixed the MapBlockReplyPacket to include Size blocks. This was a backward-incompatible change (a long time ago) to the LL API to support varregions in OpenSim that caused unexpected null reference errors.
  • Fixes to HUD detection checks, checking if an attempt is being made to attach something owned by someone else (may fix ghost HUD issues, especially with bots in the region).
  • Changed "loadexplicit oar" command to continue even if a creator ID no longer exists. In other words, don't fail to load an object owned by a valid user, just because the creator is not (or no longer) known to the system. (We've seen this with one of YadNi's items.)
  • Fixed a null reference exception on client disconnect while establishing presence (seen during developer testing). This may resolve some cases where a user session in a region was "stuck", and the user could not enter the region, even after logging off and logging back in.
  • Replaced old InWorldz-specific 404/500 HTTP messages that also reported bogus host info, with more generic Halcyon ones that avoid the incorrect host info.