llGetFreeURLs

From Second Life Wiki
Revision as of 13:21, 6 July 2020 by Tapple Gao (talk | contribs)
Jump to navigation Jump to search

Summary

Function: integer llGetFreeURLs( );
0.0 Forced Delay
10.0 Energy

Returns an integer that is the number of available URLs. If attached, return the URL's remaining for the owner. Otherwise, return the availabe URL's for the sim

Specification

There is a seperate url limit for the sim, and for each agent. The url limit is the same as the prim limit:

  • Agent: 38
  • Openspace Sim: 1,250
  • Homestead Sim: 5,000
  • Full Sim: 20,000
  • Mainland Sim: 22,500
  • 30k Sim: 30,000

Caveats

  • If called from an attachment, there is no way to get the number of free url's in the sim; it will always return the url count remaining for the agent

Examples

This script will say the number of currently available HTTP-In URLs left for the sim.

default
{
    touch_start(integer num_detected)
    {
        integer numberOfFreeURLs = llGetFreeURLs();

        if(numberOfFreeURLs)
            llSay(0,  "There are " + (string)numberOfFreeURLs + " available HTTP-In URLs left for this sim.");

        else
            llSay(0, "WARNING: There are no HTTP-In URLs available anymore.");
    }
}
// WARNING:
//
//      This script is only for proof-of-concept (demo purposes).
//      DO NOT use it if you don't have the sim owners and/or
//      estate managers OK to test this script.
//      This script can possibly block HTTP communication from and to the sim.
//      ...bringing down all networked vendors and/or similar machines.
//
//      This script allocates all available URLs.
//      Deleting the script and/or derezzing the object containing the script,
//      will release all previously taken URLs.
 
 
default
{
    state_entry()
    {
        llRequestURL();
    }
 
    http_request(key request_id, string method, string body)
    {
        if (method == URL_REQUEST_DENIED)
            llSetText("No free URLs!", <1.0, 0.0, 0.0>, 1.0);
 
        else if (method == URL_REQUEST_GRANTED)
        {
            llSetText( (string)llGetFreeURLs() + " URLs left\n" + body, <1.0, 1.0, 1.0>, 1.0);
 
            llRequestURL();
        }
        else if (method == "GET")
            llHTTPResponse(id, 200, "Hello there!");
    }
}

Notes

URLs are a finite region resource and should be released when no longer needed.

See Also

Functions

•  llRequestURL
•  llRequestSecureURL
•  llReleaseURL
•  llHTTPResponse
•  llGetHTTPHeader

Articles

•  LSL http server

Deep Notes

History

Signature

function integer llGetFreeURLs();