Home

Bookmark and Share

DynSite Icon DynSite

Dynamic DNS Service Plug-in Specifications

Revision: 1.08 / 1.11.799.1+ / June 2006
Revision: 1.07 / 1.11.758.5+ / June 2004
Revision: 1.06 / 1.11.731.4+ / September 2003
Revision: 1.05 / 1.11.723.3+ / June 2003
Revision: 1.04 / 1.11 / May 2002

(Note: DynSite V1.10 is only compatible with revision 1.03 of the plug-in specifications.)

 

Required Sections

Version Section

This section is used for the identification of the format (compatible with the INF file format.) It must only contain the Signature line.

Example:

[Version]
Signature="$CHICAGO$"

 

Service Section

The parameters in this section describe the dynamic DNS service.

Syntax:

Account=<URL>
[Required] Specifies the URL of the login page of the service.

Name=<name of service>[,<previous name>]
[Required] Specifies the short name or the domain name of the service. This string is used for the storage of the data in the Registry. This string must not conflict with the names of other plug-ins. [1.04] The <previous name> parameter is optional, it tells the program to rename the registry key from the previous name to the new short name. The new short name will also be used to export the settings.

WebSite=<URL>
[Required] Specifies the URL of the home page of the service.

Advanced=<0 | 1> [1.08]
[Optional] If this parameter is set to 1, this tells DynSite that the service requires a service-specific parameter (usually a host id or a record id) for the updates to complete successfully. In that case, DynSite shows a message in the Account Assistant that invites the user to open the Advanced properties to set the required parameter after he/she has configured a new host name.
Default is false (0)

AppendPort=<0 | 1> [1.04]
[Optional] This parameter is only useful if the EnablePort parameter is set to true (1). If a port number is not null then it will be appended to the IP address during the update (e.g. if the IP address is 195.1.2.3 and the port number is 8080, the updated address will be in the form 195.1.2.3:8080.) If you want to use ports but not have them appended to the address, do not add this parameter to the plug-in (or set it to 0) and use the %port parameter explained below.
Default is false (0), HTTP ports are not appended to the addresses.

Authentication=<authentication>  [1.04]
[Optional] Specifies the authentication method. This option can be set to the following values:

0: No authentication. Login and password are passed as clear text.
1: Basic authentication, login and password are Base64 encoded. (default)
2: GnuDIP authentication. The password is encoded with the MD5 algorithm.

Compatibility=<version>  [1.04]
[Optional] Specifies the minimal build number of the program which is required to support this plug-in. If the user runs an older version, the plug-in won't be loaded. If you use features available only in release 1.06 and later, you have to add this line to the service section:

Compatibility=1.11.731.4

Description=<service description> [1.04]
[Optional] This is the full name of the service like it will appear in the tree of the Services tab in Setup. If this parameter is not provided, the Name parameter will be used.

EnablePort=<0 | 1> [1.04]
[Optional] If this parameter is set to 1, DynSite will show HTTP port configuration boxes in the user interface. This enables DynSite to not only update IP addresses but also HTTP ports.
Default is false (0), HTTP ports are disabled and not visible in the interface.

Format=<format>
[Optional] Specifies the way the parameters will be appended to the update script. 3 different formats are supported. Default is 0. The supported formats are:

0: http://.../update.asp?parm1=xxx&parm2=yyy   (default)
1: http://.../update.php3/xxx/yyy/
2: http://.../update.exe?xxx&yyy

IgnoreEmptyParams=<0 | 1>
[Optional] Set this parameter to 0 if you want DynSite to send empty parameters (e.g. mx=) in HTTP updates.
Default is true (1), DynSite won't send any empty parameters.

MaxHostNames=<number>
[Optional] Specifies the maximum number of hosts that a user can defined under a single account.
Default is (virtually) unlimited.

Transport=<transport>
[Optional] Specifies the update method for the service. Two transports are supported either:

1:  HTTP request   (default)
2:  Proprietary socket protocol, <cr> separated commands  (not documented)

 

Examples:

