VideoList
Self upgrader
network interface

 

 

This is the proposal, dated 12th August 2001.
The implemented self-upgrader follows this proposal.

Self upgrade connectivity extension (proposal)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

The VideoList URL is "http://www.heyrick.co.uk/budgiesoft/videolist/".

It is proposed to have an unlinked subdirectory called "upgrade". Within this
subdirectory will be three files:

   1. "notes.txt"
      A text file containing notes on the upgrade.

   2. "upgrade.raw"
      The actual upgrade file.

   3. "version.txt"
      A text file containing:
        <major;two bytes>.<minor;two bytes><nl><oldmajor;2>.<oldminor;2><nl><size><nl>
      like:
      --8<--------
      01.37
      01.28
      168960

      --8<--------
      Would specify that the upgrade currently available is for version 1.37.
      This upgrade will successfully upgrade a version of VideoList LATER
      than 1.28.
      The upgrade file size is 168960 bytes (165K).


Other files may exist, such as:

   4. "index.html"
      Will be a spoof '404 Not Found' error. Only the more aware will notice
      that it is the index which is saying the index doesn't exist. :-)

   5. doupg.php3
      For making a record of upgrades requested, times, etc. This will then
      redirect to the appropriate file.



VideoList will include a VERY simple HTTP fetcher (using the Resolver and
Sockets (directly)); thus to be compatible with any Acorn-stack-derivation
(Argo, ANT, Freenet, Acorn etc).


Upon a request to check for updates, VideoList will download the "version.txt" file,
and process it using pseudocode similar to:

   if (videolist_version == upgrade_version)
      report("No new upgrade is available at this time.")
   else
   {
      if (videolist_version >= old_version)
         upgrade_prepare();
      else
         report("This version of VideoList is too old to upgrade. Please contact
                 support@heyrick.co.uk for assistance.")
   }


Upgrade preparation will give you a choice of fetching the upgrade, or the
notes. The size is provided in the versions file, so the user has an idea of
the expected size of the download.


If user wishes to fetch the notes, VideoList will download them, then
Filer_Run to cause them to be loaded into a text editor. VideoList WILL
ALWAYS SetType the notes to be &FFF so that executable content cannot
be run.
After this, VideoList brings up the 'view notes / upgrade' prompt again.


If user wishes to fetch the upgrade, VideoList will download it and, if
download okay, will invoke the self-upgrade facilities. This will stall the
system, though only for a short time as the process is fairly quick.


There is no need to include file reference information on the WWW site, as
the upgrade file contains its own CRC checking.



Stack stuff:
All communications will be on port 80. There is no provision for others (like
8000 or 8080).

The header sent will be in the form:

--8<--------
GET /software/videolist/upgrade/file.extn HTTP/1.0
Host: www.heyrick.co.uk
Accept: */*
User-Agent: VideoList-Self-Upgrader; vlsufetch/#.##
--8<--------

OR in the form:

--8<--------
GET /software/videolist/upgrade/file.extn?user=<user>&vers=<vers> HTTP/1.0
Host: www.heyrick.co.uk
Accept: */*
User-Agent: VideoList-Self-Upgrader; vlsufetch/#.##
--8<--------

#.## is the fetcher version - this should be a number, such as "0.06".

The domain, path, and filename are built into VideoList.

VideoList, when requesting an upgrade, will supply a username and version
information. This is currently ignored, but a later version may use a php3
file to track upgrades. This allows us to determine what versions are being
upgraded, how you judge upgrades, and how often you look for upgrades.
In addition, it may be possible to write a smarter system, where it will look
at which version of VideoList you are using, and direct you to the most
appropriate upgrade file.
This facility allows us to make a site which serves you better.

The server sends two responses as it does not re-send the user name/version
following a redirect.


The reply from the server (actual reply from Argonet) is something like:
--8<--------
HTTP/1.1 200 OK
Date: Fri, 05 Feb 1999 12:02:56 GMT
Server: Apache/1.2.4
Last-Modified: Sun, 31 Jan 1999 15:28:11 GMT
ETag: "170882-2a40-36b4768b"
Content-Length: 18
Accept-Ranges: bytes
Connection: close
Content-Type: text/plain

00.21
00.19
89599
AE9F
2043
--8<--------

Note that two extra lines were returned. This is an undocumented addition to
the protocol - the fourth line is the CRC for the upgrade file, and the fifth
line is the size of the notes file.
Neither of these are currently used by the VLSU system, but you are welcome to
utilise them in your own fetchers (if you write one!).

 

Return to VideoList index


Copyright © 2001 Richard Murray