tools/llvm: Do not build with symbols
[minix3.git] / lib / libc / net / hesiod.3
blobf2b9a3e1c3f7f0fcd7aeadbfdc5bd747be447e69
1 .\"     $NetBSD: hesiod.3,v 1.7 2009/03/10 23:36:10 joerg Exp $
2 .\"
3 .\" from: #Id: hesiod.3,v 1.9.2.1 1997/01/03 21:02:23 ghudson Exp #
4 .\"
5 .\" Copyright 1988, 1996 by the Massachusetts Institute of Technology.
6 .\"
7 .\" Permission to use, copy, modify, and distribute this
8 .\" software and its documentation for any purpose and without
9 .\" fee is hereby granted, provided that the above copyright
10 .\" notice appear in all copies and that both that copyright
11 .\" notice and this permission notice appear in supporting
12 .\" documentation, and that the name of M.I.T. not be used in
13 .\" advertising or publicity pertaining to distribution of the
14 .\" software without specific, written prior permission.
15 .\" M.I.T. makes no representations about the suitability of
16 .\" this software for any purpose.  It is provided "as is"
17 .\" without express or implied warranty.
18 .\"
19 .Dd September 16, 2001
20 .Dt HESIOD 3
21 .Os
22 .Sh NAME
23 .Nm hesiod ,
24 .Nm hesiod_init ,
25 .Nm hesiod_resolve ,
26 .Nm hesiod_free_list ,
27 .Nm hesiod_to_bind ,
28 .Nm hesiod_end
29 .Nd Hesiod name server interface library
30 .Sh LIBRARY
31 .Lb libc
32 .Sh SYNOPSIS
33 .In hesiod.h
34 .Ft int
35 .Fn hesiod_init "void **context"
36 .Ft char
37 .Fn **hesiod_resolve "void *context" "const char *name" "const char *type"
38 .Ft void
39 .Fn hesiod_free_list "void *context" "char **list"
40 .Ft char
41 .Fn *hesiod_to_bind "void *context" "const char *name" "const char *type"
42 .Ft void
43 .Fn hesiod_end "void *context"
44 .Sh DESCRIPTION
45 This family of functions allows you to perform lookups of Hesiod
46 information, which is stored as text records in the Domain Name
47 Service.  To perform lookups, you must first initialize a
48 .Fa context ,
49 an opaque object which stores information used internally by the
50 library between calls.
51 .Fn hesiod_init
52 initializes a context, storing a pointer to the context in the
53 location pointed to by the
54 .Fa context
55 argument.
56 .Fn hesiod_end
57 frees the resources used by a context.
58 .Pp
59 .Fn hesiod_resolve
60 is the primary interface to the library.  If successful, it returns a
61 list of one or more strings giving the records matching
62 .Fa name
63 and
64 .Fa type .
65 The last element of the list is followed by a
66 .Dv NULL
67 pointer.  It is the caller's responsibility to call
68 .Fn hesiod_free_list
69 to free the resources used by the returned list.
70 .Pp
71 .Fn hesiod_to_bind
72 converts
73 .Fa name
74 and
75 .Fa type
76 into the DNS name used by
77 .Fn hesiod_resolve .
78 It is the caller's responsibility to free the returned string using
79 .Xr free 3 .
80 .Sh RETURN VALUES
81 If successful,
82 .Fn hesiod_init
83 returns 0; otherwise it returns \-1 and sets
84 .Va errno
85 to indicate the error.  On failure,
86 .Fn hesiod_resolve
87 and
88 .Fn hesiod_to_bind
89 return
90 .Dv NULL
91 and set the global variable
92 .Va errno
93 to indicate the error.
94 .Sh ENVIRONMENT
95 If the environment variable
96 .Ev HES_DOMAIN
97 is set, it will override the domain in the Hesiod configuration file.
98 If the environment variable
99 .Ev HESIOD_CONFIG
100 is set, it specifies the location of the Hesiod configuration file.
101 .Sh ERRORS
102 Hesiod calls may fail because of:
103 .Bl -tag -width ECONNREFUSED -compact
104 .It Er ENOMEM
105 Insufficient memory was available to carry out the requested operation.
106 .It Er ENOEXEC
107 .Fn hesiod_init
108 failed because the Hesiod configuration file was invalid.
109 .It Er ECONNREFUSED
110 .Fn hesiod_resolve
111 failed because no name server could be contacted to answer the query.
112 .It Er EMSGSIZE
113 .Fn hesiod_resolve
115 .Fn hesiod_to_bind
116 failed because the query or response was too big to fit into the
117 packet buffers.
118 .It Er ENOENT
119 .Fn hesiod_resolve
120 failed because the name server had no text records matching
121 .Fa name
123 .Fa type ,
125 .Fn hesiod_to_bind
126 failed because the
127 .Fa name
128 argument had a domain extension which could not be resolved with type
129 .Dq rhs-extension
130 in the local Hesiod domain.
132 .Sh SEE ALSO
133 .Xr hesiod.conf 5 ,
134 .Xr named 8
136 .%T Hesiod - Project Athena Technical Plan -- Name Service
138 .Sh AUTHORS
139 .An Steve Dyer, IBM/Project Athena
140 .An Greg Hudson, MIT Team Athena
142 Copyright 1987, 1988, 1995, 1996 by the Massachusetts Institute of Technology.
143 .Sh BUGS
144 The strings corresponding to the
145 .Ev errno
146 values set by the Hesiod functions are not particularly indicative of
147 what went wrong, especially for
148 .Er ENOEXEC
150 .Er ENOENT .