[Service]
Name="Domain Host Services"
WebSite=http://www.dhs.org
Account=http://members.dhs.org/nic/
MaxHostNames=6
IgnoreEmptyParams=0

 

Domains Section

This section enumerates the domain names available at the dynamic DNS service or optionally *owndomain which specifies that the service can update custom domain names. At least a  Static or a Dynamic section must follow depending of the type of the domains listed.

Syntax:

<domain name | *owndomain>=<static | dynamic | both>[,default]

The left side of the line is the domain name and the right side is the type of domain. both means that the domain or host may be either static or dynamic (when available, this is configurable in your account from the Web site of the DDNS service.) You can also append default at the end of the line to specify that a domain will be selected by default in the Domain Name drop-down list of the Host or Domain Properties.

 

Example:

[Domains]
dhs.org=static
dyndns.org=both,default
dyn.dhs.org=dynamic,default
*owndomain=dynamic

 

Optional Sections

The following sections are optional i.e. they are not all required but at least one Static or Dynamic section must be declared if a domain in the Domains section is defined as static or dynamic respectively. If a domain is defined as both then both a Static and a Dynamic section must be declared. A related Static-Common or Dynamic-Common section is required if respectively a Static or a Dynamic section exists. On the other hand the Static-Online / Static-Offline or Dynamic-Online / Dynamic-Offline sections are fully optional.

Static and Dynamic Sections

This section specifies the script used to update a static or a dynamic host or domain name.

Syntax:

Script=<URL>
[Required] This parameter defines the URL of the script used to do the update.

MetaTag=<meta-tag>
[Optional] This meta-tag will be parsed instead of the whole HTML file for the reading of the completion status of the update. The content of this meta-tag will be compared with the responses listed in this section.

Response=<completion string>[, <severity>[, <interpretation>]]
[Optional] You may list one or many Response lines. If no Response line is specified, DynSite will assume that the updates always succeed. The completion string defines a string to search for in the response from the script and that will tell how the update completed.

Note: the # character is a placeholder in the completion string. It can represent any character which appears at its position, the response will be recognized as long as all the other characters match.

Severity. If the specified string indicates a success you don't have to append any severity code, by default a response string is assumed to represent a successful update. If the string specifies a failure then you must specify a severity code. It will tell DynSite how to handle the error and whether it must attempt other updates or to wait for the host to be cleared first.

Value

Meaning
0 Successful update (may be omitted.)
1 Failure, must try again.
2 Severe failure, must not attempt any other update until the host is cleared.

 

Interpretation. (Revision 1.04 and later only) The interpretation code describes the meaning of the completion string so that DynSite can report a meaningful error message instead of a generic update failed message.

Value

Meaning
0 Successful update (may be omitted.)
1 The  update failed.
2 The update request is invalid.
3 The credentials for the account are invalid.
4 The password for the account is incorrect.
5 The user specified in the account is unknown.
6 The account is blocked (usually because of abuse.)
7 The host is blocked.
8 Unauthorized host, the host does not belong to the user.
9 The host was not found, it probably does not exist.
10 The host name is invalid.
11 The address is invalid. (This should never happen.)
12 Some data are invalid.
13 Updates are too frequent.
14 Something failed on the server side.
15 The server is in maintenance mode.

 

Examples:

[Static]
Script=http://members.dhs.org/nic/hosts
Response="Host updated successfully"
Response="Invalid password",2,4
[Dynamic]
Script=http://members.dyndns.org/nic/update
MetaTag="update"
Response="good",0
Response="nochg",0
Response="badauth",2,3

 

Common, Online and Offline Sections

These are the sections that define the parameters to pass to the update script. The Common section will be used in all updates. The Online and Offline sections on the other hand will be used only when a host is going online or offline respectively.

For static host updates, the parameters are defined under the following sections: Static-Common, Static-Online and Static-Offline.

For dynamic host updates, the parameters are defined under the following sections: Dynamic-Common, Dynamic-Online and Dynamic-Offline.

