786 lines
24 KiB
HTML
786 lines
24 KiB
HTML
|
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
|
||
|
<html>
|
||
|
<head>
|
||
|
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
|
||
|
<meta name="Copyright" content="Copyright (c) 2006 by IBM Corporation">
|
||
|
<title>Update DNS API (QTOBUPDT)</title>
|
||
|
<!-- Begin Header Records ========================================== -->
|
||
|
<!-- All rights reserved. Licensed Materials Property of IBM -->
|
||
|
<!-- US Government Users Restricted Rights -->
|
||
|
<!-- Use, duplication or disclosure restricted by -->
|
||
|
<!-- GSA ADP Schedule Contract with IBM Corp. -->
|
||
|
<!-- COMM4 SCRIPT A converted by B2H R4.1 (346) (CMS) by V2DCIJB at -->
|
||
|
<!-- RCHVMW2 on 1 Jun 1999 at 17:32:50 -->
|
||
|
<!-- Change History: -->
|
||
|
<!-- YYMMDD USERID Change description -->
|
||
|
<!--File Edited December, 2001 =========================================== -->
|
||
|
<!--End Header Records ============================================== -->
|
||
|
<link rel="stylesheet" type="text/css" href="../rzahg/ic.css">
|
||
|
</head>
|
||
|
<body>
|
||
|
<a name="Top_Of_Page"></a>
|
||
|
<!-- Java sync-link ================================================= -->
|
||
|
<script type="text/javascript" language="Javascript" src="../rzahg/synch.js">
|
||
|
</script>
|
||
|
|
||
|
<h2>Update DNS API (QTOBUPDT)</h2>
|
||
|
|
||
|
<div class="box" style="width: 70%;">
|
||
|
Required Parameter Group:<br>
|
||
|
<!-- iddvc RMBR -->
|
||
|
<br>
|
||
|
<table width="100%">
|
||
|
<tr>
|
||
|
<td align="center" valign="top" width="10%">1</td>
|
||
|
<td align="left" valign="top" width="50%">Update instructions</td>
|
||
|
<td align="left" valign="top" width="20%">Input</td>
|
||
|
<td align="left" valign="top" width="20%">Char(*)</td>
|
||
|
</tr>
|
||
|
|
||
|
<tr>
|
||
|
<td align="center" valign="top">2</td>
|
||
|
<td align="left" valign="top">Length of update instructions</td>
|
||
|
<td align="left" valign="top">Input</td>
|
||
|
<td align="left" valign="top">Binary(4)</td>
|
||
|
</tr>
|
||
|
|
||
|
<tr>
|
||
|
<td align="center" valign="top">3</td>
|
||
|
<td align="left" valign="top">Format name of update instructions</td>
|
||
|
<td align="left" valign="top">Input</td>
|
||
|
<td align="left" valign="top">Char(8)</td>
|
||
|
</tr>
|
||
|
|
||
|
<tr>
|
||
|
<td align="center" valign="top">4</td>
|
||
|
<td align="left" valign="top">Update key override</td>
|
||
|
<td align="left" valign="top">Input</td>
|
||
|
<td align="left" valign="top">Char(*)</td>
|
||
|
</tr>
|
||
|
|
||
|
<tr>
|
||
|
<td align="center" valign="top">5</td>
|
||
|
<td align="left" valign="top">Length of update key override</td>
|
||
|
<td align="left" valign="top">Input</td>
|
||
|
<td align="left" valign="top">Binary(4)</td>
|
||
|
</tr>
|
||
|
|
||
|
<tr>
|
||
|
<td align="center" valign="top">6</td>
|
||
|
<td align="left" valign="top">Format name of update key override</td>
|
||
|
<td align="left" valign="top">Input</td>
|
||
|
<td align="left" valign="top">Char(8)</td>
|
||
|
</tr>
|
||
|
|
||
|
<tr>
|
||
|
<td align="center" valign="top">7</td>
|
||
|
<td align="left" valign="top">Update key name</td>
|
||
|
<td align="left" valign="top">Input</td>
|
||
|
<td align="left" valign="top">Char(*)</td>
|
||
|
</tr>
|
||
|
|
||
|
<tr>
|
||
|
<td align="center" valign="top">8</td>
|
||
|
<td align="left" valign="top">Length of update key name</td>
|
||
|
<td align="left" valign="top">Input</td>
|
||
|
<td align="left" valign="top">Binary(4)</td>
|
||
|
</tr>
|
||
|
|
||
|
<tr>
|
||
|
<td align="center" valign="top">9</td>
|
||
|
<td align="left" valign="top">IP address of DNS server</td>
|
||
|
<td align="left" valign="top">Input</td>
|
||
|
<td align="left" valign="top">Char(15)</td>
|
||
|
</tr>
|
||
|
|
||
|
<tr>
|
||
|
<td align="center" valign="top">10</td>
|
||
|
<td align="left" valign="top">Miscellaneous attributes</td>
|
||
|
<td align="left" valign="top">Input</td>
|
||
|
<td align="left" valign="top">Char(*)</td>
|
||
|
</tr>
|
||
|
|
||
|
<tr>
|
||
|
<td align="center" valign="top">11</td>
|
||
|
<td align="left" valign="top">Length of miscellaneous attributes</td>
|
||
|
<td align="left" valign="top">Input</td>
|
||
|
<td align="left" valign="top">Binary(4)</td>
|
||
|
</tr>
|
||
|
|
||
|
<tr>
|
||
|
<td align="center" valign="top">12</td>
|
||
|
<td align="left" valign="top">Format name of miscellaneous attributes</td>
|
||
|
<td align="left" valign="top">Input</td>
|
||
|
<td align="left" valign="top">Char(8)</td>
|
||
|
</tr>
|
||
|
|
||
|
<tr>
|
||
|
<td align="center" valign="top">13</td>
|
||
|
<td align="left" valign="top">Result code</td>
|
||
|
<td align="left" valign="top">Output</td>
|
||
|
<td align="left" valign="top">Binary(4)</td>
|
||
|
</tr>
|
||
|
|
||
|
<tr>
|
||
|
<td align="center" valign="top">14</td>
|
||
|
<td align="left" valign="top">Error code</td>
|
||
|
<td align="left" valign="top">I/O</td>
|
||
|
<td align="left" valign="top">Char(*)</td>
|
||
|
</tr>
|
||
|
</table>
|
||
|
|
||
|
<br>
|
||
|
Program Name: QDNS/QTOBUPDT<br>
|
||
|
<!-- iddvc RMBR -->
|
||
|
<br>
|
||
|
Default Public Authority: *USE<br>
|
||
|
<!-- iddvc RMBR -->
|
||
|
<br>
|
||
|
Threadsafe: No<br>
|
||
|
<!-- iddvc RMBR -->
|
||
|
<br>
|
||
|
</div>
|
||
|
|
||
|
<p>The <strong>Update DNS API (QTOBUPDT)</strong> allows the caller to send one
|
||
|
or more update instructions to an iSeries dynamic DNS (Domain Name System)
|
||
|
server. The instructions allow for adding or deleting DNS Resource Records
|
||
|
(RRs). The instructions can optionally include any number of prerequisite
|
||
|
conditions that must be true for the actual updates to take place. This API is
|
||
|
based on the Berkeley Internet Name Domain (BIND) version 8.2.x implementation
|
||
|
of dynamic DNS updates. Therefore, it also can be used to send update requests
|
||
|
to DNS servers running on other operating system platforms that conform to BIND
|
||
|
Version 8 update protocols.</p>
|
||
|
|
||
|
<p><strong>i5/OS Option 31 (Domain Name System)</strong> must be installed to
|
||
|
use this API.</p>
|
||
|
|
||
|
<br>
|
||
|
<h3>Authorities and Locks</h3>
|
||
|
|
||
|
<p>If an Integrated File System (IFS) stream file name is specified for any of
|
||
|
the parameters that allow it, then the user will need *R authority to the
|
||
|
stream file and *X authority to the directories in the path of the stream
|
||
|
file.</p>
|
||
|
|
||
|
<br>
|
||
|
<h3>Required Parameter Group</h3>
|
||
|
|
||
|
<dl>
|
||
|
<dt><strong>Update instructions</strong></dt>
|
||
|
|
||
|
<dd>INPUT; CHAR(*)
|
||
|
|
||
|
<p>One or more instructions that define which DNS resource records should be
|
||
|
updated (added or deleted) for a specific DNS domain, as well as any
|
||
|
prerequistes that must be true for those updates to take place. Depending on
|
||
|
which format name for this parameter is chosen, this parameter will either
|
||
|
contain the actual update instructions themselves or the name of an Integrated
|
||
|
File System file that contains the update instructions.</p>
|
||
|
|
||
|
<p>The syntax for the update instructions themselves is the same as that
|
||
|
defined by BIND 8.2.3 for dynamic DNS updates, which it uses as input to its
|
||
|
<strong>nsupdate</strong> program. Please see <a href="#HDRUPDSyn">Update
|
||
|
Instructions Syntax</a> for descriptions of the update instructions
|
||
|
themselves.</p>
|
||
|
</dd>
|
||
|
|
||
|
<dt><strong>Length of update instructions</strong></dt>
|
||
|
|
||
|
<dd>INPUT; BINARY(4)
|
||
|
|
||
|
<p>The length of the data passed in the Update instructions parameter. If the
|
||
|
length is larger than the size of the Update instructions parameter, the
|
||
|
results may not be predictable.</p>
|
||
|
</dd>
|
||
|
|
||
|
<dt><strong>Format name of update instructions</strong></dt>
|
||
|
|
||
|
<dd>INPUT; CHAR(8)
|
||
|
|
||
|
<p>The format of the data being passed in the Update instructions
|
||
|
parameter.</p>
|
||
|
|
||
|
<table cellpadding="3">
|
||
|
<!-- cols="15 85" -->
|
||
|
<tr>
|
||
|
<td align="left" valign="top"><em>DNSU0100</em></td>
|
||
|
<td align="left" valign="top">Data passed represents the actual data the API should
|
||
|
use.</td>
|
||
|
</tr>
|
||
|
|
||
|
<tr>
|
||
|
<td align="left" valign="top"><em>DNSU0200</em></td>
|
||
|
<td align="left" valign="top">Data passed represents the path name of an Integrated File
|
||
|
System file that contains the data the API should use.</td>
|
||
|
</tr>
|
||
|
|
||
|
<tr>
|
||
|
<td align="left" valign="top"><em>DNSU0300</em></td>
|
||
|
<td align="left" valign="top">Data passed represents the name of a file that contains the
|
||
|
data the API should use. The file name is in an i5/OS API path name structure.
|
||
|
For the format of this structure, see <a href="../apiref/pns.htm">Path name
|
||
|
format</a>.</td>
|
||
|
</tr>
|
||
|
</table>
|
||
|
|
||
|
<br>
|
||
|
</dd>
|
||
|
|
||
|
<dt><strong>Update key override</strong></dt>
|
||
|
|
||
|
<dd>INPUT; CHAR(*)
|
||
|
|
||
|
<p>This API automatically searches the default DNS dynamic update directory
|
||
|
/QIBM/UserData/OS400/DNS/_DYN for a dynamic update transaction signature (TSIG)
|
||
|
key for the specific domain being updated. The caller can override the default
|
||
|
logic and provide a transaction signature key directly to the API by using this
|
||
|
Update key override parameter. Depending on which format name for this
|
||
|
parameter is chosen, this parameter will either contain the actual key itself
|
||
|
or the path name of an Integrated File System file that contains the key.</p>
|
||
|
</dd>
|
||
|
|
||
|
<dt><strong>Length of update key override</strong></dt>
|
||
|
|
||
|
<dd>INPUT; BINARY(4)
|
||
|
|
||
|
<p>The length of the data passed in the Update key override parameter. If the
|
||
|
length is larger than the size of the Update key override parameter, the
|
||
|
results may not be predictable.</p>
|
||
|
</dd>
|
||
|
|
||
|
<dt><strong>Format name of update key override</strong></dt>
|
||
|
|
||
|
<dd>INPUT; CHAR(8)
|
||
|
|
||
|
<p>The format of the data being passed in the Update key override
|
||
|
parameter.</p>
|
||
|
|
||
|
<table cellpadding="3">
|
||
|
<!-- cols="15 85" -->
|
||
|
<tr>
|
||
|
<td align="left" valign="top"><em>DNSU0100</em></td>
|
||
|
<td align="left" valign="top">Data passed represents the actual data the API should
|
||
|
use.</td>
|
||
|
</tr>
|
||
|
|
||
|
<tr>
|
||
|
<td align="left" valign="top"><em>DNSU0200</em></td>
|
||
|
<td align="left" valign="top">Data passed represents the path name of an Integrated File
|
||
|
System (IFS) file that contains the data the API should use.</td>
|
||
|
</tr>
|
||
|
|
||
|
<tr>
|
||
|
<td align="left" valign="top"><em>DNSU0300</em></td>
|
||
|
<td align="left" valign="top">Data passed represents the name of a file that contains the
|
||
|
data the API should use. The file name is in an i5/OS API path name structure.
|
||
|
For the format of this structure, see <a href="../apiref/pns.htm">Path name
|
||
|
format</a>.</td>
|
||
|
</tr>
|
||
|
</table>
|
||
|
|
||
|
<br>
|
||
|
</dd>
|
||
|
|
||
|
<dt><strong>Update key name</strong></dt>
|
||
|
|
||
|
<dd>INPUT; CHAR(*)
|
||
|
|
||
|
<p>If the caller is providing a transaction signature key in the update key
|
||
|
override parameter, then the update key name parameter must contain the name of
|
||
|
the update key.</p>
|
||
|
</dd>
|
||
|
|
||
|
<dt><strong>Length of update key name</strong></dt>
|
||
|
|
||
|
<dd>INPUT; BINARY(4)
|
||
|
|
||
|
<p>The length of the data passed in the Update key name parameter. If the
|
||
|
length is larger than the size of the Update key name parameter, the results
|
||
|
may not be predictable.</p>
|
||
|
</dd>
|
||
|
|
||
|
<dt><strong>IP address of DNS server</strong></dt>
|
||
|
|
||
|
<dd>INPUT; CHAR(15)
|
||
|
|
||
|
<p>The IP address, in dotted decimal form, of the DNS server where the API
|
||
|
should start searching for the primary master DNS server for the zone being
|
||
|
updated. The parameter must be right padded with blanks if the data does not
|
||
|
take up the entire length.</p>
|
||
|
|
||
|
<p>If this parameter is all blanks on input, the API will automatically search
|
||
|
the network to determine where the primary master DNS server is located for the
|
||
|
zone that contains the domain being updated.</p>
|
||
|
</dd>
|
||
|
|
||
|
<dt><strong>Miscellaneous attributes</strong></dt>
|
||
|
|
||
|
<dd>INPUT; CHAR(*)
|
||
|
|
||
|
<p>Optional miscellaneous runtime attributes.</p>
|
||
|
</dd>
|
||
|
|
||
|
<dt><strong>Length of miscellaneous attributes</strong></dt>
|
||
|
|
||
|
<dd>INPUT; BINARY(4)
|
||
|
|
||
|
<p>The length of the data passed in the Miscellaneous attributes parameter. If
|
||
|
the length is larger than the size of the Miscellaneous attributes parameter,
|
||
|
the results may not be predictable.</p>
|
||
|
</dd>
|
||
|
|
||
|
<dt><strong>Format name of miscellaneous attributes</strong></dt>
|
||
|
|
||
|
<dd>INPUT; CHAR(8)
|
||
|
|
||
|
<p>The format of the data being passed in the Miscellaneous attributes
|
||
|
parameter.</p>
|
||
|
|
||
|
<table cellpassing="3">
|
||
|
<!-- cols="15 85" -->
|
||
|
<tr>
|
||
|
<td align="left" valign="top"><em>DNSA0100</em></td>
|
||
|
<td align="left" valign="top">Miscellaneous runtime attributes. Refer to <a href=
|
||
|
"#HDRDNSA0100">DNSA0100 Format</a> for details on the format.</td>
|
||
|
</tr>
|
||
|
</table>
|
||
|
|
||
|
<br>
|
||
|
</dd>
|
||
|
|
||
|
<dt><strong>Result code</strong></dt>
|
||
|
|
||
|
<dd>OUTPUT; BINARY(4)
|
||
|
|
||
|
<p>Whether the API processed successfully or not, and if not, what type of
|
||
|
problem was encountered. Any code that is not 0 means that the updates were not
|
||
|
completely successful.</p>
|
||
|
|
||
|
<table cellpadding="3">
|
||
|
<!-- cols="15 85" -->
|
||
|
<tr>
|
||
|
<td align="left" valign="top"><em>0</em></td>
|
||
|
<td align="left" valign="top">Successful.</td>
|
||
|
</tr>
|
||
|
|
||
|
<tr>
|
||
|
<td align="left" valign="top"><em>1</em></td>
|
||
|
<td align="left" valign="top">Send error. The authoritative name server could not be
|
||
|
reached.</td>
|
||
|
</tr>
|
||
|
|
||
|
<tr>
|
||
|
<td align="left" valign="top"><em>2</em></td>
|
||
|
<td align="left" valign="top">Failed update packet. The name server has rejected the update,
|
||
|
either because it does not support dynamic update or due to an authentication
|
||
|
failure.</td>
|
||
|
</tr>
|
||
|
|
||
|
<tr>
|
||
|
<td align="left" valign="top"><em>3</em></td>
|
||
|
<td align="left" valign="top">Prerequisite failure. The update was successfully received and
|
||
|
authenticated by the name server. The prerequisites, however, prevented the
|
||
|
update from actually being performed.</td>
|
||
|
</tr>
|
||
|
</table>
|
||
|
|
||
|
<br>
|
||
|
</dd>
|
||
|
|
||
|
<dt><strong>Error code</strong></dt>
|
||
|
|
||
|
<dd>I/O; CHAR(*)
|
||
|
|
||
|
<p>The structure in which to return error information. For the format of the
|
||
|
structure, see <a href="../apiref/error.htm#hdrerrcod">Error Code Parameter</a>.</p>
|
||
|
</dd>
|
||
|
</dl>
|
||
|
|
||
|
<br>
|
||
|
<h3><a name="HDRUPDSyn">Update Instructions Syntax</a></h3>
|
||
|
|
||
|
<p>The syntax of the update instructions for the QTOBUPDT API is the same as
|
||
|
the syntax of the update instructions that are input to the BIND (Berkeley
|
||
|
Internet Name Domain) Version 8.2.x program known as <strong>nsupdate</strong>.
|
||
|
It is a stream file-based input format that requires
|
||
|
carriage-return(<cr>) linefeed (<lf>) characters to define distinct
|
||
|
"lines" of input.</p>
|
||
|
|
||
|
<p>In addition to accepting these instructions using stream files, like
|
||
|
<strong>nsupdate</strong>, the QTOBUPDT API has added the ability (by
|
||
|
specifying format <strong>DNSU0100</strong>) for an application program to
|
||
|
build the lines of input in memory and pass them directly to the API without
|
||
|
first having to write them to a file. It is important to note, however, that
|
||
|
this method still requires that you build the input lines exactly as you would
|
||
|
if you were going to write them to a stream file; that is, separated by the
|
||
|
same <cr><lf> characters that are described below.</p>
|
||
|
|
||
|
<p>QTOBUPDT reads input records, one per line, each line contributing a
|
||
|
resource record directive to a single update request. As described below, the
|
||
|
directives can be either <em>prerequisite</em> checks or actual resource record
|
||
|
(RR) data <em>update</em> directives. All domain names used in an update
|
||
|
request must belong to the same DNS zone. A blank line causes the accumulated
|
||
|
records to be formatted into a single update request and transmitted to the
|
||
|
zone's authoritative name servers. Additional records may follow, which are
|
||
|
formed into additional, completely independent, update requests for that
|
||
|
domain. For any given call to the API, multiple update requests can be made,
|
||
|
but each group of lines belonging to each single update request must be
|
||
|
separated by a blank line. For the last request to be transmitted, you must
|
||
|
remember to include a blank line as the last line of your input.</p>
|
||
|
|
||
|
<p>Records take one of two general forms. <strong>Prerequisite</strong> records
|
||
|
specify conditions that must be satisfied before the request will be processed.
|
||
|
<strong>Update</strong> records specify actual data changes to be made to the
|
||
|
DNS database. An <em>"update request"</em> consists of zero or more
|
||
|
prerequisites, and one or more updates. Each update request is processed
|
||
|
atomically; that is, all prerequisites must be satisfied, then all updates are
|
||
|
performed. If any of the prerequisites within the specific <em>update
|
||
|
request</em> fail, the actual data update directives following them will not be
|
||
|
attempted.</p>
|
||
|
|
||
|
<p>QTOBUPDT API understands the following input record formats:</p>
|
||
|
|
||
|
<table cellpadding="3">
|
||
|
<!-- cols="15 85" -->
|
||
|
<tr>
|
||
|
<td align="left" valign="top"><em>prereq nxdomain domain-name
|
||
|
<cr><lf></em></td>
|
||
|
<td align="left" valign="top">Requires that no RR of any type exists with name
|
||
|
domain-name.</td>
|
||
|
</tr>
|
||
|
|
||
|
<tr>
|
||
|
<td align="left" valign="top"><em>prereq yxdomain domain-name
|
||
|
<cr><lf></em></td>
|
||
|
<td align="left" valign="top">Requires that at least one RR named domain-name must
|
||
|
exist.</td>
|
||
|
</tr>
|
||
|
|
||
|
<tr>
|
||
|
<td align="left" valign="top"><em>prereq nxrrset domain-name [class] type
|
||
|
<cr><lf></em></td>
|
||
|
<td align="left" valign="top">Requires that no RR exists of the specified type and
|
||
|
domain-name.</td>
|
||
|
</tr>
|
||
|
|
||
|
<tr>
|
||
|
<td align="left" valign="top"><em>prereq yxrrset domain-name [class] type
|
||
|
[data...] <cr><lf></em></td>
|
||
|
<td align="left" valign="top">Requires that a RR exists of the specified type and
|
||
|
domain-name. If data is specified, it must match exactly.</td>
|
||
|
</tr>
|
||
|
|
||
|
<tr>
|
||
|
<td align="left" valign="top"><em>update delete domain-name [class] [type
|
||
|
[data...]] <cr><lf></em></td>
|
||
|
<td align="left" valign="top">Deletes RRs named domain-name. If type and/or data is
|
||
|
specified, <strong>only</strong> completely matching records are deleted.</td>
|
||
|
</tr>
|
||
|
|
||
|
<tr>
|
||
|
<td align="left" valign="top"><em>update add domain-name ttl [class] type
|
||
|
data... <cr><lf></em></td>
|
||
|
<td align="left" valign="top">Adds a new RR with specified ttl, type, and data.</td>
|
||
|
</tr>
|
||
|
</table>
|
||
|
|
||
|
<p><strong>EXAMPLES</strong></p>
|
||
|
|
||
|
<ol>
|
||
|
<li>The following example illustrates a set of update instructions that could
|
||
|
be sent to the QTOBUPDT API to change an IP address by deleting any existing A
|
||
|
records for a domain name, and then inserting a new A record. Since no
|
||
|
prerequisites are specified, the new record will be added even if there were no
|
||
|
existing records to delete. <em>The trailing blank line is required to process
|
||
|
the request.</em><br>
|
||
|
<br>
|
||
|
|
||
|
|
||
|
<ul>
|
||
|
<li>record 1: <em>update delete test.test.com A <cr><lf></em></li>
|
||
|
|
||
|
<li>record 2: <em>update add test.test.com 3600 A 10.1.1.1
|
||
|
<cr><lf></em></li>
|
||
|
|
||
|
<li>record 3: <em><cr><lf></em></li>
|
||
|
</ul>
|
||
|
|
||
|
<br>
|
||
|
</li>
|
||
|
|
||
|
<li>In this example, a CNAME alias is added to the database only if there are
|
||
|
no existing A or CNAME records for the domain name.<br>
|
||
|
<br>
|
||
|
|
||
|
|
||
|
<ul>
|
||
|
<li>record 1: <em>prereq nxrrset www.test.com A <cr><lf></em></li>
|
||
|
|
||
|
<li>record 2: <em>prereq nxrrset www.test.com CNAME
|
||
|
<cr><lf></em></li>
|
||
|
|
||
|
<li>record 3: <em>update add www.test.com 3600 CNAME test.test.com
|
||
|
<cr><lf></em></li>
|
||
|
|
||
|
<li>record 4: <em><cr><lf></em></li>
|
||
|
</ul>
|
||
|
|
||
|
<br>
|
||
|
</li>
|
||
|
|
||
|
<li>To accomplish both of the above independent <em>update requests</em> in a
|
||
|
single call to the QTOBUPDT API, the update instructions submitted would
|
||
|
be:<br>
|
||
|
<br>
|
||
|
|
||
|
|
||
|
<ul>
|
||
|
<li>record 1: <em>update delete test.test.com A <cr><lf></em></li>
|
||
|
|
||
|
<li>record 2: <em>update add test.test.com 3600 A 10.1.1.1
|
||
|
<cr><lf></em></li>
|
||
|
|
||
|
<li>record 3: <em><cr><lf></em></li>
|
||
|
|
||
|
<li>record 4: <em>prereq nxrrset www.test.com A <cr><lf></em></li>
|
||
|
|
||
|
<li>record 5: <em>prereq nxrrset www.test.com CNAME
|
||
|
<cr><lf></em></li>
|
||
|
|
||
|
<li>record 6: <em>update add www.test.com 3600 CNAME test.test.com
|
||
|
<cr><lf></em></li>
|
||
|
|
||
|
<li>record 7: <em><cr><lf></em></li>
|
||
|
</ul>
|
||
|
</li>
|
||
|
</ol>
|
||
|
|
||
|
<br>
|
||
|
<h3><a name="HDRDNSA0100">DNSA0100 Format</a></h3>
|
||
|
|
||
|
<p>The following is the format used for passing miscellaneous runtime
|
||
|
attributes to the dynamic DNS update API. For detailed descriptions of the
|
||
|
fields in this table, see <a href="#HDRSPCA1">Field Descriptions</a>.</p>
|
||
|
|
||
|
<table border width="80%">
|
||
|
<tr>
|
||
|
<th align="center" valign="bottom" colspan="2">Offset</th>
|
||
|
<th align="center" valign="bottom" rowspan="2">Type</th>
|
||
|
<th align="left" valign="bottom" rowspan="2">Field</th>
|
||
|
</tr>
|
||
|
|
||
|
<tr>
|
||
|
<th align="center" valign="bottom">Dec</th>
|
||
|
<th align="center" valign="bottom">Hex</th>
|
||
|
</tr>
|
||
|
|
||
|
<tr>
|
||
|
<td align="center" valign="top" width="10%">0</td>
|
||
|
<td align="center" valign="top" width="10%">0</td>
|
||
|
<td align="center" valign="top" width="20%">B</td>
|
||
|
<td align="left" valign="top" width="60%">Debug flag</td>
|
||
|
</tr>
|
||
|
|
||
|
<tr>
|
||
|
<td align="center" valign="top">4</td>
|
||
|
<td align="center" valign="top">4</td>
|
||
|
<td align="center" valign="top">B</td>
|
||
|
<td align="left" valign="top">Virtual circuit flag</td>
|
||
|
</tr>
|
||
|
|
||
|
<tr>
|
||
|
<td align="center" valign="top">8</td>
|
||
|
<td align="center" valign="top">8</td>
|
||
|
<td align="center" valign="top">C</td>
|
||
|
<td align="left" valign="top">Reserved for future use</td>
|
||
|
</tr>
|
||
|
</table>
|
||
|
|
||
|
<br>
|
||
|
<br>
|
||
|
<h3><a name="HDRSPCA1">Field Descriptions</a></h3>
|
||
|
|
||
|
<p><strong>Debug flag.</strong> If set on, tells the API to create a spooled
|
||
|
print file (QPRINT) to the caller's userid.</p>
|
||
|
|
||
|
<table cellpadding="3">
|
||
|
<!-- cols="15 85" -->
|
||
|
<tr>
|
||
|
<td align="left" valign="top"><em>0</em></td>
|
||
|
<td align="left" valign="top">Debug tracing is off (default).</td>
|
||
|
</tr>
|
||
|
|
||
|
<tr>
|
||
|
<td align="left" valign="top"><em>1</em></td>
|
||
|
<td align="left" valign="top">Debug tracing is on.</td>
|
||
|
</tr>
|
||
|
</table>
|
||
|
|
||
|
<p><strong>Reserved for future use.</strong> A reserved field that must be set
|
||
|
to hexadecimal zeros.</p>
|
||
|
|
||
|
<p><strong>Virtual circuit flag.</strong> If set on, tells the API to use a TCP
|
||
|
connection instead of the default UDP packets.</p>
|
||
|
|
||
|
<table cellpadding="3">
|
||
|
<!-- cols="15 85" -->
|
||
|
<tr>
|
||
|
<td align="left" valign="top"><em>0</em></td>
|
||
|
<td align="left" valign="top">Use UDP packets to communicate with the DNS server
|
||
|
(default).</td>
|
||
|
</tr>
|
||
|
|
||
|
<tr>
|
||
|
<td align="left" valign="top"><em>1</em></td>
|
||
|
<td align="left" valign="top">Use TCP to communicate with the DNS server.</td>
|
||
|
</tr>
|
||
|
</table>
|
||
|
|
||
|
<br>
|
||
|
<br>
|
||
|
<h3>Error Messages</h3>
|
||
|
|
||
|
<table width="100%" cellpadding="3">
|
||
|
<tr>
|
||
|
<th align="left" valign="top">Message ID</th>
|
||
|
<th align="left" valign="top">Error Message Text</th>
|
||
|
</tr>
|
||
|
|
||
|
<tr>
|
||
|
<td width="15%" valign="top">DNS0300 E</td>
|
||
|
<td width="85%" valign="top">Incorrect number of parameters passed.</td>
|
||
|
</tr>
|
||
|
|
||
|
<tr>
|
||
|
<td align="left" valign="top">DNS0301 E</td>
|
||
|
<td align="left" valign="top">The update instructions parameter was null.</td>
|
||
|
</tr>
|
||
|
|
||
|
<tr>
|
||
|
<td align="left" valign="top">DNS0302 E</td>
|
||
|
<td align="left" valign="top">The length of the update instructions parameter is
|
||
|
incorrect.</td>
|
||
|
</tr>
|
||
|
|
||
|
<tr>
|
||
|
<td align="left" valign="top">DNS0303 E</td>
|
||
|
<td align="left" valign="top">The format name of the update instructions parameter is
|
||
|
incorrect.</td>
|
||
|
</tr>
|
||
|
|
||
|
<tr>
|
||
|
<td align="left" valign="top">DNS0304 E</td>
|
||
|
<td align="left" valign="top">The update key override parameter is null.</td>
|
||
|
</tr>
|
||
|
|
||
|
<tr>
|
||
|
<td align="left" valign="top">DNS0305 E</td>
|
||
|
<td align="left" valign="top">The format name of the update key override parameter is
|
||
|
incorrect.</td>
|
||
|
</tr>
|
||
|
|
||
|
<tr>
|
||
|
<td align="left" valign="top">DNS0306 E</td>
|
||
|
<td align="left" valign="top">The IP address of the DNS server parameter is incorrect.</td>
|
||
|
</tr>
|
||
|
|
||
|
<tr>
|
||
|
<td align="left" valign="top">DNS0307 E</td>
|
||
|
<td align="left" valign="top">The miscellaneous attributes parameter is null.</td>
|
||
|
</tr>
|
||
|
|
||
|
<tr>
|
||
|
<td align="left" valign="top">DNS0308 E</td>
|
||
|
<td align="left" valign="top">The format name of the miscellaneous attributes parameter is
|
||
|
incorrect.</td>
|
||
|
</tr>
|
||
|
|
||
|
<tr>
|
||
|
<td align="left" valign="top">DNS0309 D</td>
|
||
|
<td align="left" valign="top">The transaction signature key file could not be opened.</td>
|
||
|
</tr>
|
||
|
|
||
|
<tr>
|
||
|
<td align="left" valign="top">DNS0310 E</td>
|
||
|
<td align="left" valign="top">The length of miscellaneous attributes parameter is
|
||
|
incorrect.</td>
|
||
|
</tr>
|
||
|
|
||
|
<tr>
|
||
|
<td align="left" valign="top">DNS0311 E</td>
|
||
|
<td align="left" valign="top">The miscellaneous attributes debug flag is incorrect.</td>
|
||
|
</tr>
|
||
|
|
||
|
<tr>
|
||
|
<td align="left" valign="top">DNS0312 E</td>
|
||
|
<td align="left" valign="top">The miscellaneous attributes virtual circuit flag is
|
||
|
incorrect.</td>
|
||
|
</tr>
|
||
|
|
||
|
<tr>
|
||
|
<td align="left" valign="top">DNS0313 E</td>
|
||
|
<td align="left" valign="top">The key name parameter is null.</td>
|
||
|
</tr>
|
||
|
|
||
|
<tr>
|
||
|
<td align="left" valign="top">DNS0314 E</td>
|
||
|
<td align="left" valign="top">The length of the key name parameter is incorrect.</td>
|
||
|
</tr>
|
||
|
|
||
|
<tr>
|
||
|
<td align="left" valign="top">DNS0315 E</td>
|
||
|
<td align="left" valign="top">The transaction signature key file could not be read.</td>
|
||
|
</tr>
|
||
|
|
||
|
<tr>
|
||
|
<td align="left" valign="top">DNS030A D</td>
|
||
|
<td align="left" valign="top">The update instructions parameter was incorrect.</td>
|
||
|
</tr>
|
||
|
|
||
|
<tr>
|
||
|
<td align="left" valign="top">DNS030B D</td>
|
||
|
<td align="left" valign="top">The dynamic DNS update failed.</td>
|
||
|
</tr>
|
||
|
|
||
|
<tr>
|
||
|
<td align="left" valign="top">DNS030C D</td>
|
||
|
<td align="left" valign="top">The dynamic DNS update partially failed.</td>
|
||
|
</tr>
|
||
|
|
||
|
<tr>
|
||
|
<td align="left" valign="top">DNS030D E</td>
|
||
|
<td align="left" valign="top">The miscellaneous attributes reserved field was not
|
||
|
zeros.</td>
|
||
|
</tr>
|
||
|
|
||
|
<tr>
|
||
|
<td align="left" valign="top">DNS030E E</td>
|
||
|
<td align="left" valign="top">The length of the update key override parameter is
|
||
|
incorrect.</td>
|
||
|
</tr>
|
||
|
|
||
|
<tr>
|
||
|
<td align="left" valign="top">DNS030F E</td>
|
||
|
<td align="left" valign="top">The update instructions file could not be opened.</td>
|
||
|
</tr>
|
||
|
</table>
|
||
|
|
||
|
<br>
|
||
|
|
||
|
|
||
|
<hr>
|
||
|
<p>API introduced: V5R1<br>
|
||
|
</p>
|
||
|
|
||
|
<hr>
|
||
|
<table cellpadding="2" cellspacing="2" align="center">
|
||
|
<tr align="center">
|
||
|
<td valign="middle" align="center"><a href="#Top_Of_Page">Top</a> | <a href=
|
||
|
"comm.htm">Communications APIs</a> | <a href="aplist.htm">APIs by category</a>
|
||
|
</td>
|
||
|
</tr>
|
||
|
</table>
|
||
|
</body>
|
||
|
</html>
|
||
|
|