Skip site navigation (1)Skip section navigation (2)

FreeBSD Manual Pages

  
 
  

home | help
HESIOD(3)		    Library Functions Manual		       HESIOD(3)

NAME
     hesiod, hesiod_init, hesiod_resolve, hesiod_free_list, hesiod_to_bind, hes-
     iod_end - Hesiod name server interface library

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  per-
     form  lookups,  you must first initialize a context, an opaque object which
     stores information used internally by  the  library  between  calls.   hes-
     iod_init initializes a context, storing a pointer to the context in the lo-
     cation  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_re-
     solve.  It is the caller's responsibility to free the returned string using
     free.

RETURN VALUES
     If  successful, hesiod_init returns 0; otherwise it returns -1 and sets er-
     rno 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
     If  the environment variable HES_DOMAIN is set, it will override the domain
     in the Hesiod configuration file.	If the environment variable  HESIOD_CON-
     FIG is set, it specifies the location of the Hesiod configuration file.

SEE ALSO
     `Hesiod - Project Athena Technical Plan -- Name Service'

ERRORS
     Hesiod calls may fail because of:

     ENOMEM Insufficient  memory was available to carry out the requested opera-
	    tion.

     ENOEXEChesiod_init failed because the Hesiod  configuration  file	was  in-
	    valid.

     ECONNREFUSED
	    hesiod_resolve  failed  because no name server could be contacted to
	    answer the query.

     EMSGSIZE
	    hesiod_resolve 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.

AUTHOR
     Steve Dyer, IBM/Project Athena
     Greg Hudson, MIT Team Athena
     Copyright 1987, 1988, 1995, 1996 by the Massachusetts Institute of Technol-
     ogy.

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.

				30 November 1996		       HESIOD(3)

Want to link to this manual page? Use this URL:
<https://man.freebsd.org/cgi/man.cgi?query=hesiod&sektion=3&manpath=FreeBSD+Ports+15.1.quarterly>

home | help