There are two kinds of parameters: non-editable parameters i.e. parameters that cannot be changed by the user and editable parameters i.e. parameters that will show in the Service-Specific Parameters list of the Host or Domain Properties.

 

Non-editable parameters

Syntax:

<parameter>=<value | %variable> [,,<options>]

There are two kinds of non-editable parameters, static parameters i.e. parameters that have always the same values, and dynamic parameters i.e. parameters that will be passed variable values. DynSite defines the following variables:

Variable Definition
challenge a challenge string in the hexadecimal notation (if any). Same as salt in most cases.
dnsname the fully qualified domain name of the host e.g. myhost.dyndns.org.
domain the domain name of a fully qualified domain name e.g. dyndns.org.
gtld the generic top-level domain e.g. org, net, fr, au, uk
hostname the host name as defined in the Host Name field of Host or Domain Properties e.g. myhost
ipaddr either the detected IP address or an Alternate or Offline IP address as defined in the Addresses section of Host or Domain Properties.
lastip [1.08] last IP address that was successfully assigned to a host name or 0.0.0.0
login the login of the account to which the host belongs.
loguser [1.07] the name of the user logged on to the connection used to update the hostname.
md5password [GnuDIP authentication] the MD5 digested password (using the salt string) in the hexadecimal notation
[1.06] obsolete, use the syntax:  %password,,gnudip
online update mode: 1 = online, 0 = offline
owndomain flag which returns 1 if the domain is a personal domain. It returns 0 if the domain is owned by the DDNS service.
password the password of the account to which the host belongs.

[1.06] In this release, password accepts an optional options parameter. This currently is the only type to accept options. It is used to define the hash algorithm to apply to the password. If none is specified the password is sent in cleartext.

Supported hash algorithms are: gnudip, md5, sha256, sha384, sha512.

port either the Default Port or an Alternate or Offline port as defined in the Addresses section of Host or Domain Properties. EnablePort must be set to 1 in the Service section for this parameter to be meaningful.
pswhash the 128-bit hash code of the password in hexadecimal notation.
[1.06] obsolete, use the syntax:  %password,,md5
salt [GnuDIP authentication] the salt string
sign [GnuDIP authentication] the signature string
state the update state, either "online" or "offline" (without quotes)
subdomain the domain name without the top-level domain e.g. dyndns
tick [1.07] the number of milliseconds that have elapsed since the system was started (note: wraps after 49.7 days)
timegen [GnuDIP authentication] the time of salt generation
tld the top-level domain e.g. org, net, fr, com.au, co.uk
uptime [1.07] the number of days, hours, minutes and seconds that have elapsed since DynSite was started
useragent the useragent string of the application e.g. DynSite/1.11.620.4

 

Examples:

[Static-Common]
type=4
hostscmd=edit
domain=%domain
hostname=%hostname
pass=%password,,md5 [1.06]

 

Editable parameters

Syntax:

<parameter>=<value>,<number | string | boolean | cname | list>

There are 5  kinds of editable parameters, numeric or boolean parameters and strings, cname or lists. For number and string, value defines a default value for the parameter followed by number or string respectively.

For boolean, cname and list, value is a text string between quotes. The options of the list are separated with a | sign. An asterisk may precede the default value in the list if the default option is not the frst one. If no asterisk is specified the first option will be the default one.

Boolean must have only two options, the first one defines the true state and the second one, the  false state.

For cname, value may also be %ipaddr which means that the current IP address will be passed as a parameter instead of a CNAME.

[1.05] A @ sign may be placed before the parameter if its name must not appear in the URL passed to the server.

 

Examples:

[Dynamic-Common]
ttl=60,number
type="NS|*A|MX|NS|NONE",list
address=%paddr,cname
cloak="Y|*N",boolean
cloak_title="",string
@id="",string

 

String Section

This optional section specifies friendly names for the editable parameters. If a friendly name is defined in this section for an editable parameter, the parameter will appear with its friendly name in the Service-Specific Parameters list of the Host or Domain Properties.

Syntax:

<parameter>=<friendly name>

 

Example:

[Strings]
mx="Mail Exchanger"