NAME
hubvar - Hub variables
SYNOPSIS
The Hub library uses a registry to store hierarchical (or nested) data structures, and exposes this registry as $Hub. The library itself uses configuration information and populates registry keys (addresses). This document is a dictionary of the implemented values and their meanings.
VARIABLES
Environment Variables
These shell/mod_perl environment variables will affect the library:
CONF_FILE Configuration filename (instead of '.conf')
WORKING_DIR Working directory
DEBUG Honor debugging statements
GLOBAL_EXCLUDE Semicolon list of dirs (Hub::find)
GLOBAL_IGNORE Semicolon list of patterns (Hub::find)
Prepopulated Variables
These variables are populated by the library when a callback occurs. A default callback is performed when the library is used so that $Hub is immediately available to standard perl scripts. Otherwise a callback occurs for each mod_perl response or when Hub::callback is explicitly called.
VARIABLE ADDRESS TYPE DESCRIPTION
--------------------------------- ------- ------------------------------------
/sys/OPTS hash Command-line options
/sys/ARGV array Command-line arguments (w/o options)
/sys/ENV hash Copy of %ENV
When processing HTTP requests:
VARIABLE ADDRESS TYPE DESCRIPTION
--------------------------------- ------- ------------------------------------
/cgi hash CGI parameters
/user hash Authorized user account (or undef)
/session hash Instance of hashfile
/session/credentials/auth_tstamp scalar Last time authorization succeeded
/session/credentials/username scalar From /cgi/username when action=login
/session/credentials/password scalar From /cgi/password when action=login
/sys/request/page/url scalar Request URL
/sys/request/page/path scalar Directory of URL
/sys/request/page/name scalar Name of requested file (no path)
/sys/request/page/ext scalar Requested file extension
Runtime Configuration /conf
These values are defined in a file named .conf or per environment variable CONF_FILE.
VARIABLE ADDRESS TYPE DESCRIPTION
--------------------------------- ------- ------------------------------------
/conf/timeout/lockfile scalar Seconds to wait on lock files
/conf/parser/max_depth scalar Maximum number of replacements
/conf/parser/max_scope_depth scalar Maximum local stack size
/conf/win32/owner_name scalar ACL For setting owner permissions
/conf/win32/group_name scalar ACL For setting group permissions
/conf/win32/other_name scalar ACL For setting other permissions
When processing HTTP requests:
VARIABLE ADDRESS TYPE DESCRIPTION
--------------------------------- ------- ------------------------------------
/conf/content_types scalar File extension to MIME type map
/conf/authorization/users scalar Where user accounts are located
/conf/authorization/password_key scalar The password sub-key of the account
/conf/authorization/timeout scalar Seconds before auth is invalid
/conf/session/enable scalar Enable cookie-based sessions
/conf/session/directory scalar Writeable directory for session data
/conf/session/timeout scalar Seconds before session is invalid
Internal Variables
You should not need to use these unless you are doind module development.
VARIABLE ADDRESS TYPE DESCRIPTION
--------------------------------- ------- ------------------------------------
/sys/PATH array Working directory stack
/sys/CGI object Apache2::Request or CGI object
/sys/response/headers array Generated headers
/sys/response/template scalar Response template
Content File Manager Application
VARIABLE ADDRESS TYPE DESCRIPTION
--------------------------------- ------- ------------------------------------
/conf/cms/deny array List off addresses (regex) to deny
/conf/cms/root scalar Restricted to this directory
AUTHOR
Ryan Gies (ryangies@livesite.net)
COPYRIGHT
Copyright (C) 2006-2007 by Livesite Networks, LLC. All rights reserved.
Copyright (C) 2000-2005 by Ryan Gies. All rights reserved.
Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:
* Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.
* The origin of this software must not be misrepresented; you must not claim that you wrote the original software. If you use this software in a product, an acknowledgment in the product documentation would be appreciated but is not required.
* Altered source versions must be plainly marked as such, and must not be misrepresented as being the original software.
* The name of the author may not be used to endorse or promote products derived from this software without specific prior written permission.
THIS SOFTWARE IS PROVIDED BY THE AUTHOR "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
To the best of our knowledge, no patented algorithms have been used. However, we do not have the resources to carry out a patent search, and therefore cannot give any guarantee of the above statement.
UPDATED
08/02/2007