summaryrefslogtreecommitdiff
path: root/services/resources.esp
diff options
context:
space:
mode:
Diffstat (limited to 'services/resources.esp')
-rw-r--r--services/resources.esp171
1 files changed, 0 insertions, 171 deletions
diff --git a/services/resources.esp b/services/resources.esp
deleted file mode 100644
index b5c4bd3b3d..0000000000
--- a/services/resources.esp
+++ /dev/null
@@ -1,171 +0,0 @@
-<%
-
-/*
- * Various JSON-RPC calls will want to maintain open resources within a
- * session, across multiple calls. We'll provide a standardized way to
- * maintain those open resources here, with some protection against rogue
- * scripts.
- */
-
-function _resourcesCreate()
-{
- /* The being-created resources object */
- var o = new Object();
-
- /*
- * The maximum number of resources available to a single session. This
- * should be more than is ever needed (even by reasonable recursive
- * functions) but limits rogue scripts ability to generate DOS attacks.
- */
- o.RESOURCE_LIMIT = 100;
-
- /* List of current resources */
- o.resourceList = new Object();
-
- /* Resource id values will be constantly incrementing; never reset. */
- o.resourceList.id = 0;
-
- /* We'll maintain our own count of the number of open resources */
- o.resourceList.count = 0;
-
-
- /*
- * Set a new saved resource.
- */
- function _set(resource, type, error)
- {
- /* Do they already have the maximum number of resources allocated? */
- if (this.resourceList.count >= this.RESOURCE_LIMIT)
- {
- /* Yup. */
- error.setOrigin(jsonrpc.Constant.ErrorOrigin.Server);
- error.setError(jsonrpc.Constant.ServerError.ResourceError,
- "Session limit on resources (" +
- RESOURCE_LIMIT +
- ") exceeded.");
- return error;
- }
-
- /* Allocate an object to hold the new resource and its type */
- var r = new Object();
-
- /* Save the resource and its type */
- r.resource = resource;
- r.type = type;
- r.id = this.resourceList.id;
-
- /* Add this resource to the list */
- this.resourceList[this.resourceList.id] = r;
-
- /* There's a new resource in the list! */
- this.resourceList.count++;
-
- /*
- * Return the index of the resource, its resource id, and advance to
- * the next resource id for next time.
- */
- var id = this.resourceList.id;
- this.resourceList.id++;
- return id;
- }
- o.set = _set;
-
- /*
- * Get a previously-saved resource
- */
- function _get(resourceId, error)
- {
- /* Does the specified resource id exist? */
- if (! this.resourceList[resourceId])
- {
- /* Nope. */
- error.setOrigin(jsonrpc.Constant.ErrorOrigin.Server);
- error.setError(jsonrpc.Constant.ServerError.ResourceError,
- "Resource not found.");
- return error;
- }
-
- /* Retrieve the resource */
- var r = this.resourceList[resourceId];
-
- /* Give 'em what they came for! */
- return r.resource;
- }
- o.get = _get;
-
- /*
- * Find a previously-saved resource
- */
- function _find(type, error)
- {
- /* Does the specified resource id exist? */
- for (var resourceId in this.resourceList)
- {
- /* Retrieve the resource */
- var r = this.resourceList[resourceId];
-
- /* Ignore "id" and "count" integer fields */
- if (typeof(r) == "object")
- {
- /* Is the specified resource the correct type? */
- if (r.type == type)
- {
- /* Yup, this is the one they want. */
- return r.id;
- }
- }
- }
-
- /* It wasn't found. */
- return undefined;
- }
- o.find = _find;
-
- /*
- * Release a previously-saved resource, allowing it to be freed
- */
- function _release(resourceId, error)
- {
- /* Does the specified resource id exist? */
- if (! this.resourceList[resourceId])
- {
- /* Nope. */
- error.setOrigin(jsonrpc.Constant.ErrorOrigin.Server);
- error.setError(jsonrpc.Constant.ServerError.ResourceError,
- "Resource not found.");
- return error;
- }
-
- /* It exists. Delete it. */
- delete this.resourceList[resourceId];
-
- /* There's now one fewer resources in the list */
- this.resourceList.count--;
- }
- o.release = _release;
-
- /*
- * Retrieve the list of resources (for debugging) */
- */
- function _getList(error)
- {
- return this.resourceList;
- }
- o.getList = _getList;
-
- return o;
-}
-
-/* singleton: create session resources list */
-if (! session.resources)
-{
- session.resources = _resourcesCreate();
-}
-
-
-/*
- * Local Variables:
- * mode: c
- * End:
- */
-%>