| Name | Modified | Size | Downloads / Week |
|---|---|---|---|
| Parent folder | |||
| aaareadme.txt | 2018-08-30 | 5.4 kB | |
| archive_serv_kit01.zip | 2018-08-30 | 44.5 kB | |
| Totals: 2 Items | 50.0 kB | 0 | |
29-AUG-2018
Archive_serv is a DECnet-based scriptserver for the OSU HTTP server that
lets client browse the contents of zip files and tar files as if they had
been extracted into the file system. It is a replacement for the original
targate (targazer) program.
Client request components:
http://hostname/tarserv/JOHN-1_7_8.TAR/john-1.7.8/doc/FAQ
http://hostname/zipserv/http_3-14a.zip/base_code/
( root )( archive )( module )
root Path prefix that triggers the server to hand off this request
to the archive_serv scriptserver for processing (see
configuration steps below). Note that root ends in aslash.
archive File name of a tar file or zip file found in directory linked
to root (see archive dir. below). The filename will not be
case sensitive if residing on an ODS2/5 volume. Specifying an
explicit file version with a ; will inhibit welcome file
processing when requesting module directories.
If no archive is specified, archive_serv will return a
list of archive files in that root with links to browse
those archives.
module Module within the archive to extract, note that the module name
is case sensitive. The module list in an archive is flat,
but archive_serv presents a logical directory heirarchy using
slash (/) as the directory delimiter. If the module name ends
in a slash, a listing of modules and sub-directories within
that logical directory are returned.
When returning a module, the scriptserver will examine the
suffix of the module name and attempt to return the correct
content-type HTTP header (e.g. .html -> text/html). For
directory listings, the directory is searched for a welcome
file (i.e. index.html) and that file is returned if found.
Building and installation:
The source code provided in this kit requires a zlib library be available
on the builder's system. By default, libz:libz32_ev56.olb is used for
the link (see step 3). Zipscan.c expects the directory containing the
zlib.h logical to be assigned the logical name LIBZ.
Steps:
1. Set default to the top level of the HTTP server source tree and unzip
the archive_serv.zip file. You have to unpack the archive files in
the right directory since several of the [.base_code] server modules
are also used in the scriptserver.
2. Copy wwwzip.com to the login directory of the web server account.
3. Set default to the [.base_code] sub-directory. Edit archive_serv.opt
if zlib library is other than libz:libz32_ev56.olb (note that using a
shareable image for the zlib functions is not reccomended since
archive_serve.exe is intended to be installed with privileges)..
4. Invoke the build script archive_serv_build.com to make
archive_serv.exe image.
5. Copy archive_serv.exe to www_root:[system], which is where wwwzip.com
assumes this file resides.
Basic configuration (transient activation for testing):
1. Create directory to hold tar and/or zip files to be served. Files must
be readable by web server account.
2. Modify OSU server's http_scripts.conf file.
Add one or more exec rules defining prefixes that invokes the scriptserver:
exec /zipserv/* sys$node::"0=WWWZIP"zip_archive:
exec /tarserv/* sys$node::"0=WWWZIP"www_root:[tar_files]
(URL path) (DECnet object spec)(archive directory)
exec rule compoonents:
URL path Server matches this string against the URL path in HTTP
requests. The part that matches the '*' is parsed with
the first element specifying the archive filename and
the remainder specifying the module within that archive.
(e.g. /zipserv/access_logs.zip/2015/january/03.log)
DECnet task Server connects to this object (task WWWZIP) which
is configured to run the archive_gate scriptserver
program.
archive dir. Immediately following the DECnet task is the directory
containing the files to be served (see step 1). The
archive file name parsed from the URL path is appended
to the directory string and opened. The directory may
be specified as a search list logical followed by
a colon.
3. Restart the HTTP server to apply the configuration changes.
Advanced configuration (persistent activation):
1. Update www_system:http_systartup.com
Modify this file so that the privileged account that starts the
web server will do the following actions:
$ install add www_system:archive_serv.exe /priv=(sysnam,sysprv,netmbx)
$ define/system/exec www_zipserv_object WWWZIP
$ server_user = "WWW_SERVER" ! match to local configuration.
$ define/system www_zipserv_access 'f$trnlnm("SYS$NODE")''server_user'
Optionally define other logicals used to specify the archive root
directories:
$ define/system zip_archive www_root:[zip_files],dist_disk:[zips]
The main configuation file read by archive_serv.exe is embedded within
WWWZIP.COM (specified as sys$input). It uses a PORT rule to specify
the exec mode logical to translate to get the DECnet task name for
persitent operation.
2. Create optional archive.hdr files. When generating a list of .tar and .zip
files, the root directory is checked for a archive.hdr file and if found
its contents are inserted in place of the "Archives available" header
lines. The file contents are truncated at 4000 characters.