1<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
2<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
3<title>HeimdalKerberos5library: Heimdal Kerberos 5 support functions</title>
4<link href="doxygen.css" rel="stylesheet" type="text/css">
5<link href="tabs.css" rel="stylesheet" type="text/css">
6</head><body>
7<p>
8<a href="http://www.h5l.org/"><img src="http://www.h5l.org/keyhole-heimdal.png" alt="keyhole logo"/></a>
9</p>
10<!-- end of header marker -->
11<!-- Generated by Doxygen 1.5.6 -->
12<div class="navigation" id="top">
13  <div class="tabs">
14    <ul>
15      <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
16      <li><a href="pages.html"><span>Related&nbsp;Pages</span></a></li>
17      <li><a href="modules.html"><span>Modules</span></a></li>
18      <li><a href="annotated.html"><span>Data&nbsp;Structures</span></a></li>
19    </ul>
20  </div>
21</div>
22<div class="contents">
23<h1>Heimdal Kerberos 5 support functions</h1><table border="0" cellpadding="0" cellspacing="0">
24<tr><td></td></tr>
25<tr><td colspan="2"><br><h2>Functions</h2></td></tr>
26<tr><td class="memItemLeft" nowrap align="right" valign="top">KRB5_LIB_FUNCTION <br>
27krb5_error_code KRB5_LIB_CALL&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__krb5__support.html#g245208f2d59a8fd7187089ad445e51d0">krb5_acl_match_string</a> (krb5_context context, const char *string, const char *format,...)</td></tr>
28
29<tr><td class="memItemLeft" nowrap align="right" valign="top">KRB5_LIB_FUNCTION <br>
30krb5_error_code KRB5_LIB_CALL&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__krb5__support.html#g7c5dbc1743dc0bc63765edf82d10eb9e">krb5_acl_match_file</a> (krb5_context context, const char *file, const char *format,...)</td></tr>
31
32<tr><td class="memItemLeft" nowrap align="right" valign="top">KRB5_LIB_FUNCTION <br>
33krb5_error_code KRB5_LIB_CALL&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__krb5__support.html#g59892cdf61d0a6a59b3dd2e9998b541a">krb5_config_parse_file_multi</a> (krb5_context context, const char *fname, krb5_config_section **res)</td></tr>
34
35<tr><td class="memItemLeft" nowrap align="right" valign="top">KRB5_LIB_FUNCTION <br>
36krb5_error_code KRB5_LIB_CALL&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__krb5__support.html#g84277205c4b221cc28f1fd36be19dba8">krb5_config_file_free</a> (krb5_context context, krb5_config_section *s)</td></tr>
37
38<tr><td class="memItemLeft" nowrap align="right" valign="top">KRB5_LIB_FUNCTION const <br>
39krb5_config_binding <br>
40*KRB5_LIB_CALL&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__krb5__support.html#gee87399e25e34ac1e0e4a1841951e2fa">krb5_config_get_list</a> (krb5_context context, const krb5_config_section *c,...)</td></tr>
41
42<tr><td class="memItemLeft" nowrap align="right" valign="top">KRB5_LIB_FUNCTION const <br>
43krb5_config_binding <br>
44*KRB5_LIB_CALL&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__krb5__support.html#gfbc6548d480aaf5118025b742f4f468d">krb5_config_vget_list</a> (krb5_context context, const krb5_config_section *c, va_list args)</td></tr>
45
46<tr><td class="memItemLeft" nowrap align="right" valign="top">KRB5_LIB_FUNCTION const char <br>
47*KRB5_LIB_CALL&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__krb5__support.html#gc0845cba8c8f7fd2e447de60d81556ac">krb5_config_get_string</a> (krb5_context context, const krb5_config_section *c,...)</td></tr>
48
49<tr><td class="memItemLeft" nowrap align="right" valign="top">KRB5_LIB_FUNCTION const char <br>
50*KRB5_LIB_CALL&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__krb5__support.html#gec7eaee2b6f04f1ed4a64b37efa767e4">krb5_config_vget_string</a> (krb5_context context, const krb5_config_section *c, va_list args)</td></tr>
51
52<tr><td class="memItemLeft" nowrap align="right" valign="top">KRB5_LIB_FUNCTION const char <br>
53*KRB5_LIB_CALL&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__krb5__support.html#g124f18195eb05c3662ce2bcf06c7451b">krb5_config_vget_string_default</a> (krb5_context context, const krb5_config_section *c, const char *def_value, va_list args)</td></tr>
54
55<tr><td class="memItemLeft" nowrap align="right" valign="top">KRB5_LIB_FUNCTION const char <br>
56*KRB5_LIB_CALL&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__krb5__support.html#gaef298c290e0c315d7f4bf07ba272b60">krb5_config_get_string_default</a> (krb5_context context, const krb5_config_section *c, const char *def_value,...)</td></tr>
57
58<tr><td class="memItemLeft" nowrap align="right" valign="top">KRB5_LIB_FUNCTION char <br>
59**KRB5_LIB_CALL&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__krb5__support.html#g614850564b4d21b92e113fde9420bf3c">krb5_config_vget_strings</a> (krb5_context context, const krb5_config_section *c, va_list args)</td></tr>
60
61<tr><td class="memItemLeft" nowrap align="right" valign="top">KRB5_LIB_FUNCTION char <br>
62**KRB5_LIB_CALL&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__krb5__support.html#g8f43dbe4a34a820a70d081e5d3190e01">krb5_config_get_strings</a> (krb5_context context, const krb5_config_section *c,...)</td></tr>
63
64<tr><td class="memItemLeft" nowrap align="right" valign="top">KRB5_LIB_FUNCTION void <br>
65KRB5_LIB_CALL&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__krb5__support.html#g3440f86b07fa86aae0f0889445a0def2">krb5_config_free_strings</a> (char **strings)</td></tr>
66
67<tr><td class="memItemLeft" nowrap align="right" valign="top">KRB5_LIB_FUNCTION krb5_boolean <br>
68KRB5_LIB_CALL&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__krb5__support.html#g8a29a130369232a638629cb37bfbeb66">krb5_config_vget_bool_default</a> (krb5_context context, const krb5_config_section *c, krb5_boolean def_value, va_list args)</td></tr>
69
70<tr><td class="memItemLeft" nowrap align="right" valign="top">KRB5_LIB_FUNCTION krb5_boolean <br>
71KRB5_LIB_CALL&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__krb5__support.html#g16e5b2da5e3751d7b3d4fe8d43f0a677">krb5_config_vget_bool</a> (krb5_context context, const krb5_config_section *c, va_list args)</td></tr>
72
73<tr><td class="memItemLeft" nowrap align="right" valign="top">KRB5_LIB_FUNCTION krb5_boolean <br>
74KRB5_LIB_CALL&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__krb5__support.html#gca6abdb90a74af3747f87bfb5e9c85ab">krb5_config_get_bool_default</a> (krb5_context context, const krb5_config_section *c, krb5_boolean def_value,...)</td></tr>
75
76<tr><td class="memItemLeft" nowrap align="right" valign="top">KRB5_LIB_FUNCTION krb5_boolean <br>
77KRB5_LIB_CALL&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__krb5__support.html#g39402ca8c1b1eb2af4b514eed826f971">krb5_config_get_bool</a> (krb5_context context, const krb5_config_section *c,...)</td></tr>
78
79<tr><td class="memItemLeft" nowrap align="right" valign="top">KRB5_LIB_FUNCTION int KRB5_LIB_CALL&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__krb5__support.html#g11d7ea1fa9a910acb568c42d8dd28350">krb5_config_vget_time_default</a> (krb5_context context, const krb5_config_section *c, int def_value, va_list args)</td></tr>
80
81<tr><td class="memItemLeft" nowrap align="right" valign="top">KRB5_LIB_FUNCTION int KRB5_LIB_CALL&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__krb5__support.html#g88331c69f41e1e65abc49a9b66efc7d5">krb5_config_vget_time</a> (krb5_context context, const krb5_config_section *c, va_list args)</td></tr>
82
83<tr><td class="memItemLeft" nowrap align="right" valign="top">KRB5_LIB_FUNCTION int KRB5_LIB_CALL&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__krb5__support.html#g019554d71140a32f64b6e4a2244d1168">krb5_config_get_time_default</a> (krb5_context context, const krb5_config_section *c, int def_value,...)</td></tr>
84
85<tr><td class="memItemLeft" nowrap align="right" valign="top">KRB5_LIB_FUNCTION int KRB5_LIB_CALL&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__krb5__support.html#gf797bad7e8499b7be6099ccff7f56226">krb5_config_get_time</a> (krb5_context context, const krb5_config_section *c,...)</td></tr>
86
87<tr><td class="memItemLeft" nowrap align="right" valign="top">KRB5_LIB_FUNCTION <br>
88krb5_error_code KRB5_LIB_CALL&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__krb5__support.html#g947f1780e8b73fe0edb4f64da2f0b2f3">krb5_expand_hostname</a> (krb5_context context, const char *orig_hostname, char **new_hostname)</td></tr>
89
90<tr><td class="memItemLeft" nowrap align="right" valign="top">KRB5_LIB_FUNCTION <br>
91krb5_error_code KRB5_LIB_CALL&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__krb5__support.html#g933f524c34ae6a80ba8aa6c0700992ef">krb5_expand_hostname_realms</a> (krb5_context context, const char *orig_hostname, char **new_hostname, char ***realms)</td></tr>
92
93<tr><td class="memItemLeft" nowrap align="right" valign="top">KRB5_LIB_FUNCTION <br>
94krb5_error_code KRB5_LIB_CALL&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__krb5__support.html#gca0ab80d3affb5986aa5061f3782401b">krb5_free_host_realm</a> (krb5_context context, krb5_realm *realmlist)</td></tr>
95
96<tr><td class="memItemLeft" nowrap align="right" valign="top">KRB5_LIB_FUNCTION krb5_boolean <br>
97KRB5_LIB_CALL&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__krb5__support.html#g6368eceea4261ef2ccb8dc39ecc87772">krb5_kuserok</a> (krb5_context context, krb5_principal principal, const char *luser)</td></tr>
98
99<tr><td class="memItemLeft" nowrap align="right" valign="top">KRB5_LIB_FUNCTION <br>
100krb5_error_code KRB5_LIB_CALL&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__krb5__support.html#gb6e4d59cca3b2e65abbd83204ad0e789">krb5_plugin_register</a> (krb5_context context, enum krb5_plugin_type type, const char *name, void *symbol)</td></tr>
101
102</table>
103<hr><a name="_details"></a><h2>Detailed Description</h2>
104<hr><h2>Function Documentation</h2>
105<a class="anchor" name="g7c5dbc1743dc0bc63765edf82d10eb9e"></a><!-- doxytag: member="acl.c::krb5_acl_match_file" ref="g7c5dbc1743dc0bc63765edf82d10eb9e" args="(krb5_context context, const char *file, const char *format,...)" -->
106<div class="memitem">
107<div class="memproto">
108      <table class="memname">
109        <tr>
110          <td class="memname">KRB5_LIB_FUNCTION krb5_error_code KRB5_LIB_CALL krb5_acl_match_file           </td>
111          <td>(</td>
112          <td class="paramtype">krb5_context&nbsp;</td>
113          <td class="paramname"> <em>context</em>, </td>
114        </tr>
115        <tr>
116          <td class="paramkey"></td>
117          <td></td>
118          <td class="paramtype">const char *&nbsp;</td>
119          <td class="paramname"> <em>file</em>, </td>
120        </tr>
121        <tr>
122          <td class="paramkey"></td>
123          <td></td>
124          <td class="paramtype">const char *&nbsp;</td>
125          <td class="paramname"> <em>format</em>, </td>
126        </tr>
127        <tr>
128          <td class="paramkey"></td>
129          <td></td>
130          <td class="paramtype">&nbsp;</td>
131          <td class="paramname"> <em>...</em></td><td>&nbsp;</td>
132        </tr>
133        <tr>
134          <td></td>
135          <td>)</td>
136          <td></td><td></td><td></td>
137        </tr>
138      </table>
139</div>
140<div class="memdoc">
141
142<p>
143krb5_acl_match_file matches ACL format against each line in a file using <a class="el" href="group__krb5__support.html#g245208f2d59a8fd7187089ad445e51d0">krb5_acl_match_string()</a>. Lines starting with # are treated like comments and ignored.<p>
144<dl compact><dt><b>Parameters:</b></dt><dd>
145  <table border="0" cellspacing="2" cellpadding="0">
146    <tr><td valign="top"></td><td valign="top"><em>context</em>&nbsp;</td><td>Kerberos 5 context. </td></tr>
147    <tr><td valign="top"></td><td valign="top"><em>file</em>&nbsp;</td><td>file with acl listed in the file. </td></tr>
148    <tr><td valign="top"></td><td valign="top"><em>format</em>&nbsp;</td><td>format to match. </td></tr>
149    <tr><td valign="top"></td><td valign="top"><em>...</em>&nbsp;</td><td>parameter to format string.</td></tr>
150  </table>
151</dl>
152<dl class="return" compact><dt><b>Returns:</b></dt><dd>Return an error code or 0.</dd></dl>
153<dl class="see" compact><dt><b>See also:</b></dt><dd><a class="el" href="group__krb5__support.html#g245208f2d59a8fd7187089ad445e51d0">krb5_acl_match_string</a> </dd></dl>
154
155</div>
156</div><p>
157<a class="anchor" name="g245208f2d59a8fd7187089ad445e51d0"></a><!-- doxytag: member="acl.c::krb5_acl_match_string" ref="g245208f2d59a8fd7187089ad445e51d0" args="(krb5_context context, const char *string, const char *format,...)" -->
158<div class="memitem">
159<div class="memproto">
160      <table class="memname">
161        <tr>
162          <td class="memname">KRB5_LIB_FUNCTION krb5_error_code KRB5_LIB_CALL krb5_acl_match_string           </td>
163          <td>(</td>
164          <td class="paramtype">krb5_context&nbsp;</td>
165          <td class="paramname"> <em>context</em>, </td>
166        </tr>
167        <tr>
168          <td class="paramkey"></td>
169          <td></td>
170          <td class="paramtype">const char *&nbsp;</td>
171          <td class="paramname"> <em>string</em>, </td>
172        </tr>
173        <tr>
174          <td class="paramkey"></td>
175          <td></td>
176          <td class="paramtype">const char *&nbsp;</td>
177          <td class="paramname"> <em>format</em>, </td>
178        </tr>
179        <tr>
180          <td class="paramkey"></td>
181          <td></td>
182          <td class="paramtype">&nbsp;</td>
183          <td class="paramname"> <em>...</em></td><td>&nbsp;</td>
184        </tr>
185        <tr>
186          <td></td>
187          <td>)</td>
188          <td></td><td></td><td></td>
189        </tr>
190      </table>
191</div>
192<div class="memdoc">
193
194<p>
195krb5_acl_match_string matches ACL format against a string.<p>
196The ACL format has three format specifiers: s, f, and r. Each specifier will retrieve one argument from the variable arguments for either matching or storing data. The input string is split up using " " (space) and "\t" (tab) as a delimiter; multiple and "\t" in a row are considered to be the same.<p>
197List of format specifiers:<ul>
198<li>s Matches a string using strcmp(3) (case sensitive).</li><li>f Matches the string with fnmatch(3). Theflags argument (the last argument) passed to the fnmatch function is 0.</li><li>r Returns a copy of the string in the char ** passed in; the copy must be freed with free(3). There is no need to free(3) the string on error: the function will clean up and set the pointer to NULL.</li></ul>
199<p>
200<dl compact><dt><b>Parameters:</b></dt><dd>
201  <table border="0" cellspacing="2" cellpadding="0">
202    <tr><td valign="top"></td><td valign="top"><em>context</em>&nbsp;</td><td>Kerberos 5 context </td></tr>
203    <tr><td valign="top"></td><td valign="top"><em>string</em>&nbsp;</td><td>string to match with </td></tr>
204    <tr><td valign="top"></td><td valign="top"><em>format</em>&nbsp;</td><td>format to match </td></tr>
205    <tr><td valign="top"></td><td valign="top"><em>...</em>&nbsp;</td><td>parameter to format string</td></tr>
206  </table>
207</dl>
208<dl class="return" compact><dt><b>Returns:</b></dt><dd>Return an error code or 0.</dd></dl>
209<div class="fragment"><pre class="fragment"> <span class="keywordtype">char</span> *s;
210
211 ret = <a class="code" href="group__krb5__support.html#g245208f2d59a8fd7187089ad445e51d0">krb5_acl_match_string</a>(context, <span class="stringliteral">"foo"</span>, <span class="stringliteral">"s"</span>, <span class="stringliteral">"foo"</span>);
212 <span class="keywordflow">if</span> (ret)
213     krb5_errx(context, 1, <span class="stringliteral">"acl didn't match"</span>);
214 ret = <a class="code" href="group__krb5__support.html#g245208f2d59a8fd7187089ad445e51d0">krb5_acl_match_string</a>(context, <span class="stringliteral">"foo foo baz/kaka"</span>,
215     <span class="stringliteral">"ss"</span>, <span class="stringliteral">"foo"</span>, &amp;s, <span class="stringliteral">"foo/\\*"</span>);
216 <span class="keywordflow">if</span> (ret) {
217     <span class="comment">// no need to free(s) on error</span>
218     assert(s == NULL);
219     krb5_errx(context, 1, <span class="stringliteral">"acl didn't match"</span>);
220 }
221 free(s);
222</pre></div><p>
223<dl class="see" compact><dt><b>See also:</b></dt><dd><a class="el" href="group__krb5__support.html#g7c5dbc1743dc0bc63765edf82d10eb9e">krb5_acl_match_file</a> </dd></dl>
224
225</div>
226</div><p>
227<a class="anchor" name="g84277205c4b221cc28f1fd36be19dba8"></a><!-- doxytag: member="config_file.c::krb5_config_file_free" ref="g84277205c4b221cc28f1fd36be19dba8" args="(krb5_context context, krb5_config_section *s)" -->
228<div class="memitem">
229<div class="memproto">
230      <table class="memname">
231        <tr>
232          <td class="memname">KRB5_LIB_FUNCTION krb5_error_code KRB5_LIB_CALL krb5_config_file_free           </td>
233          <td>(</td>
234          <td class="paramtype">krb5_context&nbsp;</td>
235          <td class="paramname"> <em>context</em>, </td>
236        </tr>
237        <tr>
238          <td class="paramkey"></td>
239          <td></td>
240          <td class="paramtype">krb5_config_section *&nbsp;</td>
241          <td class="paramname"> <em>s</em></td><td>&nbsp;</td>
242        </tr>
243        <tr>
244          <td></td>
245          <td>)</td>
246          <td></td><td></td><td></td>
247        </tr>
248      </table>
249</div>
250<div class="memdoc">
251
252<p>
253Free configuration file section, the result of krb5_config_parse_file() and <a class="el" href="group__krb5__support.html#g59892cdf61d0a6a59b3dd2e9998b541a">krb5_config_parse_file_multi()</a>.<p>
254<dl compact><dt><b>Parameters:</b></dt><dd>
255  <table border="0" cellspacing="2" cellpadding="0">
256    <tr><td valign="top"></td><td valign="top"><em>context</em>&nbsp;</td><td>A Kerberos 5 context </td></tr>
257    <tr><td valign="top"></td><td valign="top"><em>s</em>&nbsp;</td><td>the configuration section to free</td></tr>
258  </table>
259</dl>
260<dl class="return" compact><dt><b>Returns:</b></dt><dd>returns 0 on successes, otherwise an error code, see krb5_get_error_message() </dd></dl>
261
262</div>
263</div><p>
264<a class="anchor" name="g3440f86b07fa86aae0f0889445a0def2"></a><!-- doxytag: member="config_file.c::krb5_config_free_strings" ref="g3440f86b07fa86aae0f0889445a0def2" args="(char **strings)" -->
265<div class="memitem">
266<div class="memproto">
267      <table class="memname">
268        <tr>
269          <td class="memname">KRB5_LIB_FUNCTION void KRB5_LIB_CALL krb5_config_free_strings           </td>
270          <td>(</td>
271          <td class="paramtype">char **&nbsp;</td>
272          <td class="paramname"> <em>strings</em>          </td>
273          <td>&nbsp;)&nbsp;</td>
274          <td></td>
275        </tr>
276      </table>
277</div>
278<div class="memdoc">
279
280<p>
281Free the resulting strings from krb5_config-get_strings() and <a class="el" href="group__krb5__support.html#g614850564b4d21b92e113fde9420bf3c">krb5_config_vget_strings()</a>.<p>
282<dl compact><dt><b>Parameters:</b></dt><dd>
283  <table border="0" cellspacing="2" cellpadding="0">
284    <tr><td valign="top"></td><td valign="top"><em>strings</em>&nbsp;</td><td>strings to free </td></tr>
285  </table>
286</dl>
287
288</div>
289</div><p>
290<a class="anchor" name="g39402ca8c1b1eb2af4b514eed826f971"></a><!-- doxytag: member="config_file.c::krb5_config_get_bool" ref="g39402ca8c1b1eb2af4b514eed826f971" args="(krb5_context context, const krb5_config_section *c,...)" -->
291<div class="memitem">
292<div class="memproto">
293      <table class="memname">
294        <tr>
295          <td class="memname">KRB5_LIB_FUNCTION krb5_boolean KRB5_LIB_CALL krb5_config_get_bool           </td>
296          <td>(</td>
297          <td class="paramtype">krb5_context&nbsp;</td>
298          <td class="paramname"> <em>context</em>, </td>
299        </tr>
300        <tr>
301          <td class="paramkey"></td>
302          <td></td>
303          <td class="paramtype">const krb5_config_section *&nbsp;</td>
304          <td class="paramname"> <em>c</em>, </td>
305        </tr>
306        <tr>
307          <td class="paramkey"></td>
308          <td></td>
309          <td class="paramtype">&nbsp;</td>
310          <td class="paramname"> <em>...</em></td><td>&nbsp;</td>
311        </tr>
312        <tr>
313          <td></td>
314          <td>)</td>
315          <td></td><td></td><td></td>
316        </tr>
317      </table>
318</div>
319<div class="memdoc">
320
321<p>
322Like <a class="el" href="group__krb5__support.html#g39402ca8c1b1eb2af4b514eed826f971">krb5_config_get_bool()</a> but with a va_list list of configuration selection.<p>
323Configuration value to a boolean value, where yes/true and any non-zero number means TRUE and other value is FALSE.<p>
324<dl compact><dt><b>Parameters:</b></dt><dd>
325  <table border="0" cellspacing="2" cellpadding="0">
326    <tr><td valign="top"></td><td valign="top"><em>context</em>&nbsp;</td><td>A Kerberos 5 context. </td></tr>
327    <tr><td valign="top"></td><td valign="top"><em>c</em>&nbsp;</td><td>a configuration section, or NULL to use the section from context </td></tr>
328    <tr><td valign="top"></td><td valign="top"><em>...</em>&nbsp;</td><td>a list of names, terminated with NULL.</td></tr>
329  </table>
330</dl>
331<dl class="return" compact><dt><b>Returns:</b></dt><dd>TRUE or FALSE </dd></dl>
332
333</div>
334</div><p>
335<a class="anchor" name="gca6abdb90a74af3747f87bfb5e9c85ab"></a><!-- doxytag: member="config_file.c::krb5_config_get_bool_default" ref="gca6abdb90a74af3747f87bfb5e9c85ab" args="(krb5_context context, const krb5_config_section *c, krb5_boolean def_value,...)" -->
336<div class="memitem">
337<div class="memproto">
338      <table class="memname">
339        <tr>
340          <td class="memname">KRB5_LIB_FUNCTION krb5_boolean KRB5_LIB_CALL krb5_config_get_bool_default           </td>
341          <td>(</td>
342          <td class="paramtype">krb5_context&nbsp;</td>
343          <td class="paramname"> <em>context</em>, </td>
344        </tr>
345        <tr>
346          <td class="paramkey"></td>
347          <td></td>
348          <td class="paramtype">const krb5_config_section *&nbsp;</td>
349          <td class="paramname"> <em>c</em>, </td>
350        </tr>
351        <tr>
352          <td class="paramkey"></td>
353          <td></td>
354          <td class="paramtype">krb5_boolean&nbsp;</td>
355          <td class="paramname"> <em>def_value</em>, </td>
356        </tr>
357        <tr>
358          <td class="paramkey"></td>
359          <td></td>
360          <td class="paramtype">&nbsp;</td>
361          <td class="paramname"> <em>...</em></td><td>&nbsp;</td>
362        </tr>
363        <tr>
364          <td></td>
365          <td>)</td>
366          <td></td><td></td><td></td>
367        </tr>
368      </table>
369</div>
370<div class="memdoc">
371
372<p>
373<a class="el" href="group__krb5__support.html#gca6abdb90a74af3747f87bfb5e9c85ab">krb5_config_get_bool_default()</a> will convert the configuration option value to a boolean value, where yes/true and any non-zero number means TRUE and other value is FALSE.<p>
374<dl compact><dt><b>Parameters:</b></dt><dd>
375  <table border="0" cellspacing="2" cellpadding="0">
376    <tr><td valign="top"></td><td valign="top"><em>context</em>&nbsp;</td><td>A Kerberos 5 context. </td></tr>
377    <tr><td valign="top"></td><td valign="top"><em>c</em>&nbsp;</td><td>a configuration section, or NULL to use the section from context </td></tr>
378    <tr><td valign="top"></td><td valign="top"><em>def_value</em>&nbsp;</td><td>the default value to return if no configuration found in the database. </td></tr>
379    <tr><td valign="top"></td><td valign="top"><em>...</em>&nbsp;</td><td>a list of names, terminated with NULL.</td></tr>
380  </table>
381</dl>
382<dl class="return" compact><dt><b>Returns:</b></dt><dd>TRUE or FALSE </dd></dl>
383
384</div>
385</div><p>
386<a class="anchor" name="gee87399e25e34ac1e0e4a1841951e2fa"></a><!-- doxytag: member="config_file.c::krb5_config_get_list" ref="gee87399e25e34ac1e0e4a1841951e2fa" args="(krb5_context context, const krb5_config_section *c,...)" -->
387<div class="memitem">
388<div class="memproto">
389      <table class="memname">
390        <tr>
391          <td class="memname">KRB5_LIB_FUNCTION const krb5_config_binding* KRB5_LIB_CALL krb5_config_get_list           </td>
392          <td>(</td>
393          <td class="paramtype">krb5_context&nbsp;</td>
394          <td class="paramname"> <em>context</em>, </td>
395        </tr>
396        <tr>
397          <td class="paramkey"></td>
398          <td></td>
399          <td class="paramtype">const krb5_config_section *&nbsp;</td>
400          <td class="paramname"> <em>c</em>, </td>
401        </tr>
402        <tr>
403          <td class="paramkey"></td>
404          <td></td>
405          <td class="paramtype">&nbsp;</td>
406          <td class="paramname"> <em>...</em></td><td>&nbsp;</td>
407        </tr>
408        <tr>
409          <td></td>
410          <td>)</td>
411          <td></td><td></td><td></td>
412        </tr>
413      </table>
414</div>
415<div class="memdoc">
416
417<p>
418Get a list of configuration binding list for more processing<p>
419<dl compact><dt><b>Parameters:</b></dt><dd>
420  <table border="0" cellspacing="2" cellpadding="0">
421    <tr><td valign="top"></td><td valign="top"><em>context</em>&nbsp;</td><td>A Kerberos 5 context. </td></tr>
422    <tr><td valign="top"></td><td valign="top"><em>c</em>&nbsp;</td><td>a configuration section, or NULL to use the section from context </td></tr>
423    <tr><td valign="top"></td><td valign="top"><em>...</em>&nbsp;</td><td>a list of names, terminated with NULL.</td></tr>
424  </table>
425</dl>
426<dl class="return" compact><dt><b>Returns:</b></dt><dd>NULL if configuration list is not found, a list otherwise </dd></dl>
427
428</div>
429</div><p>
430<a class="anchor" name="gc0845cba8c8f7fd2e447de60d81556ac"></a><!-- doxytag: member="config_file.c::krb5_config_get_string" ref="gc0845cba8c8f7fd2e447de60d81556ac" args="(krb5_context context, const krb5_config_section *c,...)" -->
431<div class="memitem">
432<div class="memproto">
433      <table class="memname">
434        <tr>
435          <td class="memname">KRB5_LIB_FUNCTION const char* KRB5_LIB_CALL krb5_config_get_string           </td>
436          <td>(</td>
437          <td class="paramtype">krb5_context&nbsp;</td>
438          <td class="paramname"> <em>context</em>, </td>
439        </tr>
440        <tr>
441          <td class="paramkey"></td>
442          <td></td>
443          <td class="paramtype">const krb5_config_section *&nbsp;</td>
444          <td class="paramname"> <em>c</em>, </td>
445        </tr>
446        <tr>
447          <td class="paramkey"></td>
448          <td></td>
449          <td class="paramtype">&nbsp;</td>
450          <td class="paramname"> <em>...</em></td><td>&nbsp;</td>
451        </tr>
452        <tr>
453          <td></td>
454          <td>)</td>
455          <td></td><td></td><td></td>
456        </tr>
457      </table>
458</div>
459<div class="memdoc">
460
461<p>
462Returns a "const char *" to a string in the configuration database. The string may not be valid after a reload of the configuration database so a caller should make a local copy if it needs to keep the string.<p>
463<dl compact><dt><b>Parameters:</b></dt><dd>
464  <table border="0" cellspacing="2" cellpadding="0">
465    <tr><td valign="top"></td><td valign="top"><em>context</em>&nbsp;</td><td>A Kerberos 5 context. </td></tr>
466    <tr><td valign="top"></td><td valign="top"><em>c</em>&nbsp;</td><td>a configuration section, or NULL to use the section from context </td></tr>
467    <tr><td valign="top"></td><td valign="top"><em>...</em>&nbsp;</td><td>a list of names, terminated with NULL.</td></tr>
468  </table>
469</dl>
470<dl class="return" compact><dt><b>Returns:</b></dt><dd>NULL if configuration string not found, a string otherwise </dd></dl>
471
472</div>
473</div><p>
474<a class="anchor" name="gaef298c290e0c315d7f4bf07ba272b60"></a><!-- doxytag: member="config_file.c::krb5_config_get_string_default" ref="gaef298c290e0c315d7f4bf07ba272b60" args="(krb5_context context, const krb5_config_section *c, const char *def_value,...)" -->
475<div class="memitem">
476<div class="memproto">
477      <table class="memname">
478        <tr>
479          <td class="memname">KRB5_LIB_FUNCTION const char* KRB5_LIB_CALL krb5_config_get_string_default           </td>
480          <td>(</td>
481          <td class="paramtype">krb5_context&nbsp;</td>
482          <td class="paramname"> <em>context</em>, </td>
483        </tr>
484        <tr>
485          <td class="paramkey"></td>
486          <td></td>
487          <td class="paramtype">const krb5_config_section *&nbsp;</td>
488          <td class="paramname"> <em>c</em>, </td>
489        </tr>
490        <tr>
491          <td class="paramkey"></td>
492          <td></td>
493          <td class="paramtype">const char *&nbsp;</td>
494          <td class="paramname"> <em>def_value</em>, </td>
495        </tr>
496        <tr>
497          <td class="paramkey"></td>
498          <td></td>
499          <td class="paramtype">&nbsp;</td>
500          <td class="paramname"> <em>...</em></td><td>&nbsp;</td>
501        </tr>
502        <tr>
503          <td></td>
504          <td>)</td>
505          <td></td><td></td><td></td>
506        </tr>
507      </table>
508</div>
509<div class="memdoc">
510
511<p>
512Like <a class="el" href="group__krb5__support.html#gc0845cba8c8f7fd2e447de60d81556ac">krb5_config_get_string()</a>, but instead of returning NULL, instead return a default value.<p>
513<dl compact><dt><b>Parameters:</b></dt><dd>
514  <table border="0" cellspacing="2" cellpadding="0">
515    <tr><td valign="top"></td><td valign="top"><em>context</em>&nbsp;</td><td>A Kerberos 5 context. </td></tr>
516    <tr><td valign="top"></td><td valign="top"><em>c</em>&nbsp;</td><td>a configuration section, or NULL to use the section from context </td></tr>
517    <tr><td valign="top"></td><td valign="top"><em>def_value</em>&nbsp;</td><td>the default value to return if no configuration found in the database. </td></tr>
518    <tr><td valign="top"></td><td valign="top"><em>...</em>&nbsp;</td><td>a list of names, terminated with NULL.</td></tr>
519  </table>
520</dl>
521<dl class="return" compact><dt><b>Returns:</b></dt><dd>a configuration string </dd></dl>
522
523</div>
524</div><p>
525<a class="anchor" name="g8f43dbe4a34a820a70d081e5d3190e01"></a><!-- doxytag: member="config_file.c::krb5_config_get_strings" ref="g8f43dbe4a34a820a70d081e5d3190e01" args="(krb5_context context, const krb5_config_section *c,...)" -->
526<div class="memitem">
527<div class="memproto">
528      <table class="memname">
529        <tr>
530          <td class="memname">KRB5_LIB_FUNCTION char** KRB5_LIB_CALL krb5_config_get_strings           </td>
531          <td>(</td>
532          <td class="paramtype">krb5_context&nbsp;</td>
533          <td class="paramname"> <em>context</em>, </td>
534        </tr>
535        <tr>
536          <td class="paramkey"></td>
537          <td></td>
538          <td class="paramtype">const krb5_config_section *&nbsp;</td>
539          <td class="paramname"> <em>c</em>, </td>
540        </tr>
541        <tr>
542          <td class="paramkey"></td>
543          <td></td>
544          <td class="paramtype">&nbsp;</td>
545          <td class="paramname"> <em>...</em></td><td>&nbsp;</td>
546        </tr>
547        <tr>
548          <td></td>
549          <td>)</td>
550          <td></td><td></td><td></td>
551        </tr>
552      </table>
553</div>
554<div class="memdoc">
555
556<p>
557Get a list of configuration strings, free the result with <a class="el" href="group__krb5__support.html#g3440f86b07fa86aae0f0889445a0def2">krb5_config_free_strings()</a>.<p>
558<dl compact><dt><b>Parameters:</b></dt><dd>
559  <table border="0" cellspacing="2" cellpadding="0">
560    <tr><td valign="top"></td><td valign="top"><em>context</em>&nbsp;</td><td>A Kerberos 5 context. </td></tr>
561    <tr><td valign="top"></td><td valign="top"><em>c</em>&nbsp;</td><td>a configuration section, or NULL to use the section from context </td></tr>
562    <tr><td valign="top"></td><td valign="top"><em>...</em>&nbsp;</td><td>a list of names, terminated with NULL.</td></tr>
563  </table>
564</dl>
565<dl class="return" compact><dt><b>Returns:</b></dt><dd>TRUE or FALSE </dd></dl>
566
567</div>
568</div><p>
569<a class="anchor" name="gf797bad7e8499b7be6099ccff7f56226"></a><!-- doxytag: member="config_file.c::krb5_config_get_time" ref="gf797bad7e8499b7be6099ccff7f56226" args="(krb5_context context, const krb5_config_section *c,...)" -->
570<div class="memitem">
571<div class="memproto">
572      <table class="memname">
573        <tr>
574          <td class="memname">KRB5_LIB_FUNCTION int KRB5_LIB_CALL krb5_config_get_time           </td>
575          <td>(</td>
576          <td class="paramtype">krb5_context&nbsp;</td>
577          <td class="paramname"> <em>context</em>, </td>
578        </tr>
579        <tr>
580          <td class="paramkey"></td>
581          <td></td>
582          <td class="paramtype">const krb5_config_section *&nbsp;</td>
583          <td class="paramname"> <em>c</em>, </td>
584        </tr>
585        <tr>
586          <td class="paramkey"></td>
587          <td></td>
588          <td class="paramtype">&nbsp;</td>
589          <td class="paramname"> <em>...</em></td><td>&nbsp;</td>
590        </tr>
591        <tr>
592          <td></td>
593          <td>)</td>
594          <td></td><td></td><td></td>
595        </tr>
596      </table>
597</div>
598<div class="memdoc">
599
600<p>
601Get the time from the configuration file using a relative time, for example: 1h30s<p>
602<dl compact><dt><b>Parameters:</b></dt><dd>
603  <table border="0" cellspacing="2" cellpadding="0">
604    <tr><td valign="top"></td><td valign="top"><em>context</em>&nbsp;</td><td>A Kerberos 5 context. </td></tr>
605    <tr><td valign="top"></td><td valign="top"><em>c</em>&nbsp;</td><td>a configuration section, or NULL to use the section from context </td></tr>
606    <tr><td valign="top"></td><td valign="top"><em>...</em>&nbsp;</td><td>a list of names, terminated with NULL.</td></tr>
607  </table>
608</dl>
609<dl class="return" compact><dt><b>Returns:</b></dt><dd>parsed the time or -1 on error </dd></dl>
610
611</div>
612</div><p>
613<a class="anchor" name="g019554d71140a32f64b6e4a2244d1168"></a><!-- doxytag: member="config_file.c::krb5_config_get_time_default" ref="g019554d71140a32f64b6e4a2244d1168" args="(krb5_context context, const krb5_config_section *c, int def_value,...)" -->
614<div class="memitem">
615<div class="memproto">
616      <table class="memname">
617        <tr>
618          <td class="memname">KRB5_LIB_FUNCTION int KRB5_LIB_CALL krb5_config_get_time_default           </td>
619          <td>(</td>
620          <td class="paramtype">krb5_context&nbsp;</td>
621          <td class="paramname"> <em>context</em>, </td>
622        </tr>
623        <tr>
624          <td class="paramkey"></td>
625          <td></td>
626          <td class="paramtype">const krb5_config_section *&nbsp;</td>
627          <td class="paramname"> <em>c</em>, </td>
628        </tr>
629        <tr>
630          <td class="paramkey"></td>
631          <td></td>
632          <td class="paramtype">int&nbsp;</td>
633          <td class="paramname"> <em>def_value</em>, </td>
634        </tr>
635        <tr>
636          <td class="paramkey"></td>
637          <td></td>
638          <td class="paramtype">&nbsp;</td>
639          <td class="paramname"> <em>...</em></td><td>&nbsp;</td>
640        </tr>
641        <tr>
642          <td></td>
643          <td>)</td>
644          <td></td><td></td><td></td>
645        </tr>
646      </table>
647</div>
648<div class="memdoc">
649
650<p>
651Get the time from the configuration file using a relative time, for example: 1h30s<p>
652<dl compact><dt><b>Parameters:</b></dt><dd>
653  <table border="0" cellspacing="2" cellpadding="0">
654    <tr><td valign="top"></td><td valign="top"><em>context</em>&nbsp;</td><td>A Kerberos 5 context. </td></tr>
655    <tr><td valign="top"></td><td valign="top"><em>c</em>&nbsp;</td><td>a configuration section, or NULL to use the section from context </td></tr>
656    <tr><td valign="top"></td><td valign="top"><em>def_value</em>&nbsp;</td><td>the default value to return if no configuration found in the database. </td></tr>
657    <tr><td valign="top"></td><td valign="top"><em>...</em>&nbsp;</td><td>a list of names, terminated with NULL.</td></tr>
658  </table>
659</dl>
660<dl class="return" compact><dt><b>Returns:</b></dt><dd>parsed the time (or def_value on parse error) </dd></dl>
661
662</div>
663</div><p>
664<a class="anchor" name="g59892cdf61d0a6a59b3dd2e9998b541a"></a><!-- doxytag: member="config_file.c::krb5_config_parse_file_multi" ref="g59892cdf61d0a6a59b3dd2e9998b541a" args="(krb5_context context, const char *fname, krb5_config_section **res)" -->
665<div class="memitem">
666<div class="memproto">
667      <table class="memname">
668        <tr>
669          <td class="memname">KRB5_LIB_FUNCTION krb5_error_code KRB5_LIB_CALL krb5_config_parse_file_multi           </td>
670          <td>(</td>
671          <td class="paramtype">krb5_context&nbsp;</td>
672          <td class="paramname"> <em>context</em>, </td>
673        </tr>
674        <tr>
675          <td class="paramkey"></td>
676          <td></td>
677          <td class="paramtype">const char *&nbsp;</td>
678          <td class="paramname"> <em>fname</em>, </td>
679        </tr>
680        <tr>
681          <td class="paramkey"></td>
682          <td></td>
683          <td class="paramtype">krb5_config_section **&nbsp;</td>
684          <td class="paramname"> <em>res</em></td><td>&nbsp;</td>
685        </tr>
686        <tr>
687          <td></td>
688          <td>)</td>
689          <td></td><td></td><td></td>
690        </tr>
691      </table>
692</div>
693<div class="memdoc">
694
695<p>
696Parse a configuration file and add the result into res. This interface can be used to parse several configuration files into one resulting krb5_config_section by calling it repeatably.<p>
697<dl compact><dt><b>Parameters:</b></dt><dd>
698  <table border="0" cellspacing="2" cellpadding="0">
699    <tr><td valign="top"></td><td valign="top"><em>context</em>&nbsp;</td><td>a Kerberos 5 context. </td></tr>
700    <tr><td valign="top"></td><td valign="top"><em>fname</em>&nbsp;</td><td>a file name to a Kerberos configuration file </td></tr>
701    <tr><td valign="top"></td><td valign="top"><em>res</em>&nbsp;</td><td>the returned result, must be free with <a class="el" href="group__krb5.html#gce1b568d05875e7c4fbc6e5af5a8bdbf">krb5_free_config_files()</a>. </td></tr>
702  </table>
703</dl>
704<dl class="return" compact><dt><b>Returns:</b></dt><dd>Return an error code or 0, see krb5_get_error_message(). </dd></dl>
705
706<p>
707If the fname starts with "~/" parse configuration file in the current users home directory. The behavior can be disabled and enabled by calling <a class="el" href="group__krb5.html#g3a8e40d622ff1460b2f554d83a9059ea">krb5_set_home_dir_access()</a>.
708</div>
709</div><p>
710<a class="anchor" name="g16e5b2da5e3751d7b3d4fe8d43f0a677"></a><!-- doxytag: member="config_file.c::krb5_config_vget_bool" ref="g16e5b2da5e3751d7b3d4fe8d43f0a677" args="(krb5_context context, const krb5_config_section *c, va_list args)" -->
711<div class="memitem">
712<div class="memproto">
713      <table class="memname">
714        <tr>
715          <td class="memname">KRB5_LIB_FUNCTION krb5_boolean KRB5_LIB_CALL krb5_config_vget_bool           </td>
716          <td>(</td>
717          <td class="paramtype">krb5_context&nbsp;</td>
718          <td class="paramname"> <em>context</em>, </td>
719        </tr>
720        <tr>
721          <td class="paramkey"></td>
722          <td></td>
723          <td class="paramtype">const krb5_config_section *&nbsp;</td>
724          <td class="paramname"> <em>c</em>, </td>
725        </tr>
726        <tr>
727          <td class="paramkey"></td>
728          <td></td>
729          <td class="paramtype">va_list&nbsp;</td>
730          <td class="paramname"> <em>args</em></td><td>&nbsp;</td>
731        </tr>
732        <tr>
733          <td></td>
734          <td>)</td>
735          <td></td><td></td><td></td>
736        </tr>
737      </table>
738</div>
739<div class="memdoc">
740
741<p>
742<a class="el" href="group__krb5__support.html#g39402ca8c1b1eb2af4b514eed826f971">krb5_config_get_bool()</a> will convert the configuration option value to a boolean value, where yes/true and any non-zero number means TRUE and other value is FALSE.<p>
743<dl compact><dt><b>Parameters:</b></dt><dd>
744  <table border="0" cellspacing="2" cellpadding="0">
745    <tr><td valign="top"></td><td valign="top"><em>context</em>&nbsp;</td><td>A Kerberos 5 context. </td></tr>
746    <tr><td valign="top"></td><td valign="top"><em>c</em>&nbsp;</td><td>a configuration section, or NULL to use the section from context </td></tr>
747    <tr><td valign="top"></td><td valign="top"><em>args</em>&nbsp;</td><td>a va_list of arguments</td></tr>
748  </table>
749</dl>
750<dl class="return" compact><dt><b>Returns:</b></dt><dd>TRUE or FALSE </dd></dl>
751
752</div>
753</div><p>
754<a class="anchor" name="g8a29a130369232a638629cb37bfbeb66"></a><!-- doxytag: member="config_file.c::krb5_config_vget_bool_default" ref="g8a29a130369232a638629cb37bfbeb66" args="(krb5_context context, const krb5_config_section *c, krb5_boolean def_value, va_list args)" -->
755<div class="memitem">
756<div class="memproto">
757      <table class="memname">
758        <tr>
759          <td class="memname">KRB5_LIB_FUNCTION krb5_boolean KRB5_LIB_CALL krb5_config_vget_bool_default           </td>
760          <td>(</td>
761          <td class="paramtype">krb5_context&nbsp;</td>
762          <td class="paramname"> <em>context</em>, </td>
763        </tr>
764        <tr>
765          <td class="paramkey"></td>
766          <td></td>
767          <td class="paramtype">const krb5_config_section *&nbsp;</td>
768          <td class="paramname"> <em>c</em>, </td>
769        </tr>
770        <tr>
771          <td class="paramkey"></td>
772          <td></td>
773          <td class="paramtype">krb5_boolean&nbsp;</td>
774          <td class="paramname"> <em>def_value</em>, </td>
775        </tr>
776        <tr>
777          <td class="paramkey"></td>
778          <td></td>
779          <td class="paramtype">va_list&nbsp;</td>
780          <td class="paramname"> <em>args</em></td><td>&nbsp;</td>
781        </tr>
782        <tr>
783          <td></td>
784          <td>)</td>
785          <td></td><td></td><td></td>
786        </tr>
787      </table>
788</div>
789<div class="memdoc">
790
791<p>
792Like <a class="el" href="group__krb5__support.html#gca6abdb90a74af3747f87bfb5e9c85ab">krb5_config_get_bool_default()</a> but with a va_list list of configuration selection.<p>
793Configuration value to a boolean value, where yes/true and any non-zero number means TRUE and other value is FALSE.<p>
794<dl compact><dt><b>Parameters:</b></dt><dd>
795  <table border="0" cellspacing="2" cellpadding="0">
796    <tr><td valign="top"></td><td valign="top"><em>context</em>&nbsp;</td><td>A Kerberos 5 context. </td></tr>
797    <tr><td valign="top"></td><td valign="top"><em>c</em>&nbsp;</td><td>a configuration section, or NULL to use the section from context </td></tr>
798    <tr><td valign="top"></td><td valign="top"><em>def_value</em>&nbsp;</td><td>the default value to return if no configuration found in the database. </td></tr>
799    <tr><td valign="top"></td><td valign="top"><em>args</em>&nbsp;</td><td>a va_list of arguments</td></tr>
800  </table>
801</dl>
802<dl class="return" compact><dt><b>Returns:</b></dt><dd>TRUE or FALSE </dd></dl>
803
804</div>
805</div><p>
806<a class="anchor" name="gfbc6548d480aaf5118025b742f4f468d"></a><!-- doxytag: member="config_file.c::krb5_config_vget_list" ref="gfbc6548d480aaf5118025b742f4f468d" args="(krb5_context context, const krb5_config_section *c, va_list args)" -->
807<div class="memitem">
808<div class="memproto">
809      <table class="memname">
810        <tr>
811          <td class="memname">KRB5_LIB_FUNCTION const krb5_config_binding* KRB5_LIB_CALL krb5_config_vget_list           </td>
812          <td>(</td>
813          <td class="paramtype">krb5_context&nbsp;</td>
814          <td class="paramname"> <em>context</em>, </td>
815        </tr>
816        <tr>
817          <td class="paramkey"></td>
818          <td></td>
819          <td class="paramtype">const krb5_config_section *&nbsp;</td>
820          <td class="paramname"> <em>c</em>, </td>
821        </tr>
822        <tr>
823          <td class="paramkey"></td>
824          <td></td>
825          <td class="paramtype">va_list&nbsp;</td>
826          <td class="paramname"> <em>args</em></td><td>&nbsp;</td>
827        </tr>
828        <tr>
829          <td></td>
830          <td>)</td>
831          <td></td><td></td><td></td>
832        </tr>
833      </table>
834</div>
835<div class="memdoc">
836
837<p>
838Get a list of configuration binding list for more processing<p>
839<dl compact><dt><b>Parameters:</b></dt><dd>
840  <table border="0" cellspacing="2" cellpadding="0">
841    <tr><td valign="top"></td><td valign="top"><em>context</em>&nbsp;</td><td>A Kerberos 5 context. </td></tr>
842    <tr><td valign="top"></td><td valign="top"><em>c</em>&nbsp;</td><td>a configuration section, or NULL to use the section from context </td></tr>
843    <tr><td valign="top"></td><td valign="top"><em>args</em>&nbsp;</td><td>a va_list of arguments</td></tr>
844  </table>
845</dl>
846<dl class="return" compact><dt><b>Returns:</b></dt><dd>NULL if configuration list is not found, a list otherwise </dd></dl>
847
848</div>
849</div><p>
850<a class="anchor" name="gec7eaee2b6f04f1ed4a64b37efa767e4"></a><!-- doxytag: member="config_file.c::krb5_config_vget_string" ref="gec7eaee2b6f04f1ed4a64b37efa767e4" args="(krb5_context context, const krb5_config_section *c, va_list args)" -->
851<div class="memitem">
852<div class="memproto">
853      <table class="memname">
854        <tr>
855          <td class="memname">KRB5_LIB_FUNCTION const char* KRB5_LIB_CALL krb5_config_vget_string           </td>
856          <td>(</td>
857          <td class="paramtype">krb5_context&nbsp;</td>
858          <td class="paramname"> <em>context</em>, </td>
859        </tr>
860        <tr>
861          <td class="paramkey"></td>
862          <td></td>
863          <td class="paramtype">const krb5_config_section *&nbsp;</td>
864          <td class="paramname"> <em>c</em>, </td>
865        </tr>
866        <tr>
867          <td class="paramkey"></td>
868          <td></td>
869          <td class="paramtype">va_list&nbsp;</td>
870          <td class="paramname"> <em>args</em></td><td>&nbsp;</td>
871        </tr>
872        <tr>
873          <td></td>
874          <td>)</td>
875          <td></td><td></td><td></td>
876        </tr>
877      </table>
878</div>
879<div class="memdoc">
880
881<p>
882Like <a class="el" href="group__krb5__support.html#gc0845cba8c8f7fd2e447de60d81556ac">krb5_config_get_string()</a>, but uses a va_list instead of ...<p>
883<dl compact><dt><b>Parameters:</b></dt><dd>
884  <table border="0" cellspacing="2" cellpadding="0">
885    <tr><td valign="top"></td><td valign="top"><em>context</em>&nbsp;</td><td>A Kerberos 5 context. </td></tr>
886    <tr><td valign="top"></td><td valign="top"><em>c</em>&nbsp;</td><td>a configuration section, or NULL to use the section from context </td></tr>
887    <tr><td valign="top"></td><td valign="top"><em>args</em>&nbsp;</td><td>a va_list of arguments</td></tr>
888  </table>
889</dl>
890<dl class="return" compact><dt><b>Returns:</b></dt><dd>NULL if configuration string not found, a string otherwise </dd></dl>
891
892</div>
893</div><p>
894<a class="anchor" name="g124f18195eb05c3662ce2bcf06c7451b"></a><!-- doxytag: member="config_file.c::krb5_config_vget_string_default" ref="g124f18195eb05c3662ce2bcf06c7451b" args="(krb5_context context, const krb5_config_section *c, const char *def_value, va_list args)" -->
895<div class="memitem">
896<div class="memproto">
897      <table class="memname">
898        <tr>
899          <td class="memname">KRB5_LIB_FUNCTION const char* KRB5_LIB_CALL krb5_config_vget_string_default           </td>
900          <td>(</td>
901          <td class="paramtype">krb5_context&nbsp;</td>
902          <td class="paramname"> <em>context</em>, </td>
903        </tr>
904        <tr>
905          <td class="paramkey"></td>
906          <td></td>
907          <td class="paramtype">const krb5_config_section *&nbsp;</td>
908          <td class="paramname"> <em>c</em>, </td>
909        </tr>
910        <tr>
911          <td class="paramkey"></td>
912          <td></td>
913          <td class="paramtype">const char *&nbsp;</td>
914          <td class="paramname"> <em>def_value</em>, </td>
915        </tr>
916        <tr>
917          <td class="paramkey"></td>
918          <td></td>
919          <td class="paramtype">va_list&nbsp;</td>
920          <td class="paramname"> <em>args</em></td><td>&nbsp;</td>
921        </tr>
922        <tr>
923          <td></td>
924          <td>)</td>
925          <td></td><td></td><td></td>
926        </tr>
927      </table>
928</div>
929<div class="memdoc">
930
931<p>
932Like <a class="el" href="group__krb5__support.html#gec7eaee2b6f04f1ed4a64b37efa767e4">krb5_config_vget_string()</a>, but instead of returning NULL, instead return a default value.<p>
933<dl compact><dt><b>Parameters:</b></dt><dd>
934  <table border="0" cellspacing="2" cellpadding="0">
935    <tr><td valign="top"></td><td valign="top"><em>context</em>&nbsp;</td><td>A Kerberos 5 context. </td></tr>
936    <tr><td valign="top"></td><td valign="top"><em>c</em>&nbsp;</td><td>a configuration section, or NULL to use the section from context </td></tr>
937    <tr><td valign="top"></td><td valign="top"><em>def_value</em>&nbsp;</td><td>the default value to return if no configuration found in the database. </td></tr>
938    <tr><td valign="top"></td><td valign="top"><em>args</em>&nbsp;</td><td>a va_list of arguments</td></tr>
939  </table>
940</dl>
941<dl class="return" compact><dt><b>Returns:</b></dt><dd>a configuration string </dd></dl>
942
943</div>
944</div><p>
945<a class="anchor" name="g614850564b4d21b92e113fde9420bf3c"></a><!-- doxytag: member="config_file.c::krb5_config_vget_strings" ref="g614850564b4d21b92e113fde9420bf3c" args="(krb5_context context, const krb5_config_section *c, va_list args)" -->
946<div class="memitem">
947<div class="memproto">
948      <table class="memname">
949        <tr>
950          <td class="memname">KRB5_LIB_FUNCTION char** KRB5_LIB_CALL krb5_config_vget_strings           </td>
951          <td>(</td>
952          <td class="paramtype">krb5_context&nbsp;</td>
953          <td class="paramname"> <em>context</em>, </td>
954        </tr>
955        <tr>
956          <td class="paramkey"></td>
957          <td></td>
958          <td class="paramtype">const krb5_config_section *&nbsp;</td>
959          <td class="paramname"> <em>c</em>, </td>
960        </tr>
961        <tr>
962          <td class="paramkey"></td>
963          <td></td>
964          <td class="paramtype">va_list&nbsp;</td>
965          <td class="paramname"> <em>args</em></td><td>&nbsp;</td>
966        </tr>
967        <tr>
968          <td></td>
969          <td>)</td>
970          <td></td><td></td><td></td>
971        </tr>
972      </table>
973</div>
974<div class="memdoc">
975
976<p>
977Get a list of configuration strings, free the result with <a class="el" href="group__krb5__support.html#g3440f86b07fa86aae0f0889445a0def2">krb5_config_free_strings()</a>.<p>
978<dl compact><dt><b>Parameters:</b></dt><dd>
979  <table border="0" cellspacing="2" cellpadding="0">
980    <tr><td valign="top"></td><td valign="top"><em>context</em>&nbsp;</td><td>A Kerberos 5 context. </td></tr>
981    <tr><td valign="top"></td><td valign="top"><em>c</em>&nbsp;</td><td>a configuration section, or NULL to use the section from context </td></tr>
982    <tr><td valign="top"></td><td valign="top"><em>args</em>&nbsp;</td><td>a va_list of arguments</td></tr>
983  </table>
984</dl>
985<dl class="return" compact><dt><b>Returns:</b></dt><dd>TRUE or FALSE </dd></dl>
986
987</div>
988</div><p>
989<a class="anchor" name="g88331c69f41e1e65abc49a9b66efc7d5"></a><!-- doxytag: member="config_file.c::krb5_config_vget_time" ref="g88331c69f41e1e65abc49a9b66efc7d5" args="(krb5_context context, const krb5_config_section *c, va_list args)" -->
990<div class="memitem">
991<div class="memproto">
992      <table class="memname">
993        <tr>
994          <td class="memname">KRB5_LIB_FUNCTION int KRB5_LIB_CALL krb5_config_vget_time           </td>
995          <td>(</td>
996          <td class="paramtype">krb5_context&nbsp;</td>
997          <td class="paramname"> <em>context</em>, </td>
998        </tr>
999        <tr>
1000          <td class="paramkey"></td>
1001          <td></td>
1002          <td class="paramtype">const krb5_config_section *&nbsp;</td>
1003          <td class="paramname"> <em>c</em>, </td>
1004        </tr>
1005        <tr>
1006          <td class="paramkey"></td>
1007          <td></td>
1008          <td class="paramtype">va_list&nbsp;</td>
1009          <td class="paramname"> <em>args</em></td><td>&nbsp;</td>
1010        </tr>
1011        <tr>
1012          <td></td>
1013          <td>)</td>
1014          <td></td><td></td><td></td>
1015        </tr>
1016      </table>
1017</div>
1018<div class="memdoc">
1019
1020<p>
1021Get the time from the configuration file using a relative time, for example: 1h30s<p>
1022<dl compact><dt><b>Parameters:</b></dt><dd>
1023  <table border="0" cellspacing="2" cellpadding="0">
1024    <tr><td valign="top"></td><td valign="top"><em>context</em>&nbsp;</td><td>A Kerberos 5 context. </td></tr>
1025    <tr><td valign="top"></td><td valign="top"><em>c</em>&nbsp;</td><td>a configuration section, or NULL to use the section from context </td></tr>
1026    <tr><td valign="top"></td><td valign="top"><em>args</em>&nbsp;</td><td>a va_list of arguments</td></tr>
1027  </table>
1028</dl>
1029<dl class="return" compact><dt><b>Returns:</b></dt><dd>parsed the time or -1 on error </dd></dl>
1030
1031</div>
1032</div><p>
1033<a class="anchor" name="g11d7ea1fa9a910acb568c42d8dd28350"></a><!-- doxytag: member="config_file.c::krb5_config_vget_time_default" ref="g11d7ea1fa9a910acb568c42d8dd28350" args="(krb5_context context, const krb5_config_section *c, int def_value, va_list args)" -->
1034<div class="memitem">
1035<div class="memproto">
1036      <table class="memname">
1037        <tr>
1038          <td class="memname">KRB5_LIB_FUNCTION int KRB5_LIB_CALL krb5_config_vget_time_default           </td>
1039          <td>(</td>
1040          <td class="paramtype">krb5_context&nbsp;</td>
1041          <td class="paramname"> <em>context</em>, </td>
1042        </tr>
1043        <tr>
1044          <td class="paramkey"></td>
1045          <td></td>
1046          <td class="paramtype">const krb5_config_section *&nbsp;</td>
1047          <td class="paramname"> <em>c</em>, </td>
1048        </tr>
1049        <tr>
1050          <td class="paramkey"></td>
1051          <td></td>
1052          <td class="paramtype">int&nbsp;</td>
1053          <td class="paramname"> <em>def_value</em>, </td>
1054        </tr>
1055        <tr>
1056          <td class="paramkey"></td>
1057          <td></td>
1058          <td class="paramtype">va_list&nbsp;</td>
1059          <td class="paramname"> <em>args</em></td><td>&nbsp;</td>
1060        </tr>
1061        <tr>
1062          <td></td>
1063          <td>)</td>
1064          <td></td><td></td><td></td>
1065        </tr>
1066      </table>
1067</div>
1068<div class="memdoc">
1069
1070<p>
1071Get the time from the configuration file using a relative time.<p>
1072Like <a class="el" href="group__krb5__support.html#g019554d71140a32f64b6e4a2244d1168">krb5_config_get_time_default()</a> but with a va_list list of configuration selection.<p>
1073<dl compact><dt><b>Parameters:</b></dt><dd>
1074  <table border="0" cellspacing="2" cellpadding="0">
1075    <tr><td valign="top"></td><td valign="top"><em>context</em>&nbsp;</td><td>A Kerberos 5 context. </td></tr>
1076    <tr><td valign="top"></td><td valign="top"><em>c</em>&nbsp;</td><td>a configuration section, or NULL to use the section from context </td></tr>
1077    <tr><td valign="top"></td><td valign="top"><em>def_value</em>&nbsp;</td><td>the default value to return if no configuration found in the database. </td></tr>
1078    <tr><td valign="top"></td><td valign="top"><em>args</em>&nbsp;</td><td>a va_list of arguments</td></tr>
1079  </table>
1080</dl>
1081<dl class="return" compact><dt><b>Returns:</b></dt><dd>parsed the time (or def_value on parse error) </dd></dl>
1082
1083</div>
1084</div><p>
1085<a class="anchor" name="g947f1780e8b73fe0edb4f64da2f0b2f3"></a><!-- doxytag: member="expand_hostname.c::krb5_expand_hostname" ref="g947f1780e8b73fe0edb4f64da2f0b2f3" args="(krb5_context context, const char *orig_hostname, char **new_hostname)" -->
1086<div class="memitem">
1087<div class="memproto">
1088      <table class="memname">
1089        <tr>
1090          <td class="memname">KRB5_LIB_FUNCTION krb5_error_code KRB5_LIB_CALL krb5_expand_hostname           </td>
1091          <td>(</td>
1092          <td class="paramtype">krb5_context&nbsp;</td>
1093          <td class="paramname"> <em>context</em>, </td>
1094        </tr>
1095        <tr>
1096          <td class="paramkey"></td>
1097          <td></td>
1098          <td class="paramtype">const char *&nbsp;</td>
1099          <td class="paramname"> <em>orig_hostname</em>, </td>
1100        </tr>
1101        <tr>
1102          <td class="paramkey"></td>
1103          <td></td>
1104          <td class="paramtype">char **&nbsp;</td>
1105          <td class="paramname"> <em>new_hostname</em></td><td>&nbsp;</td>
1106        </tr>
1107        <tr>
1108          <td></td>
1109          <td>)</td>
1110          <td></td><td></td><td></td>
1111        </tr>
1112      </table>
1113</div>
1114<div class="memdoc">
1115
1116<p>
1117<a class="el" href="group__krb5__support.html#g947f1780e8b73fe0edb4f64da2f0b2f3">krb5_expand_hostname()</a> tries to make orig_hostname into a more canonical one in the newly allocated space returned in new_hostname.<p>
1118<dl compact><dt><b>Parameters:</b></dt><dd>
1119  <table border="0" cellspacing="2" cellpadding="0">
1120    <tr><td valign="top"></td><td valign="top"><em>context</em>&nbsp;</td><td>a Keberos context </td></tr>
1121    <tr><td valign="top"></td><td valign="top"><em>orig_hostname</em>&nbsp;</td><td>hostname to canonicalise. </td></tr>
1122    <tr><td valign="top"></td><td valign="top"><em>new_hostname</em>&nbsp;</td><td>output hostname, caller must free hostname with krb5_xfree().</td></tr>
1123  </table>
1124</dl>
1125<dl class="return" compact><dt><b>Returns:</b></dt><dd>Return an error code or 0, see krb5_get_error_message(). </dd></dl>
1126
1127</div>
1128</div><p>
1129<a class="anchor" name="g933f524c34ae6a80ba8aa6c0700992ef"></a><!-- doxytag: member="expand_hostname.c::krb5_expand_hostname_realms" ref="g933f524c34ae6a80ba8aa6c0700992ef" args="(krb5_context context, const char *orig_hostname, char **new_hostname, char ***realms)" -->
1130<div class="memitem">
1131<div class="memproto">
1132      <table class="memname">
1133        <tr>
1134          <td class="memname">KRB5_LIB_FUNCTION krb5_error_code KRB5_LIB_CALL krb5_expand_hostname_realms           </td>
1135          <td>(</td>
1136          <td class="paramtype">krb5_context&nbsp;</td>
1137          <td class="paramname"> <em>context</em>, </td>
1138        </tr>
1139        <tr>
1140          <td class="paramkey"></td>
1141          <td></td>
1142          <td class="paramtype">const char *&nbsp;</td>
1143          <td class="paramname"> <em>orig_hostname</em>, </td>
1144        </tr>
1145        <tr>
1146          <td class="paramkey"></td>
1147          <td></td>
1148          <td class="paramtype">char **&nbsp;</td>
1149          <td class="paramname"> <em>new_hostname</em>, </td>
1150        </tr>
1151        <tr>
1152          <td class="paramkey"></td>
1153          <td></td>
1154          <td class="paramtype">char ***&nbsp;</td>
1155          <td class="paramname"> <em>realms</em></td><td>&nbsp;</td>
1156        </tr>
1157        <tr>
1158          <td></td>
1159          <td>)</td>
1160          <td></td><td></td><td></td>
1161        </tr>
1162      </table>
1163</div>
1164<div class="memdoc">
1165
1166<p>
1167<a class="el" href="group__krb5__support.html#g933f524c34ae6a80ba8aa6c0700992ef">krb5_expand_hostname_realms()</a> expands orig_hostname to a name we believe to be a hostname in newly allocated space in new_hostname and return the realms new_hostname is believed to belong to in realms.<p>
1168<dl compact><dt><b>Parameters:</b></dt><dd>
1169  <table border="0" cellspacing="2" cellpadding="0">
1170    <tr><td valign="top"></td><td valign="top"><em>context</em>&nbsp;</td><td>a Keberos context </td></tr>
1171    <tr><td valign="top"></td><td valign="top"><em>orig_hostname</em>&nbsp;</td><td>hostname to canonicalise. </td></tr>
1172    <tr><td valign="top"></td><td valign="top"><em>new_hostname</em>&nbsp;</td><td>output hostname, caller must free hostname with krb5_xfree(). </td></tr>
1173    <tr><td valign="top"></td><td valign="top"><em>realms</em>&nbsp;</td><td>output possible realms, is an array that is terminated with NULL. Caller must free with <a class="el" href="group__krb5__support.html#gca0ab80d3affb5986aa5061f3782401b">krb5_free_host_realm()</a>.</td></tr>
1174  </table>
1175</dl>
1176<dl class="return" compact><dt><b>Returns:</b></dt><dd>Return an error code or 0, see krb5_get_error_message(). </dd></dl>
1177
1178</div>
1179</div><p>
1180<a class="anchor" name="gca0ab80d3affb5986aa5061f3782401b"></a><!-- doxytag: member="free_host_realm.c::krb5_free_host_realm" ref="gca0ab80d3affb5986aa5061f3782401b" args="(krb5_context context, krb5_realm *realmlist)" -->
1181<div class="memitem">
1182<div class="memproto">
1183      <table class="memname">
1184        <tr>
1185          <td class="memname">KRB5_LIB_FUNCTION krb5_error_code KRB5_LIB_CALL krb5_free_host_realm           </td>
1186          <td>(</td>
1187          <td class="paramtype">krb5_context&nbsp;</td>
1188          <td class="paramname"> <em>context</em>, </td>
1189        </tr>
1190        <tr>
1191          <td class="paramkey"></td>
1192          <td></td>
1193          <td class="paramtype">krb5_realm *&nbsp;</td>
1194          <td class="paramname"> <em>realmlist</em></td><td>&nbsp;</td>
1195        </tr>
1196        <tr>
1197          <td></td>
1198          <td>)</td>
1199          <td></td><td></td><td></td>
1200        </tr>
1201      </table>
1202</div>
1203<div class="memdoc">
1204
1205<p>
1206Free all memory allocated by `realmlist'<p>
1207<dl compact><dt><b>Parameters:</b></dt><dd>
1208  <table border="0" cellspacing="2" cellpadding="0">
1209    <tr><td valign="top"></td><td valign="top"><em>context</em>&nbsp;</td><td>A Kerberos 5 context. </td></tr>
1210    <tr><td valign="top"></td><td valign="top"><em>realmlist</em>&nbsp;</td><td>realmlist to free, NULL is ok</td></tr>
1211  </table>
1212</dl>
1213<dl class="return" compact><dt><b>Returns:</b></dt><dd>a Kerberos error code, always 0. </dd></dl>
1214
1215</div>
1216</div><p>
1217<a class="anchor" name="g6368eceea4261ef2ccb8dc39ecc87772"></a><!-- doxytag: member="kuserok.c::krb5_kuserok" ref="g6368eceea4261ef2ccb8dc39ecc87772" args="(krb5_context context, krb5_principal principal, const char *luser)" -->
1218<div class="memitem">
1219<div class="memproto">
1220      <table class="memname">
1221        <tr>
1222          <td class="memname">KRB5_LIB_FUNCTION krb5_boolean KRB5_LIB_CALL krb5_kuserok           </td>
1223          <td>(</td>
1224          <td class="paramtype">krb5_context&nbsp;</td>
1225          <td class="paramname"> <em>context</em>, </td>
1226        </tr>
1227        <tr>
1228          <td class="paramkey"></td>
1229          <td></td>
1230          <td class="paramtype">krb5_principal&nbsp;</td>
1231          <td class="paramname"> <em>principal</em>, </td>
1232        </tr>
1233        <tr>
1234          <td class="paramkey"></td>
1235          <td></td>
1236          <td class="paramtype">const char *&nbsp;</td>
1237          <td class="paramname"> <em>luser</em></td><td>&nbsp;</td>
1238        </tr>
1239        <tr>
1240          <td></td>
1241          <td>)</td>
1242          <td></td><td></td><td></td>
1243        </tr>
1244      </table>
1245</div>
1246<div class="memdoc">
1247
1248<p>
1249This function takes the name of a local user and checks if principal is allowed to log in as that user.<p>
1250The user may have a ~/.k5login file listing principals that are allowed to login as that user. If that file does not exist, all principals with a first component identical to the username, and a realm considered local, are allowed access.<p>
1251The .k5login file must contain one principal per line, be owned by user and not be writable by group or other (but must be readable by anyone).<p>
1252Note that if the file exists, no implicit access rights are given to user@LOCALREALM.<p>
1253Optionally, a set of files may be put in ~/.k5login.d (a directory), in which case they will all be checked in the same manner as .k5login. The files may be called anything, but files starting with a hash (#) , or ending with a tilde (~) are ignored. Subdirectories are not traversed. Note that this directory may not be checked by other Kerberos implementations.<p>
1254If no configuration file exists, match user against local domains, ie luser@LOCAL-REALMS-IN-CONFIGURATION-FILES.<p>
1255<dl compact><dt><b>Parameters:</b></dt><dd>
1256  <table border="0" cellspacing="2" cellpadding="0">
1257    <tr><td valign="top"></td><td valign="top"><em>context</em>&nbsp;</td><td>Kerberos 5 context. </td></tr>
1258    <tr><td valign="top"></td><td valign="top"><em>principal</em>&nbsp;</td><td>principal to check if allowed to login </td></tr>
1259    <tr><td valign="top"></td><td valign="top"><em>luser</em>&nbsp;</td><td>local user id</td></tr>
1260  </table>
1261</dl>
1262<dl class="return" compact><dt><b>Returns:</b></dt><dd>returns TRUE if access should be granted, FALSE otherwise. </dd></dl>
1263
1264</div>
1265</div><p>
1266<a class="anchor" name="gb6e4d59cca3b2e65abbd83204ad0e789"></a><!-- doxytag: member="plugin.c::krb5_plugin_register" ref="gb6e4d59cca3b2e65abbd83204ad0e789" args="(krb5_context context, enum krb5_plugin_type type, const char *name, void *symbol)" -->
1267<div class="memitem">
1268<div class="memproto">
1269      <table class="memname">
1270        <tr>
1271          <td class="memname">KRB5_LIB_FUNCTION krb5_error_code KRB5_LIB_CALL krb5_plugin_register           </td>
1272          <td>(</td>
1273          <td class="paramtype">krb5_context&nbsp;</td>
1274          <td class="paramname"> <em>context</em>, </td>
1275        </tr>
1276        <tr>
1277          <td class="paramkey"></td>
1278          <td></td>
1279          <td class="paramtype">enum krb5_plugin_type&nbsp;</td>
1280          <td class="paramname"> <em>type</em>, </td>
1281        </tr>
1282        <tr>
1283          <td class="paramkey"></td>
1284          <td></td>
1285          <td class="paramtype">const char *&nbsp;</td>
1286          <td class="paramname"> <em>name</em>, </td>
1287        </tr>
1288        <tr>
1289          <td class="paramkey"></td>
1290          <td></td>
1291          <td class="paramtype">void *&nbsp;</td>
1292          <td class="paramname"> <em>symbol</em></td><td>&nbsp;</td>
1293        </tr>
1294        <tr>
1295          <td></td>
1296          <td>)</td>
1297          <td></td><td></td><td></td>
1298        </tr>
1299      </table>
1300</div>
1301<div class="memdoc">
1302
1303<p>
1304Register a plugin symbol name of specific type. <dl compact><dt><b>Parameters:</b></dt><dd>
1305  <table border="0" cellspacing="2" cellpadding="0">
1306    <tr><td valign="top"></td><td valign="top"><em>context</em>&nbsp;</td><td>a Keberos context </td></tr>
1307    <tr><td valign="top"></td><td valign="top"><em>type</em>&nbsp;</td><td>type of plugin symbol </td></tr>
1308    <tr><td valign="top"></td><td valign="top"><em>name</em>&nbsp;</td><td>name of plugin symbol </td></tr>
1309    <tr><td valign="top"></td><td valign="top"><em>symbol</em>&nbsp;</td><td>a pointer to the named symbol </td></tr>
1310  </table>
1311</dl>
1312<dl class="return" compact><dt><b>Returns:</b></dt><dd>In case of error a non zero error com_err error is returned and the Kerberos error string is set. </dd></dl>
1313
1314</div>
1315</div><p>
1316</div>
1317<hr size="1"><address style="text-align: right;"><small>
1318Generated on Wed Jan 11 14:07:50 2012 for HeimdalKerberos5library by&nbsp;<a href="http://www.doxygen.org/index.html"><img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.6</small></address>
1319</body>
1320</html>
1321