HESIOD(3)

HOME || NAME LIBRARY SYNOPSIS DESCRIPTION RETURN VALUES ENVIRONMENT SEE ALSO ERRORS AUTHORS BUGS
NAME
     hesiod, hesiod_init, hesiod_resolve, hesiod_free_list, hesiod_to_bind,
     hesiod_end -- Hesiod name server interface library
LIBRARY
     Standard C Library (libc, -lc)
SYNOPSIS
     #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);
DESCRIPTION
     This family of functions allows you to perform lookups of Hesiod informa-
     tion, which is stored as text records in the Domain Name Service.	To
     perform lookups, you must first initialize a context, an opaque object
     which stores information used internally by the library between calls.
     The hesiod_init() function initializes a context, storing a pointer to
     the context in the location pointed to by the context argument.  The
     hesiod_end() function frees the resources used by a context.

     The hesiod_resolve() function 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.

     The hesiod_to_bind() function 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().
RETURN VALUES
     The hesiod_init() function returns the value 0 if successful; otherwise
     the value -1 is returned and the global variable errno is set to indicate
     the error.  On failure, hesiod_resolve() and hesiod_to_bind() return NULL
     and set the global variable errno to indicate the error.
ENVIRONMENT
     HES_DOMAIN     If the environment variable HES_DOMAIN is set, it will
		    override the domain in the Hesiod configuration file.

     HESIOD_CONFIG  If the environment variable HESIOD_CONFIG is set, it spec-
		    ifies the location of the Hesiod configuration file.
SEE ALSO
     hesiod.conf(5), named(8)

     Hesiod - Project Athena Technical Plan -- Name Service.
ERRORS
     Hesiod calls may fail because of:

     [ENOMEM]		Insufficient memory was available to carry out the
			requested operation.

     [ENOEXEC]		The hesiod_init() function failed because the Hesiod
			configuration file was invalid.

     [ECONNREFUSED]	The hesiod_resolve() function failed because no name
			server could be contacted to answer the query.

     [EMSGSIZE] 	The hesiod_resolve() or hesiod_to_bind() function
			failed because the query or response was too big to
			fit into the packet buffers.

     [ENOENT]		The hesiod_resolve() function 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.
AUTHORS
     Steve Dyer, IBM/Project Athena
     Greg Hudson, MIT Team Athena

     Copyright 1987, 1988, 1995, 1996 by the Massachusetts Institute of Tech-
     nology.
BUGS
     The strings corresponding to the errno values set by the Hesiod functions
     are not particularly indicative of what went wrong, especially for
     ENOEXEC and ENOENT.