<!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>uaddr2taddr()--Translate a Universal Address</title> <!-- 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. --> <!-- Begin Header Records ========================================== --> <!-- RPCMST SCRIPT A converted by B2H R4.1 (346) (CMS) by PMHALL at --> <!-- RCHVMW2 on 7 Oct 1998 at 23:43:14 --> <!-- 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 language="Javascript" src="../rzahg/synch.js" type="text/javascript"> </script> <h2>uaddr2taddr()--Translate a Universal Address</h2> <div class="box" style="width: 60%;"> <br> Syntax<br> <!-- iddvc RMBR --> <br> <pre> #include <netdir.h> struct netbuf *uaddr2taddr(struct netconfig <em>*nconf</em>, char <em>*uaddr</em>); </pre> <br> Service Program Name: QZNFTRPC<br> <!-- iddvc RMBR --> <br> Default Public Authority: *USE<br> <!-- iddvc RMBR --> <br> Threadsafe: No<br> <!-- iddvc RMBR --> <br> </div> <p>The <strong>uaddr2taddr()</strong> function translates a transport-independent (universal) address to a transport-specific (local) address (netbuf structure).</p> <br> <h3>Parameters</h3> <dl> <dt><strong>nconf</strong> (Input) </dt> <dd>The transport for which the address is valid.<br> <br> </dd> <dt><strong>uaddr</strong> (Input) </dt> <dd>The address to be translated to the netbuf structure.</dd> </dl> <br> <h3>Authorities</h3> <p>No authorization is required.</p> <br> <h3>Return Value</h3> <table cellpadding="5"> <!-- cols="15 85" --> <tr> <td valign="top"><em>netbuf structure</em></td> <td valign="top">uaddr2taddr() was successful.</td> </tr> <tr> <td valign="top"><em>NULL</em></td> <td valign="top"><strong>uaddr2taddr()</strong> was not successful. The <em>nd_errno</em> (defined in <strong><netdir.h></strong>) is set to indicate the error.</td> </tr> </table> <br> <br> <h3>Error Conditions</h3> <p>If <strong>uaddr2taddr()</strong> is not successful, <em>nd_errno</em> usually indicates one of the following errors:</p> <table cellpadding="5"> <!-- cols="25 75" --> <tr> <td valign="top"><em>[ND_BADARG]</em></td> <td valign="top">Bad argument passed.</td> </tr> <tr> <td valign="top"><em>[ND_NOMEM]</em></td> <td valign="top">Not enough memory left.</td> </tr> <tr> <td valign="top"><em>[ND_NO_RECOVERY]</em></td> <td valign="top">An unrecoverable error has occurred.</td> </tr> <tr> <td valign="top"><em>[ND_SYSTEM]</em></td> <td valign="top">A damaged object was encountered. The damaged object cannot be used.</td> </tr> </table> <br> <br> <h3>Error Messages</h3> <table width="100%" cellpadding="5"> <!-- cols="15 85" --> <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">CPF9872 E</td> <td width="85%" valign="top">Program or service program &1 in library &2 ended. Reason code &3.</td> </tr> </table> <br> <br> <h3>Usage Notes</h3> <p><strong>uaddr2taddr()</strong> translates the universal address pointed to by <em>addr</em> and returns a pointer to a netbuf structure.</p> <p>It is the caller's responsibility to free the returned netbuf structure when done using the <strong>netdir_free()</strong> function.</p> <br> <h3>Example</h3> <p>See <a href="../apiref/aboutapis.htm#codedisclaimer">Code disclaimer information</a> for information pertaining to code examples.</p> <p>The following example shows how <strong>uaddr2taddr()</strong> is used:</p> <pre> #include <netconfig.h> #include <netdir.h> Void sample (void) { void *handlep; struct netconfig *nconf; struct netbuf *netbufp; char universal_addr[24]; int i; /* Initialize the network selection mechanism */ if (handlep = setnetconfig()) == (void *)NULL) { exit(1); } /* Get the transport information */ if ((nconf = getnetconfig(handlep)) == (struct netconf *)NULL) { printf("Error in getting the transport information\n"E); exit(1); } memset(universal_addr,24,NULL); printf("EEnter the IP address appended by low and high order port numbers:\n"E); scanf(%s, universal_addr); /* Convert the input universal address to its local representation */ if ((netbufp = uaddr2taddr(nconf, universal_addr)) == (struct netbuf *) NULL) { printf("Euaddr2taddr() failed\n"E); } /*Free the netbuf structure returned from uaddr2taddr() */ netdir_free((char *)netbufp, ND_ADDR); /* Release the netconfig handle allocated by setnetconfig() */ endnetconfig(handlep); return; } </pre> <br> <hr> API introduced: V4R2 <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= "rpc1.htm">Remote Procedure Call (RPC) APIs</a> | <a href="aplist.htm">APIs by category</a></td> </tr> </table> </body> </html>