Download Latest Version sqlite3_vms_055.zip (6.1 MB)
Email in envelope

Get an email when there's a new version of vms-ports

Home / osu-server-archives / archive_serv
Name Modified Size InfoDownloads / 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.
Source: aaareadme.txt, updated 2018-08-30