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">
8 <a href="http://www.h5l.org/"><img src="http://www.h5l.org/keyhole-heimdal.png" alt="keyhole logo"/></a>
10 <!-- end of header marker -->
11 <!-- Generated by Doxygen 1.5.6 -->
12 <div class="navigation" id="top">
15 <li><a href="index.html"><span>Main Page</span></a></li>
16 <li><a href="pages.html"><span>Related Pages</span></a></li>
17 <li><a href="modules.html"><span>Modules</span></a></li>
18 <li><a href="annotated.html"><span>Data Structures</span></a></li>
22 <div class="contents">
23 <h1>Heimdal Kerberos 5 support functions</h1><table border="0" cellpadding="0" cellspacing="0">
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>
27 krb5_error_code KRB5_LIB_CALL </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>
29 <tr><td class="memItemLeft" nowrap align="right" valign="top">KRB5_LIB_FUNCTION <br>
30 krb5_error_code KRB5_LIB_CALL </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>
32 <tr><td class="memItemLeft" nowrap align="right" valign="top">KRB5_LIB_FUNCTION <br>
33 krb5_error_code KRB5_LIB_CALL </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>
35 <tr><td class="memItemLeft" nowrap align="right" valign="top">KRB5_LIB_FUNCTION <br>
36 krb5_error_code KRB5_LIB_CALL </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>
38 <tr><td class="memItemLeft" nowrap align="right" valign="top">KRB5_LIB_FUNCTION const <br>
39 krb5_config_binding <br>
40 *KRB5_LIB_CALL </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>
42 <tr><td class="memItemLeft" nowrap align="right" valign="top">KRB5_LIB_FUNCTION const <br>
43 krb5_config_binding <br>
44 *KRB5_LIB_CALL </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>
46 <tr><td class="memItemLeft" nowrap align="right" valign="top">KRB5_LIB_FUNCTION const char <br>
47 *KRB5_LIB_CALL </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>
49 <tr><td class="memItemLeft" nowrap align="right" valign="top">KRB5_LIB_FUNCTION const char <br>
50 *KRB5_LIB_CALL </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>
52 <tr><td class="memItemLeft" nowrap align="right" valign="top">KRB5_LIB_FUNCTION const char <br>
53 *KRB5_LIB_CALL </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>
55 <tr><td class="memItemLeft" nowrap align="right" valign="top">KRB5_LIB_FUNCTION const char <br>
56 *KRB5_LIB_CALL </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>
58 <tr><td class="memItemLeft" nowrap align="right" valign="top">KRB5_LIB_FUNCTION char <br>
59 **KRB5_LIB_CALL </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>
61 <tr><td class="memItemLeft" nowrap align="right" valign="top">KRB5_LIB_FUNCTION char <br>
62 **KRB5_LIB_CALL </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>
64 <tr><td class="memItemLeft" nowrap align="right" valign="top">KRB5_LIB_FUNCTION void <br>
65 KRB5_LIB_CALL </td><td class="memItemRight" valign="bottom"><a class="el" href="group__krb5__support.html#g3440f86b07fa86aae0f0889445a0def2">krb5_config_free_strings</a> (char **strings)</td></tr>
67 <tr><td class="memItemLeft" nowrap align="right" valign="top">KRB5_LIB_FUNCTION krb5_boolean <br>
68 KRB5_LIB_CALL </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>
70 <tr><td class="memItemLeft" nowrap align="right" valign="top">KRB5_LIB_FUNCTION krb5_boolean <br>
71 KRB5_LIB_CALL </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>
73 <tr><td class="memItemLeft" nowrap align="right" valign="top">KRB5_LIB_FUNCTION krb5_boolean <br>
74 KRB5_LIB_CALL </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>
76 <tr><td class="memItemLeft" nowrap align="right" valign="top">KRB5_LIB_FUNCTION krb5_boolean <br>
77 KRB5_LIB_CALL </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>
79 <tr><td class="memItemLeft" nowrap align="right" valign="top">KRB5_LIB_FUNCTION int KRB5_LIB_CALL </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>
81 <tr><td class="memItemLeft" nowrap align="right" valign="top">KRB5_LIB_FUNCTION int KRB5_LIB_CALL </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>
83 <tr><td class="memItemLeft" nowrap align="right" valign="top">KRB5_LIB_FUNCTION int KRB5_LIB_CALL </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>
85 <tr><td class="memItemLeft" nowrap align="right" valign="top">KRB5_LIB_FUNCTION int KRB5_LIB_CALL </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>
87 <tr><td class="memItemLeft" nowrap align="right" valign="top">KRB5_LIB_FUNCTION <br>
88 krb5_error_code KRB5_LIB_CALL </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>
90 <tr><td class="memItemLeft" nowrap align="right" valign="top">KRB5_LIB_FUNCTION <br>
91 krb5_error_code KRB5_LIB_CALL </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>
93 <tr><td class="memItemLeft" nowrap align="right" valign="top">KRB5_LIB_FUNCTION <br>
94 krb5_error_code KRB5_LIB_CALL </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>
96 <tr><td class="memItemLeft" nowrap align="right" valign="top">KRB5_LIB_FUNCTION krb5_boolean <br>
97 KRB5_LIB_CALL </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>
99 <tr><td class="memItemLeft" nowrap align="right" valign="top">KRB5_LIB_FUNCTION <br>
100 krb5_error_code KRB5_LIB_CALL </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>
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">
110 <td class="memname">KRB5_LIB_FUNCTION krb5_error_code KRB5_LIB_CALL krb5_acl_match_file </td>
112 <td class="paramtype">krb5_context </td>
113 <td class="paramname"> <em>context</em>, </td>
116 <td class="paramkey"></td>
118 <td class="paramtype">const char * </td>
119 <td class="paramname"> <em>file</em>, </td>
122 <td class="paramkey"></td>
124 <td class="paramtype">const char * </td>
125 <td class="paramname"> <em>format</em>, </td>
128 <td class="paramkey"></td>
130 <td class="paramtype"> </td>
131 <td class="paramname"> <em>...</em></td><td> </td>
136 <td></td><td></td><td></td>
143 krb5_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> </td><td>Kerberos 5 context. </td></tr>
147 <tr><td valign="top"></td><td valign="top"><em>file</em> </td><td>file with acl listed in the file. </td></tr>
148 <tr><td valign="top"></td><td valign="top"><em>format</em> </td><td>format to match. </td></tr>
149 <tr><td valign="top"></td><td valign="top"><em>...</em> </td><td>parameter to format string.</td></tr>
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>
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">
162 <td class="memname">KRB5_LIB_FUNCTION krb5_error_code KRB5_LIB_CALL krb5_acl_match_string </td>
164 <td class="paramtype">krb5_context </td>
165 <td class="paramname"> <em>context</em>, </td>
168 <td class="paramkey"></td>
170 <td class="paramtype">const char * </td>
171 <td class="paramname"> <em>string</em>, </td>
174 <td class="paramkey"></td>
176 <td class="paramtype">const char * </td>
177 <td class="paramname"> <em>format</em>, </td>
180 <td class="paramkey"></td>
182 <td class="paramtype"> </td>
183 <td class="paramname"> <em>...</em></td><td> </td>
188 <td></td><td></td><td></td>
195 krb5_acl_match_string matches ACL format against a string.<p>
196 The 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>
197 List 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>
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> </td><td>Kerberos 5 context </td></tr>
203 <tr><td valign="top"></td><td valign="top"><em>string</em> </td><td>string to match with </td></tr>
204 <tr><td valign="top"></td><td valign="top"><em>format</em> </td><td>format to match </td></tr>
205 <tr><td valign="top"></td><td valign="top"><em>...</em> </td><td>parameter to format string</td></tr>
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;
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>, &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>
219 krb5_errx(context, 1, <span class="stringliteral">"acl didn't match"</span>);
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>
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">
232 <td class="memname">KRB5_LIB_FUNCTION krb5_error_code KRB5_LIB_CALL krb5_config_file_free </td>
234 <td class="paramtype">krb5_context </td>
235 <td class="paramname"> <em>context</em>, </td>
238 <td class="paramkey"></td>
240 <td class="paramtype">krb5_config_section * </td>
241 <td class="paramname"> <em>s</em></td><td> </td>
246 <td></td><td></td><td></td>
253 Free 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> </td><td>A Kerberos 5 context </td></tr>
257 <tr><td valign="top"></td><td valign="top"><em>s</em> </td><td>the configuration section to free</td></tr>
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>
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">
269 <td class="memname">KRB5_LIB_FUNCTION void KRB5_LIB_CALL krb5_config_free_strings </td>
271 <td class="paramtype">char ** </td>
272 <td class="paramname"> <em>strings</em> </td>
273 <td> ) </td>
281 Free 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> </td><td>strings to free </td></tr>
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">
295 <td class="memname">KRB5_LIB_FUNCTION krb5_boolean KRB5_LIB_CALL krb5_config_get_bool </td>
297 <td class="paramtype">krb5_context </td>
298 <td class="paramname"> <em>context</em>, </td>
301 <td class="paramkey"></td>
303 <td class="paramtype">const krb5_config_section * </td>
304 <td class="paramname"> <em>c</em>, </td>
307 <td class="paramkey"></td>
309 <td class="paramtype"> </td>
310 <td class="paramname"> <em>...</em></td><td> </td>
315 <td></td><td></td><td></td>
322 Like <a class="el" href="group__krb5__support.html#g39402ca8c1b1eb2af4b514eed826f971">krb5_config_get_bool()</a> but with a va_list list of configuration selection.<p>
323 Configuration 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> </td><td>A Kerberos 5 context. </td></tr>
327 <tr><td valign="top"></td><td valign="top"><em>c</em> </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> </td><td>a list of names, terminated with NULL.</td></tr>
331 <dl class="return" compact><dt><b>Returns:</b></dt><dd>TRUE or FALSE </dd></dl>
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">
340 <td class="memname">KRB5_LIB_FUNCTION krb5_boolean KRB5_LIB_CALL krb5_config_get_bool_default </td>
342 <td class="paramtype">krb5_context </td>
343 <td class="paramname"> <em>context</em>, </td>
346 <td class="paramkey"></td>
348 <td class="paramtype">const krb5_config_section * </td>
349 <td class="paramname"> <em>c</em>, </td>
352 <td class="paramkey"></td>
354 <td class="paramtype">krb5_boolean </td>
355 <td class="paramname"> <em>def_value</em>, </td>
358 <td class="paramkey"></td>
360 <td class="paramtype"> </td>
361 <td class="paramname"> <em>...</em></td><td> </td>
366 <td></td><td></td><td></td>
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> </td><td>A Kerberos 5 context. </td></tr>
377 <tr><td valign="top"></td><td valign="top"><em>c</em> </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> </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> </td><td>a list of names, terminated with NULL.</td></tr>
382 <dl class="return" compact><dt><b>Returns:</b></dt><dd>TRUE or FALSE </dd></dl>
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">
391 <td class="memname">KRB5_LIB_FUNCTION const krb5_config_binding* KRB5_LIB_CALL krb5_config_get_list </td>
393 <td class="paramtype">krb5_context </td>
394 <td class="paramname"> <em>context</em>, </td>
397 <td class="paramkey"></td>
399 <td class="paramtype">const krb5_config_section * </td>
400 <td class="paramname"> <em>c</em>, </td>
403 <td class="paramkey"></td>
405 <td class="paramtype"> </td>
406 <td class="paramname"> <em>...</em></td><td> </td>
411 <td></td><td></td><td></td>
418 Get 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> </td><td>A Kerberos 5 context. </td></tr>
422 <tr><td valign="top"></td><td valign="top"><em>c</em> </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> </td><td>a list of names, terminated with NULL.</td></tr>
426 <dl class="return" compact><dt><b>Returns:</b></dt><dd>NULL if configuration list is not found, a list otherwise </dd></dl>
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">
435 <td class="memname">KRB5_LIB_FUNCTION const char* KRB5_LIB_CALL krb5_config_get_string </td>
437 <td class="paramtype">krb5_context </td>
438 <td class="paramname"> <em>context</em>, </td>
441 <td class="paramkey"></td>
443 <td class="paramtype">const krb5_config_section * </td>
444 <td class="paramname"> <em>c</em>, </td>
447 <td class="paramkey"></td>
449 <td class="paramtype"> </td>
450 <td class="paramname"> <em>...</em></td><td> </td>
455 <td></td><td></td><td></td>
462 Returns 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> </td><td>A Kerberos 5 context. </td></tr>
466 <tr><td valign="top"></td><td valign="top"><em>c</em> </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> </td><td>a list of names, terminated with NULL.</td></tr>
470 <dl class="return" compact><dt><b>Returns:</b></dt><dd>NULL if configuration string not found, a string otherwise </dd></dl>
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">
479 <td class="memname">KRB5_LIB_FUNCTION const char* KRB5_LIB_CALL krb5_config_get_string_default </td>
481 <td class="paramtype">krb5_context </td>
482 <td class="paramname"> <em>context</em>, </td>
485 <td class="paramkey"></td>
487 <td class="paramtype">const krb5_config_section * </td>
488 <td class="paramname"> <em>c</em>, </td>
491 <td class="paramkey"></td>
493 <td class="paramtype">const char * </td>
494 <td class="paramname"> <em>def_value</em>, </td>
497 <td class="paramkey"></td>
499 <td class="paramtype"> </td>
500 <td class="paramname"> <em>...</em></td><td> </td>
505 <td></td><td></td><td></td>
512 Like <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> </td><td>A Kerberos 5 context. </td></tr>
516 <tr><td valign="top"></td><td valign="top"><em>c</em> </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> </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> </td><td>a list of names, terminated with NULL.</td></tr>
521 <dl class="return" compact><dt><b>Returns:</b></dt><dd>a configuration string </dd></dl>
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">
530 <td class="memname">KRB5_LIB_FUNCTION char** KRB5_LIB_CALL krb5_config_get_strings </td>
532 <td class="paramtype">krb5_context </td>
533 <td class="paramname"> <em>context</em>, </td>
536 <td class="paramkey"></td>
538 <td class="paramtype">const krb5_config_section * </td>
539 <td class="paramname"> <em>c</em>, </td>
542 <td class="paramkey"></td>
544 <td class="paramtype"> </td>
545 <td class="paramname"> <em>...</em></td><td> </td>
550 <td></td><td></td><td></td>
557 Get 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> </td><td>A Kerberos 5 context. </td></tr>
561 <tr><td valign="top"></td><td valign="top"><em>c</em> </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> </td><td>a list of names, terminated with NULL.</td></tr>
565 <dl class="return" compact><dt><b>Returns:</b></dt><dd>TRUE or FALSE </dd></dl>
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">
574 <td class="memname">KRB5_LIB_FUNCTION int KRB5_LIB_CALL krb5_config_get_time </td>
576 <td class="paramtype">krb5_context </td>
577 <td class="paramname"> <em>context</em>, </td>
580 <td class="paramkey"></td>
582 <td class="paramtype">const krb5_config_section * </td>
583 <td class="paramname"> <em>c</em>, </td>
586 <td class="paramkey"></td>
588 <td class="paramtype"> </td>
589 <td class="paramname"> <em>...</em></td><td> </td>
594 <td></td><td></td><td></td>
601 Get 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> </td><td>A Kerberos 5 context. </td></tr>
605 <tr><td valign="top"></td><td valign="top"><em>c</em> </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> </td><td>a list of names, terminated with NULL.</td></tr>
609 <dl class="return" compact><dt><b>Returns:</b></dt><dd>parsed the time or -1 on error </dd></dl>
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">
618 <td class="memname">KRB5_LIB_FUNCTION int KRB5_LIB_CALL krb5_config_get_time_default </td>
620 <td class="paramtype">krb5_context </td>
621 <td class="paramname"> <em>context</em>, </td>
624 <td class="paramkey"></td>
626 <td class="paramtype">const krb5_config_section * </td>
627 <td class="paramname"> <em>c</em>, </td>
630 <td class="paramkey"></td>
632 <td class="paramtype">int </td>
633 <td class="paramname"> <em>def_value</em>, </td>
636 <td class="paramkey"></td>
638 <td class="paramtype"> </td>
639 <td class="paramname"> <em>...</em></td><td> </td>
644 <td></td><td></td><td></td>
651 Get 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> </td><td>A Kerberos 5 context. </td></tr>
655 <tr><td valign="top"></td><td valign="top"><em>c</em> </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> </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> </td><td>a list of names, terminated with NULL.</td></tr>
660 <dl class="return" compact><dt><b>Returns:</b></dt><dd>parsed the time (or def_value on parse error) </dd></dl>
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">
669 <td class="memname">KRB5_LIB_FUNCTION krb5_error_code KRB5_LIB_CALL krb5_config_parse_file_multi </td>
671 <td class="paramtype">krb5_context </td>
672 <td class="paramname"> <em>context</em>, </td>
675 <td class="paramkey"></td>
677 <td class="paramtype">const char * </td>
678 <td class="paramname"> <em>fname</em>, </td>
681 <td class="paramkey"></td>
683 <td class="paramtype">krb5_config_section ** </td>
684 <td class="paramname"> <em>res</em></td><td> </td>
689 <td></td><td></td><td></td>
696 Parse 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> </td><td>a Kerberos 5 context. </td></tr>
700 <tr><td valign="top"></td><td valign="top"><em>fname</em> </td><td>a file name to a Kerberos configuration file </td></tr>
701 <tr><td valign="top"></td><td valign="top"><em>res</em> </td><td>the returned result, must be free with <a class="el" href="group__krb5.html#gce1b568d05875e7c4fbc6e5af5a8bdbf">krb5_free_config_files()</a>. </td></tr>
704 <dl class="return" compact><dt><b>Returns:</b></dt><dd>Return an error code or 0, see krb5_get_error_message(). </dd></dl>
707 If 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>.
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">
715 <td class="memname">KRB5_LIB_FUNCTION krb5_boolean KRB5_LIB_CALL krb5_config_vget_bool </td>
717 <td class="paramtype">krb5_context </td>
718 <td class="paramname"> <em>context</em>, </td>
721 <td class="paramkey"></td>
723 <td class="paramtype">const krb5_config_section * </td>
724 <td class="paramname"> <em>c</em>, </td>
727 <td class="paramkey"></td>
729 <td class="paramtype">va_list </td>
730 <td class="paramname"> <em>args</em></td><td> </td>
735 <td></td><td></td><td></td>
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> </td><td>A Kerberos 5 context. </td></tr>
746 <tr><td valign="top"></td><td valign="top"><em>c</em> </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> </td><td>a va_list of arguments</td></tr>
750 <dl class="return" compact><dt><b>Returns:</b></dt><dd>TRUE or FALSE </dd></dl>
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">
759 <td class="memname">KRB5_LIB_FUNCTION krb5_boolean KRB5_LIB_CALL krb5_config_vget_bool_default </td>
761 <td class="paramtype">krb5_context </td>
762 <td class="paramname"> <em>context</em>, </td>
765 <td class="paramkey"></td>
767 <td class="paramtype">const krb5_config_section * </td>
768 <td class="paramname"> <em>c</em>, </td>
771 <td class="paramkey"></td>
773 <td class="paramtype">krb5_boolean </td>
774 <td class="paramname"> <em>def_value</em>, </td>
777 <td class="paramkey"></td>
779 <td class="paramtype">va_list </td>
780 <td class="paramname"> <em>args</em></td><td> </td>
785 <td></td><td></td><td></td>
792 Like <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>
793 Configuration 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> </td><td>A Kerberos 5 context. </td></tr>
797 <tr><td valign="top"></td><td valign="top"><em>c</em> </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> </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> </td><td>a va_list of arguments</td></tr>
802 <dl class="return" compact><dt><b>Returns:</b></dt><dd>TRUE or FALSE </dd></dl>
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">
811 <td class="memname">KRB5_LIB_FUNCTION const krb5_config_binding* KRB5_LIB_CALL krb5_config_vget_list </td>
813 <td class="paramtype">krb5_context </td>
814 <td class="paramname"> <em>context</em>, </td>
817 <td class="paramkey"></td>
819 <td class="paramtype">const krb5_config_section * </td>
820 <td class="paramname"> <em>c</em>, </td>
823 <td class="paramkey"></td>
825 <td class="paramtype">va_list </td>
826 <td class="paramname"> <em>args</em></td><td> </td>
831 <td></td><td></td><td></td>
838 Get 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> </td><td>A Kerberos 5 context. </td></tr>
842 <tr><td valign="top"></td><td valign="top"><em>c</em> </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> </td><td>a va_list of arguments</td></tr>
846 <dl class="return" compact><dt><b>Returns:</b></dt><dd>NULL if configuration list is not found, a list otherwise </dd></dl>
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">
855 <td class="memname">KRB5_LIB_FUNCTION const char* KRB5_LIB_CALL krb5_config_vget_string </td>
857 <td class="paramtype">krb5_context </td>
858 <td class="paramname"> <em>context</em>, </td>
861 <td class="paramkey"></td>
863 <td class="paramtype">const krb5_config_section * </td>
864 <td class="paramname"> <em>c</em>, </td>
867 <td class="paramkey"></td>
869 <td class="paramtype">va_list </td>
870 <td class="paramname"> <em>args</em></td><td> </td>
875 <td></td><td></td><td></td>
882 Like <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> </td><td>A Kerberos 5 context. </td></tr>
886 <tr><td valign="top"></td><td valign="top"><em>c</em> </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> </td><td>a va_list of arguments</td></tr>
890 <dl class="return" compact><dt><b>Returns:</b></dt><dd>NULL if configuration string not found, a string otherwise </dd></dl>
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">
899 <td class="memname">KRB5_LIB_FUNCTION const char* KRB5_LIB_CALL krb5_config_vget_string_default </td>
901 <td class="paramtype">krb5_context </td>
902 <td class="paramname"> <em>context</em>, </td>
905 <td class="paramkey"></td>
907 <td class="paramtype">const krb5_config_section * </td>
908 <td class="paramname"> <em>c</em>, </td>
911 <td class="paramkey"></td>
913 <td class="paramtype">const char * </td>
914 <td class="paramname"> <em>def_value</em>, </td>
917 <td class="paramkey"></td>
919 <td class="paramtype">va_list </td>
920 <td class="paramname"> <em>args</em></td><td> </td>
925 <td></td><td></td><td></td>
932 Like <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> </td><td>A Kerberos 5 context. </td></tr>
936 <tr><td valign="top"></td><td valign="top"><em>c</em> </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> </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> </td><td>a va_list of arguments</td></tr>
941 <dl class="return" compact><dt><b>Returns:</b></dt><dd>a configuration string </dd></dl>
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">
950 <td class="memname">KRB5_LIB_FUNCTION char** KRB5_LIB_CALL krb5_config_vget_strings </td>
952 <td class="paramtype">krb5_context </td>
953 <td class="paramname"> <em>context</em>, </td>
956 <td class="paramkey"></td>
958 <td class="paramtype">const krb5_config_section * </td>
959 <td class="paramname"> <em>c</em>, </td>
962 <td class="paramkey"></td>
964 <td class="paramtype">va_list </td>
965 <td class="paramname"> <em>args</em></td><td> </td>
970 <td></td><td></td><td></td>
977 Get 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> </td><td>A Kerberos 5 context. </td></tr>
981 <tr><td valign="top"></td><td valign="top"><em>c</em> </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> </td><td>a va_list of arguments</td></tr>
985 <dl class="return" compact><dt><b>Returns:</b></dt><dd>TRUE or FALSE </dd></dl>
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">
994 <td class="memname">KRB5_LIB_FUNCTION int KRB5_LIB_CALL krb5_config_vget_time </td>
996 <td class="paramtype">krb5_context </td>
997 <td class="paramname"> <em>context</em>, </td>
1000 <td class="paramkey"></td>
1002 <td class="paramtype">const krb5_config_section * </td>
1003 <td class="paramname"> <em>c</em>, </td>
1006 <td class="paramkey"></td>
1008 <td class="paramtype">va_list </td>
1009 <td class="paramname"> <em>args</em></td><td> </td>
1014 <td></td><td></td><td></td>
1018 <div class="memdoc">
1021 Get 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> </td><td>A Kerberos 5 context. </td></tr>
1025 <tr><td valign="top"></td><td valign="top"><em>c</em> </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> </td><td>a va_list of arguments</td></tr>
1029 <dl class="return" compact><dt><b>Returns:</b></dt><dd>parsed the time or -1 on error </dd></dl>
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">
1038 <td class="memname">KRB5_LIB_FUNCTION int KRB5_LIB_CALL krb5_config_vget_time_default </td>
1040 <td class="paramtype">krb5_context </td>
1041 <td class="paramname"> <em>context</em>, </td>
1044 <td class="paramkey"></td>
1046 <td class="paramtype">const krb5_config_section * </td>
1047 <td class="paramname"> <em>c</em>, </td>
1050 <td class="paramkey"></td>
1052 <td class="paramtype">int </td>
1053 <td class="paramname"> <em>def_value</em>, </td>
1056 <td class="paramkey"></td>
1058 <td class="paramtype">va_list </td>
1059 <td class="paramname"> <em>args</em></td><td> </td>
1064 <td></td><td></td><td></td>
1068 <div class="memdoc">
1071 Get the time from the configuration file using a relative time.<p>
1072 Like <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> </td><td>A Kerberos 5 context. </td></tr>
1076 <tr><td valign="top"></td><td valign="top"><em>c</em> </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> </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> </td><td>a va_list of arguments</td></tr>
1081 <dl class="return" compact><dt><b>Returns:</b></dt><dd>parsed the time (or def_value on parse error) </dd></dl>
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">
1090 <td class="memname">KRB5_LIB_FUNCTION krb5_error_code KRB5_LIB_CALL krb5_expand_hostname </td>
1092 <td class="paramtype">krb5_context </td>
1093 <td class="paramname"> <em>context</em>, </td>
1096 <td class="paramkey"></td>
1098 <td class="paramtype">const char * </td>
1099 <td class="paramname"> <em>orig_hostname</em>, </td>
1102 <td class="paramkey"></td>
1104 <td class="paramtype">char ** </td>
1105 <td class="paramname"> <em>new_hostname</em></td><td> </td>
1110 <td></td><td></td><td></td>
1114 <div class="memdoc">
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> </td><td>a Keberos context </td></tr>
1121 <tr><td valign="top"></td><td valign="top"><em>orig_hostname</em> </td><td>hostname to canonicalise. </td></tr>
1122 <tr><td valign="top"></td><td valign="top"><em>new_hostname</em> </td><td>output hostname, caller must free hostname with krb5_xfree().</td></tr>
1125 <dl class="return" compact><dt><b>Returns:</b></dt><dd>Return an error code or 0, see krb5_get_error_message(). </dd></dl>
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">
1134 <td class="memname">KRB5_LIB_FUNCTION krb5_error_code KRB5_LIB_CALL krb5_expand_hostname_realms </td>
1136 <td class="paramtype">krb5_context </td>
1137 <td class="paramname"> <em>context</em>, </td>
1140 <td class="paramkey"></td>
1142 <td class="paramtype">const char * </td>
1143 <td class="paramname"> <em>orig_hostname</em>, </td>
1146 <td class="paramkey"></td>
1148 <td class="paramtype">char ** </td>
1149 <td class="paramname"> <em>new_hostname</em>, </td>
1152 <td class="paramkey"></td>
1154 <td class="paramtype">char *** </td>
1155 <td class="paramname"> <em>realms</em></td><td> </td>
1160 <td></td><td></td><td></td>
1164 <div class="memdoc">
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> </td><td>a Keberos context </td></tr>
1171 <tr><td valign="top"></td><td valign="top"><em>orig_hostname</em> </td><td>hostname to canonicalise. </td></tr>
1172 <tr><td valign="top"></td><td valign="top"><em>new_hostname</em> </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> </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>
1176 <dl class="return" compact><dt><b>Returns:</b></dt><dd>Return an error code or 0, see krb5_get_error_message(). </dd></dl>
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">
1185 <td class="memname">KRB5_LIB_FUNCTION krb5_error_code KRB5_LIB_CALL krb5_free_host_realm </td>
1187 <td class="paramtype">krb5_context </td>
1188 <td class="paramname"> <em>context</em>, </td>
1191 <td class="paramkey"></td>
1193 <td class="paramtype">krb5_realm * </td>
1194 <td class="paramname"> <em>realmlist</em></td><td> </td>
1199 <td></td><td></td><td></td>
1203 <div class="memdoc">
1206 Free 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> </td><td>A Kerberos 5 context. </td></tr>
1210 <tr><td valign="top"></td><td valign="top"><em>realmlist</em> </td><td>realmlist to free, NULL is ok</td></tr>
1213 <dl class="return" compact><dt><b>Returns:</b></dt><dd>a Kerberos error code, always 0. </dd></dl>
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">
1222 <td class="memname">KRB5_LIB_FUNCTION krb5_boolean KRB5_LIB_CALL krb5_kuserok </td>
1224 <td class="paramtype">krb5_context </td>
1225 <td class="paramname"> <em>context</em>, </td>
1228 <td class="paramkey"></td>
1230 <td class="paramtype">krb5_principal </td>
1231 <td class="paramname"> <em>principal</em>, </td>
1234 <td class="paramkey"></td>
1236 <td class="paramtype">const char * </td>
1237 <td class="paramname"> <em>luser</em></td><td> </td>
1242 <td></td><td></td><td></td>
1246 <div class="memdoc">
1249 This function takes the name of a local user and checks if principal is allowed to log in as that user.<p>
1250 The 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>
1251 The .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>
1252 Note that if the file exists, no implicit access rights are given to user@LOCALREALM.<p>
1253 Optionally, 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>
1254 If 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> </td><td>Kerberos 5 context. </td></tr>
1258 <tr><td valign="top"></td><td valign="top"><em>principal</em> </td><td>principal to check if allowed to login </td></tr>
1259 <tr><td valign="top"></td><td valign="top"><em>luser</em> </td><td>local user id</td></tr>
1262 <dl class="return" compact><dt><b>Returns:</b></dt><dd>returns TRUE if access should be granted, FALSE otherwise. </dd></dl>
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">
1271 <td class="memname">KRB5_LIB_FUNCTION krb5_error_code KRB5_LIB_CALL krb5_plugin_register </td>
1273 <td class="paramtype">krb5_context </td>
1274 <td class="paramname"> <em>context</em>, </td>
1277 <td class="paramkey"></td>
1279 <td class="paramtype">enum krb5_plugin_type </td>
1280 <td class="paramname"> <em>type</em>, </td>
1283 <td class="paramkey"></td>
1285 <td class="paramtype">const char * </td>
1286 <td class="paramname"> <em>name</em>, </td>
1289 <td class="paramkey"></td>
1291 <td class="paramtype">void * </td>
1292 <td class="paramname"> <em>symbol</em></td><td> </td>
1297 <td></td><td></td><td></td>
1301 <div class="memdoc">
1304 Register 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> </td><td>a Keberos context </td></tr>
1307 <tr><td valign="top"></td><td valign="top"><em>type</em> </td><td>type of plugin symbol </td></tr>
1308 <tr><td valign="top"></td><td valign="top"><em>name</em> </td><td>name of plugin symbol </td></tr>
1309 <tr><td valign="top"></td><td valign="top"><em>symbol</em> </td><td>a pointer to the named symbol </td></tr>
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>
1317 <hr size="1"><address style="text-align: right;"><small>
1318 Generated on Wed Jan 11 14:07:50 2012 for HeimdalKerberos5library by <a href="http://www.doxygen.org/index.html"><img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.6</small></address>