gethostent(3N) DG/UX R4.11MU05 gethostent(3N)
NAME
gethostent, gethostbyaddr, gethostbyname, sethostent, endhostent,
herror - get network host entry
SYNOPSIS
#include <netdb.h>
struct hostent *gethostent()
struct hostent *gethostbyname(name)
const char *name;
struct hostent *gethostbyaddr(addr, len, type)
char *addr; int len, type;
sethostent(stayopen)
int stayopen
endhostent()
void herror(text)
const char *text;
DESCRIPTION
gethostent, gethostbyname, and gethostbyaddr each return a pointer to
an object with the following structure describing an Internet host
referenced by name or by address, respectively. This structure
contains either the information obtained from the name server,
named(8), YP (see Managing NFS and Its Facilities on the DG/UX
System), or broken-out fields from a line in /etc/hosts. In the case
of gethostbyaddr, addr is a pointer to the binary format address of
length len (not a character string). gethostbyname and gethostbyaddr
read the /etc/svcorder file to determine which host/name address
resolution method to use. If /etc/svcorder does not exist or has
invalid data, the default order is YP, /etc/hosts, then the name
server.
struct hostent {
char *h_name; /* official name of host */
char **h_aliases; /* alias list */
int h_addrtype; /* host address type */
int h_length; /* length of address */
char **h_addr_list; /* list of address from the name server */
};
#define h_addr h_addr_list[0] /* address for backward
compatibility */
The members of this structure are:
h_name Official name of the host.
h_aliases A zero-terminated array of alternate names for the host.
h_addrtype The type of address being returned; currently always
AF_INET.
h_length The length, in bytes, of the address.
h_addr_list A zero-terminated array of network addresses for the
host. Host addresses are returned in network byte order.
h_addr The first address in h_addr_list; this is for backward
compatibility.
When using the name server, gethostbyname will search for the named
host in the current domain and its parents unless the name ends in a
dot. See hostname(7) for the domain search procedure and the alias
file format.
Sethostent may be used to request the use of a connected TCP socket
for queries. If the stayopen flag is non-zero, this sets the option
to send all queries to the name server using TCP and to retain the
connection after each call to gethostbyname or gethostbyaddr.
Otherwise, queries are performed using UDP datagrams.
gethostent reads the next line of /etc/hosts, opening the file if
necessary.
Sethostent is redefined to open and rewind the file. If the stayopen
argument is non-zero, the hosts database will not be closed after
each call to gethostbyname or gethostbyaddr. Endhostent is redefined
to close the file.
If your system is using Network Information Services (NIS), you may
need to see Managing NFS and Its Facilities on the DG/UX System for
information on how to update the /etc/hosts file.
gethostbyaddr takes a pointer to an address structure. This
structure is unique to each type of address. For addresses of type
AF_INET, this is the in_addr structure. See <netinet/in.h>.
DIAGNOSTICS
Error return status from gethostbyname and gethostbyaddr is indicated
by return of a null pointer. The external integer h_errno may then
be checked to see whether this is a temporary failure or an invalid
or unknown host. The routine herror can be used to print an error
message describing the failure. If its argument string is non-NULL,
it is printed, followed by a colon and a space. The error message is
printed with a trailing newline.
h_errno can have the following values:
HOST_NOT_FOUND
No such host is known.
TRY_AGAIN
This is usually a temporary error and means that the local
server did not receive a response from an authoritative
server. A retry at some later time may succeed.
NO_RECOVERY
Some unexpected server failure was encountered. This is a
non-recoverable error.
NO_DATA
The requested name is valid but does not have an IP address;
this is not a temporary error. This means that the name is
known to the name server but there is no address associated
with this name. Another type of request to the name server
using this domain name will result in an answer; for example,
a mail-forwarder may be registered for this domain.
Null pointer (0) returned on EOF or error.
FILES
/etc/hosts, /etc/svcorder
SEE ALSO
hosts(4).
BUGS
All information is contained in a static area, so you must copy it if
you want to save it. Only the Internet address format is currently
understood.
Licensed material--property of copyright holder(s)