@(#) $Id: Notify.htm,v 1.1 2004/08/29 09:56:58 svante Exp $
A mechanism is provided for the user to request notifications of updates and security patches. It is also concurrently used to collect some very basic and non-intrusive information about the installation base. No personal information is sent.
The component is currently implemented as part of the NSIS install script, and as a separate script based on the same code. What they both do is build a request string and perform a single HTTP GET with a URL including a query. A typical request may look like this:
http://notify.mycrypt.com/notify.asp?email=secret.agent@fbi.gov&Update=1&Program=MyCrypt&Previous=1.5.2&Version=1.5.4&Windows=WinXP&Language=1040&After=1
A http URL is composed like this:
http_URL = "http:" "//" host [ ":" port ] [ abs_path [ "?" query ]]
The notify component will treat the part up until the "?" as an arbitrary string to be defined, so this can basically be anything, but typically it'll be a FQDN like notify.mycrypt.com, followed by the absolute path to a script or something else.
The query consists of a number of parameter assignments, separated by the ampersand (&) character. They may appear in any order and in any combination, except no parameters will be repeated.
The e-mail address specified by the user. This is not validated, and may be erroneous if a user insists. Some basic checks are made to determine that it contains at least one "." and one "@".
May take the value '0' or '1', normally will not be included if the value is '0'. A '1' indicates that this is an upgrade of a previous installation.
The name of the program being installed, perhaps 'MyCrypt'.
The version of the previous installation being upgraded. See 'Version' below for the format used.
The version being installed.
Versions consists of for decimal values for 'major', 'minor', 'lesser' and 'patch'. Version numbers are in a strictly increasing sequence, thus version 1.5 Beta 4.1 means the first beta version of what will likely become version 1.5.5, or possibly 1.6.
This is in the format of n.n[.|b|d]n.n . A typical example may be '1.5.4', or '1.5b4.2'. The 'b' indicates that it is a beta version. A 'd' indicates that it's a development snapshot. Numbers may be >= 10, although it's unlikely...
The version of Windows used by the user, identified by a string. Currently the value may be one of:
Win95, Win98, WinME, NT3, NT4, Win2K, WinXP, W2003 or finally WinXX for unknown future revisions.
The language choosen by the user for the program. It is a numerical code corresponding to the language codes used by Windows. Typical values include:
1031 - German
1033 - English
1034 - Spanish
1036 - French
1040 - Italian
1053 - Swedish
Tells when the request was made - during the initial install, or as a
separate use of the 'Notify Me' utility. The possible values are '0', '1'
and '2' currently. '0' means that the request was made during a regular
installation. '1' means that the Notify Me wizard was called after the
main installation. '2' means that a link in an notification mail was used to
change the preference.