ibm-information-center/dist/eclipse/plugins/i5OS.ic.apis_5.4.0.1/resfindzonecut.htm

278 lines
6.9 KiB
HTML
Raw Normal View History

2024-04-02 14:02:31 +00:00
<!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>res_findzonecut()--Find the Enclosing Zone and Servers</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. -->
<!-- Unix8 SCRIPT J converted by B2H R4.1 (346) (CMS) by V2KEA304 -->
<!-- at RCHVMW2 on 17 Feb 1999 at 11:05:09 -->
<!-- Edited by Kersten Feb 02 -->
<!--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>res_findzonecut()--Find the Enclosing Zone and Servers</h2>
<div class="box" style="width: 60%;">
<br>
&nbsp;&nbsp;Syntax<br>
<pre>
#include &lt;sys/types.h&gt;
#include &lt;netinet/in.h&gt;
#include &lt;arpa/nameser.h&gt;
#include &lt;resolv.h&gt;
int res_findzonecut(state* <em>res</em>,
const char *<em>domain_name</em>,
ns_class <em>class</em>,
int <em>options</em>,
char *<em>zone_name</em>,
size_t <em>zone_size</em>,
struct in_addr *<em>addresses</em>,
int <em>num_addresses</em>)
</pre>
<br>
&nbsp;&nbsp;Service Program Name: QSOSRV2<br>
<!-- iddvc RMBR -->
<br>
&nbsp;&nbsp;Default Public Authority: *USE<br>
<!-- iddvc RMBR -->
<br>
&nbsp;&nbsp;Threadsafe: Yes<br>
<!-- iddvc RMBR -->
<br>
</div>
<p>The <em>res_findzonecut()</em> queries name servers until it finds the
enclosing zone and its master name servers for the specified domain name.</p>
<br>
<h3>Parameters</h3>
<dl>
<dt><strong>res</strong></dt>
<dd>(Input) The pointer to the <strong>state</strong> structure.<br>
<br>
</dd>
<dt><strong>domain_name</strong></dt>
<dd>(Input) The pointer to the domain name whose enclosing zone is desired.<br>
<br>
</dd>
<dt><strong>class</strong></dt>
<dd>(Input) The class of <em>domain_name</em>.<br>
<br>
</dd>
<dt><strong>options</strong></dt>
<dd>(Input) Processing options, may be RES_EXHAUSTIVE.<br>
<br>
</dd>
<dt><strong>zone_name</strong></dt>
<dd>(Output) The pointer to the enclosing zone name found.<br>
<br>
</dd>
<dt><strong>zonesize</strong></dt>
<dd>(Input) The size of the zone_name buffer.<br>
<br>
</dd>
<dt><strong>addresses</strong></dt>
<dd>(Output) The name server addresses found for the enclosing zone.<br>
<br>
</dd>
<dt><strong>num_addresses</strong></dt>
<dd>(Input) The maximum number of addresses to be returned.</dd>
</dl>
<br>
<h3>Authorities</h3>
<p>No authorization is required.</p>
<br>
<h3>Return Value</h3>
<p><em>res_findzonecut()</em> returns an integer. Possible values are:</p>
<ul>
<li>&lt; 0 - (unsuccessful).<br>
<br>
</li>
<li>= 0 - <em>zone_name</em> is now valid, but <em>addresses</em> wasn't
changed.<br>
<br>
</li>
<li>&gt; 0 - <em>zone_name</em> is now valid, and the return value is number of
<em>addresses</em> found.</li>
</ul>
<br>
<h3>Error Conditions</h3>
<p>When the <em>res_findzonecut()</em> function fails,
<em>res_findzonecut()</em> can set <em>errno</em> to one of the following:</p>
<dl>
<dt><em>[ECONVERT]</em></dt>
<dd><p>Either the input packet could not be translated
to ASCII or the answer received could not be translated to the coded character
set identifier (CCSID) currently in effect for the job.</p></dd>
<dt><em>[EDESTADDRREQ]</em></dt>
<dd><p>No zone could be found for the domain.</p></dd>
<dt><em>[EFAULT]</em></dt>
<dd><p>The system detected a pointer that was invalid
while attempting to access an input pointer.</p></dd>
<dt><em>[EINVAL]</em></dt>
<dd><p>One of the following reasons:</p>
<ul>
<li>An invalid length or NULL pointer was passed to <em>res_findzonecut()</em><br><br></li>
<li>The <strong>res</strong> appears to be initialized but the reserved field
is not set to zeros.</li>
</ul>
</dd>
<dd><p><strong>Note:</strong> No attempt is made to initialize the
<strong>res</strong> structure if it was initialized previous to the
<em>res_findzonecut()</em> being issued.</p></dd>
<dt><em>[EMSGSIZE]</em></dt>
<dd><p>An invalid message length was returned on an
answer.</p></dd>
<dt><em>[EPROTOTYPE]</em></dt>
<dd><p>The answer to a query had the wrong domain
name.</p></dd>
</dl>
<p><strong>Note:</strong> There are numerous other values that <em>errno</em>
can be set to by the resolver and sockets functions that
<em>res_findzonecut()</em> calls. Refer to other functions for the other
values.</p>
<br>
<h3>Usage Notes</h3>
<ol>
<li><em>res_findzonecut()</em> calls <em>res_mkquery()</em> and
<em>res_send()</em> to query the specified server for the zone information.<br>
<br>
</li>
<li><em>res_findzonecut()</em> calls <em>res_ninit()</em> if the
<strong>res</strong> structure has not been initialized.<br>
<br>
</li>
<li><em>res_findzonecut()</em> assumes that the data passed to it is EBCDIC and
is in the default coded character set identifier (CCSID) currently in effect
for the job. It translates the data from the default CCSID currently in effect
for the job to ASCII (CCSID 819) before the data is sent out to a name server.
The response that it receives from the name server is returned in the default
CCSID currently in effect for the job.</li>
</ol>
<br>
<h3>Related Information</h3>
<ul>
<li><a href="resnclose.htm">res_nclose()</a>--Close Socket and Reset res
Structure<br>
<br>
</li>
<li><a href="reshostalias.htm">res_hostalias()</a>--Retrieve the host alias<br>
<br>
</li>
<li><a href="resninit.htm">res_ninit()</a>--Initialize res Structure<br>
<br>
</li>
<li><a href="resnmkquery.htm">res_nmkquery()</a>--Place Domain Query in
Buffer<br>
<br>
</li>
<li><a href="resnmkupdate.htm">res_nmkupdate()</a>--Construct an Update
Packet<br>
<br>
</li>
<li><a href="resnquery.htm">res_nquery()</a>--Send Domain Query<br>
<br>
</li>
<li><a href="resnsearch.htm">res_nsearch()</a>--Search for Domain Name<br>
<br>
</li>
<li><a href="resnsend.htm">res_nsend()</a>--Send Buffered Domain Query<br>
<br>
</li>
<li><a href="resnsendsigned.htm">res_nsendsigned()</a>--Send Authenticated Domain
Query<br>
<br>
</li>
<li><a href="resnupdate.htm">res_nupdate()</a>--Build and Send Dynamic
Updates<br>
<br>
</li>
<li><a href="resxlt.htm">res_xlate()</a>--Translate DNS Packets</li>
</ul>
<br>
<hr>
API introduced: V5R1
<hr>
<center>
<table cellpadding="2" cellspacing="2">
<tr align="center">
<td valign="middle" align="center"><a href="#Top_Of_Page">Top</a> | <a href=
"unix.htm">UNIX-Type APIs</a> | <a href="aplist.htm">APIs by category</a> </td>
</tr>
</table>
</center>
</body>
</html>