LSL Protocol/Restrained Love Open Relay Group/key

From Second Life Wiki
Jump to navigation Jump to search

!x-key

STATUS: proposal

version: 001

Description of !x-key and !x-takeover

!x-key/(key) associates the UUID key (key) with the current session. (key) is randomly generated by the controller of the current session.

Any controller can take the control of this session by sending the command !x-takeover/(key). Any controller means another real controller, or the same one after a relog and a different UUID key. Example with two controllers C1 and C2 on the left and the relay on the right.

1 -c1> blah,k(R),!x-key/a586c562-bf27-b7db-e36e-822d0a9ba02a
2 <r- blah,k(C1),!x-key/a586c562-bf27-b7db-e36e-822d0a9ba02a,ok
3 -c2> blah,k(R),!x-takeover/a586c562-bf27-b7db-e36e-822d0a9ba02a
4 <-r blah,k(C2),!x-takeover/a586c562-bf27-b7db-e36e-822d0a9ba02a,ok

Comments:

  • Before the sequence of commands, the session is controlled by C1
  • For 1, C1 generates a random UUID key.
  • Between 2 and 3, C1 gives the key to C2; in general C2 will be C1 after a relog with a different real UUID key
  • After the sequence of commands, the session is controlled by C2.

This command is intended to be used with the following commands (which is in the same x-tension):

Description of !x-noping and !x-nopingclear

There are three ways of getting out of a session: !release sent by the controller, safeword of the relay, and controller not present (not answering !pong to a !ping after a relog or a refresh). The command !x-noping removes the last possibility. So, combined with !x-key/!x-takeover the session persists if the controller disappears.

After the following sequence of commands, the user of the controller C if it is a HUD can go offline. The session will persist unless the relay safewords.

1 -c> blah,k(R),!x-key/a586c562-bf27-b7db-e36e-822d0a9ba02a
2 <r- blah,k(C),!x-key/a586c562-bf27-b7db-e36e-822d0a9ba02a,ok
3 -c> blah,k(R),!x-noping
4 <r- blah,k(C),!x-noping,ok

To cancel this setting after a relog:

3 -c> blah,k(R),!x-takeover/a586c562-bf27-b7db-e36e-822d0a9ba02a
4 <-r blah,k(C2),!x-takeover/a586c562-bf27-b7db-e36e-822d0a9ba02a,ok
1 -c> blah,k(R),!x-nopingclear
2 <r- blah,k(C),!x-nopingclear,ok