* Adding CB messages for authentication from World to Identity * Removing simulation_key references from the CB message template * Finished the first draft of the primitive LLIDL definition git-svn-id: http://libopenmetaverse.googlecode.com/svn/libopenmetaverse/trunk@2733 52acb1d6-8a22-11de-b505-999d5b087335
619 lines
10 KiB
Plaintext
619 lines
10 KiB
Plaintext
////////////////////////////////////////////////////////////////////////////////
|
|
// World Server
|
|
////////////////////////////////////////////////////////////////////////////////
|
|
|
|
®ion_info =
|
|
{
|
|
name: string,
|
|
id: uuid,
|
|
handle: binary,
|
|
online: boolean,
|
|
ip: binary,
|
|
port: integer,
|
|
address: uri,
|
|
map_texture_id: uuid,
|
|
owner: uri,
|
|
region_flags: integer,
|
|
agent_count: integer,
|
|
capabilities: { $: uri },
|
|
water_height: real,
|
|
default_position: [ real, real, real ],
|
|
default_look_at: [ real, real, real ]
|
|
}
|
|
|
|
%%create_region
|
|
|
|
-> region_info
|
|
|
|
<-
|
|
{
|
|
success: boolean,
|
|
message: string
|
|
}
|
|
|
|
%%delete_region
|
|
|
|
->
|
|
{
|
|
id: uuid
|
|
}
|
|
|
|
<-
|
|
{
|
|
success: boolean,
|
|
message: string
|
|
}
|
|
|
|
%%region_update
|
|
|
|
->
|
|
{
|
|
region: region_info
|
|
}
|
|
|
|
<-
|
|
{
|
|
success: boolean,
|
|
message: string
|
|
}
|
|
|
|
%%fetch_region
|
|
|
|
&fetch_region_query = { id: uuid }
|
|
&fetch_region_query = { x: integer, y: integer, nearest: boolean }
|
|
&fetch_region_query = { name: string }
|
|
|
|
-> fetch_region_query
|
|
|
|
<- region_info
|
|
|
|
%%fetch_default_region
|
|
|
|
<- region_info
|
|
|
|
%%region_search
|
|
|
|
->
|
|
{
|
|
query: string
|
|
}
|
|
|
|
<-
|
|
{
|
|
regions: [ region_info, ... ]
|
|
}
|
|
|
|
%%get_region_count
|
|
|
|
<-
|
|
{
|
|
count: integer
|
|
}
|
|
|
|
////////////////////////////////////////////////////////////////////////////////
|
|
// Identity
|
|
////////////////////////////////////////////////////////////////////////////////
|
|
|
|
// This message should be ignored if it originates from anywhere other than the
|
|
// identity server for the given identity
|
|
|
|
&identity_attribute = string
|
|
&identity_attribute = integer
|
|
&identity_attribute = date
|
|
&identity_attribute = uuid
|
|
&identity_attribute = uri
|
|
&identity_attribute = [ real, real, real ]
|
|
|
|
%%request_capabilities
|
|
|
|
->
|
|
{
|
|
identity: uri,
|
|
capabilities: [ string, ... ]
|
|
}
|
|
|
|
<-
|
|
{
|
|
capabilities: { $: uri }
|
|
}
|
|
|
|
%%authenticate_ll
|
|
|
|
->
|
|
{
|
|
first: string,
|
|
last: string,
|
|
md5_pass: string,
|
|
services: { $: [ string, ... ] }
|
|
}
|
|
|
|
<-
|
|
{
|
|
success: boolean,
|
|
message: string,
|
|
identity: uri,
|
|
attributes: { $: identity_attribute },
|
|
services: { $: { $: uri } }
|
|
}
|
|
|
|
%%authenticate_openid
|
|
|
|
->
|
|
{
|
|
identity: uri,
|
|
# FIXME: Need whatever piece of data OpenID uses to confirm auth
|
|
services: { $: [ string, ... ] }
|
|
}
|
|
|
|
<-
|
|
{
|
|
success: boolean,
|
|
message: string,
|
|
identity: uri,
|
|
attributes: { $: identity_attribute },
|
|
services: { $: { $: uri } }
|
|
}
|
|
|
|
////////////////////////////////////////////////////////////////////////////////
|
|
// Assets
|
|
////////////////////////////////////////////////////////////////////////////////
|
|
|
|
&primitive =
|
|
{
|
|
attachment_position: [ real, real, real ],
|
|
attachment_rotation: [ real, real, real, real ],
|
|
before_attachment_rotation: [ real, real, real, real ],
|
|
name: string,
|
|
perms_base: integer,
|
|
perms_owner: integer,
|
|
perms_group: integer,
|
|
perms_everyone: integer,
|
|
perms_next_owner: integer,
|
|
creator_identity: string,
|
|
owner_identity: string,
|
|
last_owner_identity: string,
|
|
group_identity: string,
|
|
last_attachment_point: integer,
|
|
link_number: integer,
|
|
local_id: integer,
|
|
position: [ real, real, real ],
|
|
rotation: [ real, real, real, real ],
|
|
velocity: [ real, real, real ],
|
|
angular_velocity: [ real, real, real ],
|
|
scale: [ real, real, real ],
|
|
sit_offset: [ real, real, real ],
|
|
sit_rotation: [ real, real, real, real ],
|
|
camera_eye_offset: [ real, real, real ],
|
|
camera_at_offset: [ real, real, real ],
|
|
state: integer,
|
|
material: integer,
|
|
sound_id: uuid,
|
|
sound_gain: real,
|
|
sound_radius: real,
|
|
sound_flags: integer,
|
|
text_color: [ real, real, real, real ],
|
|
selected: boolean,
|
|
selector_id: uuid,
|
|
use_physics: boolean,
|
|
phantom: boolean,
|
|
remote_script_access_pin: integer,
|
|
volume_detect: boolean,
|
|
die_at_edge: boolean,
|
|
return_at_edge: boolean,
|
|
temporary: boolean,
|
|
sandbox: boolean,
|
|
rez_time: date,
|
|
sale_price: integer,
|
|
sale_type: integer,
|
|
flexible:
|
|
{
|
|
softness: integer,
|
|
gravity: real,
|
|
drag: real,
|
|
wind: real,
|
|
tension: real,
|
|
force: [ real, real, real ]
|
|
},
|
|
light:
|
|
{
|
|
color: [ real, real, real, real ],
|
|
intensity: real,
|
|
radius: real,
|
|
cutoff: real,
|
|
falloff: real
|
|
},
|
|
sculpt:
|
|
{
|
|
sculpt_texture: uuid,
|
|
sculpt_type: integer
|
|
},
|
|
particles:
|
|
{
|
|
flags: integer,
|
|
pattern: integer,
|
|
max_age: real,
|
|
start_age: real,
|
|
inner_angle: real,
|
|
outer_angle: real,
|
|
burst_rate: real,
|
|
burst_radius: real,
|
|
burst_speed_min: real,
|
|
burst_speed_max: real,
|
|
burst_particle_count: integer,
|
|
angular_velocity: [ real, real, real ],
|
|
acceleration: [ real, real, real ],
|
|
texture_id: uuid,
|
|
target_id: uuid,
|
|
data_flags: integer,
|
|
particle_max_age: real,
|
|
particle_start_color: [ real, real, real, real ],
|
|
particle_end_color: [ real, real, real, real ],
|
|
particle_start_scale_x: real,
|
|
particle_start_scale_y: real,
|
|
particle_end_scale_x: real,
|
|
particle_end_scale_y: real
|
|
},
|
|
shape:
|
|
{
|
|
path_curve: integer,
|
|
path_begin: real,
|
|
path_end: real,
|
|
path_scale_x: real,
|
|
path_scale_y: real,
|
|
path_shear_x: real,
|
|
path_shear_y: real,
|
|
path_twist: real,
|
|
path_twist_begin: real,
|
|
path_radius_offset: real,
|
|
path_taper_x: real,
|
|
path_taper_y: real,
|
|
path_revolutions: real,
|
|
path_skew: real,
|
|
profile_curve: integer,
|
|
profile_begin: real,
|
|
profile_end: real,
|
|
profile_hollow: real
|
|
}
|
|
faces:
|
|
[
|
|
{
|
|
face_index: integer,
|
|
image_id: uuid,
|
|
color: [ real, real, real, real ],
|
|
scale_s: real,
|
|
scale_t: real,
|
|
offset_s: real,
|
|
offset_t: real,
|
|
imagerot: real,
|
|
bump: integer,
|
|
fullbright: boolean,
|
|
media_flags: integer
|
|
},
|
|
...
|
|
],
|
|
inventory:
|
|
{
|
|
serial: integer,
|
|
items:
|
|
[
|
|
{
|
|
id: uuid,
|
|
parent_id: uuid,
|
|
name: string,
|
|
owner_identity: string,
|
|
creator_identity: string,
|
|
group_identity: string,
|
|
asset_id: uuid,
|
|
content_type: string,
|
|
description: string,
|
|
group_owned: boolean,
|
|
perms_base: binary,
|
|
perms_everyone: binary,
|
|
perms_group: binary,
|
|
perms_next: binary,
|
|
perms_owner: binary,
|
|
sale_price: integer,
|
|
sale_type: integer,
|
|
flags: integer,
|
|
creation_date: integer,
|
|
permission_granter: uuid,
|
|
granted_permissions: integer
|
|
},
|
|
...
|
|
]
|
|
}
|
|
}
|
|
|
|
%%get_asset_metadata
|
|
|
|
&metadata =
|
|
{
|
|
id: uuid,
|
|
name: string,
|
|
description: string,
|
|
creation_date: date,
|
|
content_type: string,
|
|
sha256: binary,
|
|
temporary: boolean,
|
|
methods: { $: uri }
|
|
}
|
|
|
|
&metadata =
|
|
{
|
|
id: uuid,
|
|
name: string,
|
|
description: string,
|
|
creation_date: date,
|
|
content_type: string,
|
|
sha256: binary,
|
|
temporary: boolean,
|
|
methods: { $: uri }
|
|
components: integer,
|
|
layer_ends: [ integer ]
|
|
}
|
|
|
|
<- metadata
|
|
|
|
%%create_asset
|
|
|
|
&create =
|
|
{
|
|
content_type: string,
|
|
temporary: boolean,
|
|
base64_data: string
|
|
}
|
|
|
|
&create =
|
|
{
|
|
id: uuid,
|
|
content_type: string,
|
|
temporary: boolean,
|
|
base64_data: string
|
|
}
|
|
|
|
-> create
|
|
|
|
<-
|
|
{
|
|
id: uuid
|
|
}
|
|
|
|
////////////////////////////////////////////////////////////////////////////////
|
|
// Inventory
|
|
////////////////////////////////////////////////////////////////////////////////
|
|
|
|
&inventory_object =
|
|
{
|
|
id: uuid,
|
|
parent_id: uuid,
|
|
name: string,
|
|
owner_id: uuid,
|
|
asset_id: uuid,
|
|
content_type: string,
|
|
creator_id: uuid,
|
|
group_id: uuid,
|
|
description: string,
|
|
group_owned: boolean,
|
|
perms_base: binary,
|
|
perms_everyone: binary,
|
|
perms_group: binary,
|
|
perms_next: binary,
|
|
perms_owner: binary,
|
|
sale_price: integer,
|
|
sale_type: integer,
|
|
flags: integer,
|
|
creation_date: integer
|
|
}
|
|
|
|
&inventory_object =
|
|
{
|
|
id: uuid,
|
|
parent_id: uuid,
|
|
name: string,
|
|
owner_id: uuid,
|
|
preferred_content_type: string,
|
|
version: integer,
|
|
children: [ inventory_object, ... ]
|
|
}
|
|
|
|
%%create_inventory
|
|
|
|
->
|
|
{
|
|
identity: uri,
|
|
name: string
|
|
}
|
|
|
|
<-
|
|
{
|
|
root_folder_id: uuid
|
|
}
|
|
|
|
%%create_object
|
|
|
|
->
|
|
{
|
|
identity: uri,
|
|
object: inventory_object
|
|
}
|
|
|
|
<-
|
|
{
|
|
success: boolean,
|
|
message: string,
|
|
object: inventory_object
|
|
}
|
|
|
|
%%fetch_object
|
|
|
|
->
|
|
{
|
|
identity: uri,
|
|
object_id: uuid
|
|
}
|
|
|
|
<-
|
|
{
|
|
success: boolean,
|
|
message: string,
|
|
object: inventory_object
|
|
}
|
|
|
|
%%purge_folder
|
|
|
|
->
|
|
{
|
|
identity: uri,
|
|
folder_id: uuid
|
|
}
|
|
|
|
<-
|
|
{
|
|
success: boolean,
|
|
message: string
|
|
}
|
|
|
|
%%get_inventory_skeleton
|
|
|
|
->
|
|
{
|
|
identity: uri
|
|
}
|
|
|
|
<-
|
|
{
|
|
folders:
|
|
[
|
|
{
|
|
name: string,
|
|
parent_id: uuid,
|
|
version: integer,
|
|
preferred_content_type: string,
|
|
folder_id: uuid
|
|
},
|
|
...
|
|
]
|
|
}
|
|
|
|
%%get_active_gestures
|
|
|
|
->
|
|
{
|
|
identity: uri
|
|
}
|
|
|
|
<-
|
|
{
|
|
gestures:
|
|
[
|
|
{
|
|
item_id: uuid,
|
|
asset_id: uuid
|
|
},
|
|
...
|
|
]
|
|
}
|
|
|
|
////////////////////////////////////////////////////////////////////////////////
|
|
// Simulators
|
|
////////////////////////////////////////////////////////////////////////////////
|
|
|
|
%%enable_client
|
|
|
|
->
|
|
{
|
|
identity: uri,
|
|
agent_id: uuid,
|
|
session_id: uuid,
|
|
secure_session_id: uuid,
|
|
circuit_code: integer,
|
|
region_handle: binary,
|
|
child_agent: boolean,
|
|
ip: binary,
|
|
client_version: string,
|
|
attributes: { },
|
|
services: { $: { $: uri } },
|
|
callback_uri: uri
|
|
}
|
|
|
|
<-
|
|
{
|
|
success: boolean,
|
|
message: string,
|
|
seed_capability: uri,
|
|
}
|
|
|
|
%%enable_client_complete
|
|
|
|
->
|
|
{
|
|
agent_id: uuid
|
|
}
|
|
|
|
%%close_agent_connection
|
|
|
|
->
|
|
{
|
|
agent_id: uuid
|
|
}
|
|
|
|
%%neighbor_update
|
|
|
|
->
|
|
{
|
|
neighbors: [ region_info, ... ]
|
|
}
|
|
|
|
%%child_agent_update
|
|
|
|
->
|
|
{
|
|
agent_id: uuid,
|
|
session_id: uuid,
|
|
position: [ real, real, real ],
|
|
velocity: [ real, real, real ],
|
|
region_handle: binary,
|
|
cam_position: [ real, real, real ],
|
|
cam_at_axis: [ real, real, real ],
|
|
cam_left_axis: [ real, real, real ],
|
|
cam_up_axis: [ real, real, real ]
|
|
}
|
|
|
|
%%pass_object
|
|
|
|
->
|
|
{
|
|
id: uuid
|
|
}
|
|
|
|
<-
|
|
{
|
|
success: boolean,
|
|
message: string
|
|
}
|
|
|
|
%%fetch_terrain
|
|
|
|
->
|
|
{
|
|
blocks:
|
|
[
|
|
{
|
|
x: integer,
|
|
y: integer
|
|
}
|
|
]
|
|
}
|
|
|
|
<-
|
|
{
|
|
blocks:
|
|
[
|
|
{
|
|
x: integer,
|
|
y: integer,
|
|
data: binary
|
|
}
|
|
]
|
|
}
|