HESIOD(3) | Library Functions Manual | HESIOD(3) |
hesiod
, hesiod_init
,
hesiod_resolve
,
hesiod_free_list
,
hesiod_to_bind
, hesiod_end
—
#include <hesiod.h>
int
hesiod_init
(void
**context);
char
**hesiod_resolve
(void
*context, const char
*name, const char
*type);
void
hesiod_free_list
(void
*context, char
**list);
char
*hesiod_to_bind
(void
*context, const char
*name, const char
*type);
void
hesiod_end
(void
*context);
hesiod_init
() initializes a context, storing a pointer
to the context in the location pointed to by the context
argument. hesiod_end
() frees the resources used by a
context.
hesiod_resolve
() is the primary interface
to the library. If successful, it returns a list of one or more strings
giving the records matching name and
type. The last element of the list is followed by a
NULL
pointer. It is the caller's responsibility to
call hesiod_free_list
() to free the resources used
by the returned list.
hesiod_to_bind
() converts
name and type into the DNS name
used by hesiod_resolve
(). It is the caller's
responsibility to free the returned string using
free(3).
hesiod_init
() returns 0; otherwise it
returns -1 and sets errno to indicate the error. On
failure, hesiod_resolve
() and
hesiod_to_bind
() return NULL
and set the global variable errno to indicate the error.
HES_DOMAIN
is set, it will
override the domain in the Hesiod configuration file. If the environment
variable HESIOD_CONFIG
is set, it specifies the
location of the Hesiod configuration file.
ENOMEM
ENOEXEC
hesiod_init
() failed because the Hesiod
configuration file was invalid.ECONNREFUSED
hesiod_resolve
() failed because no name server
could be contacted to answer the query.EMSGSIZE
hesiod_resolve
() or
hesiod_to_bind
() failed because the query or
response was too big to fit into the packet buffers.ENOENT
hesiod_resolve
() failed because the name server
had no text records matching name and
type, or hesiod_to_bind
()
failed because the name argument had a domain
extension which could not be resolved with type
“rhs-extension” in the local Hesiod domain.Hesiod - Project Athena Technical Plan -- Name Service.
Copyright 1987, 1988, 1995, 1996 by the Massachusetts Institute of Technology.
errno
values set by the
Hesiod functions are not particularly indicative of what went wrong,
especially for ENOEXEC
and
ENOENT
.
September 16, 2001 | NetBSD 9.0 |