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,
       hesiod_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	infor-
       mation, 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.
       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  hes-
       iod_resolve.   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
       errno  to  indicate  the	 error.	  On  failure, hesiod_resolve and hes-
       iod_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_CONFIG  is set, it specifies the location	of the Hesiod configu-
       ration 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
	      operation.

       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  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
       Technology.

BUGS
       The strings corresponding to the	errno values set by the	 Hesiod	 func-
       tions  are  not	particularly indicative	of what	went wrong, especially
       for ENOEXEC and ENOENT.

			       30 November 1996			     HESIOD(3)

NAME | SYNOPSIS | DESCRIPTION | RETURN VALUES | ENVIRONMENT | SEE ALSO | ERRORS | AUTHOR | BUGS

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

home | help