Jump to content

invitations, permissions and permenance


Malikharper
 Share

Recommended Posts

I had the opportunity today to see something that surprised me. An avatar was invited to participate in a hug, which the avatar accepted.  This opened a connection between the initiator of animation and gave control to the initiator of the request long after the initial hug animation was finished.

I'm a software engineer who is totally ignorant of the secondlife scripting and permission system. But now I'm curious about how second life manages the roles and permissions of animations. Can someone briefly describe how the interaction of two secondlife avatars interact when an invitation is sent to your avatar?

In particular, I'm curious about:

A. How the payload of animation/script get delivered? Where is it stored?

B. When you accept an invitation, how are permissions established for what the script is allowed to do.

C. How long are permissions granted? How do you revoke them?

D. How can you identify who currently has access to "inject" command or  execute a script  associated with your avatar?

 

I recognize this is kind of a big ask, and  I am appreciative of any insights even if it's just pointing me at documentation that can answer my questions.

 

Thanks.

 

 

Link to comment
Share on other sites

1 hour ago, Malikharper said:

A. How the payload of animation/script get delivered? Where is it stored?
B. When you accept an invitation, how are permissions established for what the script is allowed to do.

The permission is stored into the script that requested permission with llRequestPermissions. The animation is started with llStartAnimation.

1 hour ago, Malikharper said:

C. How long are permissions granted? How do you revoke them?

Permanently (unless the script makes another permission request). You can't revoke them if the script doesn't currently exist in the same sim as you.

1 hour ago, Malikharper said:

D. How can you identify who currently has access to "inject" command or  execute a script  associated with your avatar?

You can't. There may be hundreds, if not tens of thousands of scripts holding permission on your avatar right now. (Any furniture you've ever sat on, for example.) Many of those scripts won't even exist in-world, just stored in someone's inventory, possibly with further copies made of them.

Edited by Wulfie Reanimator
Link to comment
Share on other sites

10 hours ago, Malikharper said:

A. How the payload of animation/script get delivered? Where is it stored?

Every script has data associated with it, usually stuff like variables defined in the script, but there's also stuff for behind the scenes operation. in particular, each script has an integer bitmask of what permissions it has, and what key those permissions are related to.

10 hours ago, Malikharper said:

B. When you accept an invitation, how are permissions established for what the script is allowed to do.

When you accept the invitation, your viewer sends a message to the server, which then sets the value of the bitmask to whatever your viewer tells it to in its message (it is possible for a viewer to only accept some of the permissions a script asks for, but no actual viewers currently allow for that specificity to my knowledge), and sets the key to the key of the viewer's avatar. Sometimes permissions are automatically accepted when requested. I'm unsure if the viewer responds or if the server just responds for the viewer in that case.

11 hours ago, Malikharper said:

C. How long are permissions granted? How do you revoke them?

Permissions are held until script reset, new permissions are requested (from you or someone else) or they are revoked. Your viewer can send the server a message to revoke the permissions of a particular script if it is in the same region as you. Some viewers (Ex. firestorm) have a user accessible interface for revoking script permissions for all scripts in a particular object. Most viewers have an option (on by default?) to automatically send a revoke message when you stand up from an object.

11 hours ago, Malikharper said:

D. How can you identify who currently has access to "inject" command or  execute a script  associated with your avatar?

You can't really. There is a system that also deals with permissions that I've purposefully omited details about to keep things simpler. they're basically families of scripts that you grant permissions for at once. For experiences you can fairly easily list which experiences you subscribe to and exit them at any time.

You cannot exit some linden experiences though.

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
 Share

×
×
  • Create New...