llTransferOwnership() not allowing object to transfer in-place
tracked
Fred Allandale
It is expected that this function can be used to transfer ownership of a rezzed object in-place. That is, without requiring the recipient to rez it from inventory. Setting the transfer flag to 0 (no flag) transfers ownership of the object in-place. However any items in the object's inventory that do not have NEXT owner transfer permissions do not transfer with the object, notwithstanding that the items have current owner transfer permissions prior to transferring. Neither the TRANSFER_COPY or TRANSFER_TAKE flags allow transferring in -place. This makes it imposslbe to transfer in-place an object that you want to prevent the recipient from having transfer permissions.
Log In
Pazako Karu
I can add a new but related: rezzing a transferred object by same owner will result in a locked object on the ground, and lost modify privileges.
LlTransferOwnership to inventory
accept and re-rez
Object is locked/no mod even with same owner.
Selling object to yourself fixed no-mod
Needs testing for how others receive it. Also was tested in fs but expecting LL is similar.
Fred Allandale
Thanks Maestro for confirming. Actually I wasn't sure setting the transfer flag to 0 was valid for transferring in-place since that value is not defined on the wiki. But that seemed to be the only way to transfer in-place. Hope this can get fixed because I need to tell my customer whether their application is possible or not.
Maestro Linden
tracked
Maestro Linden
under review
Maestro Linden
Hi Fred, thanks for the report. I built out your repro script a bit to report the permissions of both object and object+contents (as Lucia suggested), and ended up with the script pasted at
https://pastebin.com/62DZS7Cx (to avoid Canny's message length limit..)
I see what you mean about inventory items being scrubbed from the object by the simulator when llTransferOwnership() completes, if their next-owner permissions exclude the 'transfer' bit, even if the 'owner' and 'base' masks include 'transfer'.
When I follow your repro steps with my script, the output is:
Prior to transfer, object permissions *excluding* contents are:
base perms: full and move
owner perms: full and move
next owner perms: copy & move
group perms: none
everyone perms: none
Prior to transfer, combined object permissions (including contents) are:
base perms: full and move
owner perms: full and move
next owner perms: copy & move
group perms: none
everyone perms: none
transfer result= 0
(no 'post-transfer' output, as the sim has removed the script from the object!)
Since the base and owner masks including the contents are 'full permission', I believe the script should be transferred by llTransferOwnership, with 'copy/no-mod/no-transfer' permissions set on the base and owner masks.
I tried other next-owner restrictions on inventory (i.e. no-copy/mod/transfer and copy/no-mod/transfer) and found that they transfer properly by llTransferOwnership, with next-owner permissions correctly applied for the new owner.
Lucia Nightfire
Is the object of issue rezzed anywhere one might check it against the new llGetObjectDetails() constants, OBJECT_PERMS & OBJECT_PERMS_COMBINED?