| 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.
ENOMEMENOEXEChesiod_init() failed because the Hesiod
      configuration file was invalid.ECONNREFUSEDhesiod_resolve() failed because no name server
      could be contacted to answer the query.EMSGSIZEhesiod_resolve() or
      hesiod_to_bind() failed because the query or
      response was too big to fit into the packet buffers.ENOENThesiod_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.4 |