//To register a object: PUT http://lsl.softhyena.com/ { (OPTIONAL) "domain": string address, //Still accessable from uuid.lsl.softhyena.com (OPTIONAL) "title": string title, //Unused, used for indexing later(See flags) (OPTIONAL) "auth": [string username, string password], //Unused, HTTP Authentication(See flags) (OPTIONAL) "flags": integer mask, //See below (OPTIONAL) "ttl": integer minutes, //Minutes for it to stay active, defaults to 24 hours. "address": string LSL_Address //Address received from llRequestURL() or llRequestSecureURL() } //Server will respond with: { "ttl": integer UTC_expire, //How long the server will allow "address": string address //UUID address, or subdomain if specified. } //To update the TTL without sending extra data(preferred) POST http://lsl.softhyena.com/ { (OPTIONAL) "ttl": integer } //Server will respond with: { "ttl": integer UTC_expire //How long the server will allow } //To delete a subdomain(BOTH THE UUID AND CUSTOM): DELETE http://lsl.softhyena.com/ {} //Server will respond with: {} //Return info: GET http://lsl.softhyena.com/ {} //Server will respond with: { "ttl": integer UTC_expire, "domain": string address, "flags": integer flags, "address": string assigned_url } If an error ever occurs, the "err" key will be set. Simple check for it is: llGetJsonType(res, ["err"]) == JSON_INVALID //If there is no error //Flags: DOMAIN_FLAG_HIDDEN = 0b00000001 //Real URL cannot be grabbed from info DOMAIN_FLAG_LSL_ONLY = 0b00000010 //Only LSL objects can make request to this URL(Same for info) DOMAIN_FLAG_NO_PROXY = 0b00000100 //Bypass our proxy and force a redirect(May not work with post requests?) DOMAIN_FLAG_INDEX = 0b00001000 //Not used, but will be used to index the domains, this is opt-in for obvious reasons. DOMAIN_FLAG_AUTH = 0b00010000 //(Not implemented) Only allow authenticated requests DOMAIN_FLAG_SECURE = 0b00100000 //If the server is using a secure URL DOMAIN_FLAG_PRIVACY = 0b01000000 //(Not implemented) Server will strip headers sent by LL that may reveal where your server is located in world. DOMAIN_FLAG_DEBUG = 0b10000000 //Internal use only, allows for fixing bugs. *You do not need this if a secure LSL URL was supplied. //To receive information about addresses Human readable: http://info..lsl.softhyena.com/ Json: http://info..lsl.softhyena.com/json Key/values: http://info..lsl.softhyena.com/address http://info..lsl.softhyena.com/owner http://info..lsl.softhyena.com/owner_name (Does not work yet) http://info..lsl.softhyena.com/ttl http://info..lsl.softhyena.com/title http://info..lsl.softhyena.com/flags //To specify content type headers: Use HTTP_CUSTOM_HEADER with any of these: X-CONTENT-TYPE //Any mime type, overrides LL's restrictions, doesn't work in no-proxy mode X-ACCESS-CONTROL-ALLOW-ORIGIN //Allows access from a domain or everywhere(Use "*"). //Headers sent from the server(If proxied): via, "lsl.softhyena.com ()" //EG: "lsl.softhyena.com (stable/1.2)" x-forwarded-for, "IP address" //EG: 1.2.3.4 Notes: If you give the server a secure LSL URL, you MUST use HTTPS when accessing this proxy, or you will receive an error. This is a free service and will remain free forever. The TTL for all parts of this subdomain are set to 2 minutes, so if a URL isn't working when it should, wait about 2 minutes. Any object you own can request a domain in use by you, but no one can take a domain you requested unless you free it or it expires. Domains are first come first serve, I will not free domains if you fail to keep yours. Useful functions: key registerDomain(list params){ /*[ (OPTIONAL) "domain", string address, //Still accessable from uuid.lsl.softhyena.com (OPTIONAL) "flags", integer mask, //See below (OPTIONAL) "ttl", integer minutes, //Minutes for it to stay active, defaults to 24 hours. "address", string LSL_Address //Address received from llRequestURL() or llRequestSecureURL() ]*/ return llHTTPRequest("http://lsl.softhyena.com",[HTTP_METHOD, "PUT"],llList2Json(JSON_OBJECT, params)); } key refreshDomain(integer ttl){ list q; if(ttl)q=["ttl",llAbs(ttl)]; return llHTTPRequest("http://lsl.softhyena.com",[HTTP_METHOD, "POST"],llList2Json(JSON_OBJECT,q)); } key deleteDomain(){ return llHTTPRequest("http://lsl.softhyena.com",[HTTP_METHOD, "DELETE"],""); } To report bugs, please contact chaser.zaks in world.