1226031Sstas<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
2226031Sstas<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
3226031Sstas<title>HeimdalKerberos5library: Heimdal Kerberos 5 support functions</title>
4226031Sstas<link href="doxygen.css" rel="stylesheet" type="text/css">
5226031Sstas<link href="tabs.css" rel="stylesheet" type="text/css">
6226031Sstas</head><body>
7226031Sstas<p>
8226031Sstas<a href="http://www.h5l.org/"><img src="http://www.h5l.org/keyhole-heimdal.png" alt="keyhole logo"/></a>
9226031Sstas</p>
10226031Sstas<!-- end of header marker -->
11226031Sstas<!-- Generated by Doxygen 1.5.6 -->
12226031Sstas<div class="navigation" id="top">
13226031Sstas  <div class="tabs">
14226031Sstas    <ul>
15226031Sstas      <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
16226031Sstas      <li><a href="pages.html"><span>Related&nbsp;Pages</span></a></li>
17226031Sstas      <li><a href="modules.html"><span>Modules</span></a></li>
18226031Sstas      <li><a href="annotated.html"><span>Data&nbsp;Structures</span></a></li>
19226031Sstas    </ul>
20226031Sstas  </div>
21226031Sstas</div>
22226031Sstas<div class="contents">
23226031Sstas<h1>Heimdal Kerberos 5 support functions</h1><table border="0" cellpadding="0" cellspacing="0">
24226031Sstas<tr><td></td></tr>
25226031Sstas<tr><td colspan="2"><br><h2>Functions</h2></td></tr>
26226031Sstas<tr><td class="memItemLeft" nowrap align="right" valign="top">KRB5_LIB_FUNCTION <br>
27226031Sstaskrb5_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>
28226031Sstas
29226031Sstas<tr><td class="memItemLeft" nowrap align="right" valign="top">KRB5_LIB_FUNCTION <br>
30226031Sstaskrb5_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>
31226031Sstas
32226031Sstas<tr><td class="memItemLeft" nowrap align="right" valign="top">KRB5_LIB_FUNCTION <br>
33226031Sstaskrb5_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>
34226031Sstas
35226031Sstas<tr><td class="memItemLeft" nowrap align="right" valign="top">KRB5_LIB_FUNCTION <br>
36226031Sstaskrb5_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>
37226031Sstas
38226031Sstas<tr><td class="memItemLeft" nowrap align="right" valign="top">KRB5_LIB_FUNCTION const <br>
39226031Sstaskrb5_config_binding <br>
40226031Sstas*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>
41226031Sstas
42226031Sstas<tr><td class="memItemLeft" nowrap align="right" valign="top">KRB5_LIB_FUNCTION const <br>
43226031Sstaskrb5_config_binding <br>
44226031Sstas*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>
45226031Sstas
46226031Sstas<tr><td class="memItemLeft" nowrap align="right" valign="top">KRB5_LIB_FUNCTION const char <br>
47226031Sstas*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>
48226031Sstas
49226031Sstas<tr><td class="memItemLeft" nowrap align="right" valign="top">KRB5_LIB_FUNCTION const char <br>
50226031Sstas*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>
51226031Sstas
52226031Sstas<tr><td class="memItemLeft" nowrap align="right" valign="top">KRB5_LIB_FUNCTION const char <br>
53226031Sstas*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>
54226031Sstas
55226031Sstas<tr><td class="memItemLeft" nowrap align="right" valign="top">KRB5_LIB_FUNCTION const char <br>
56226031Sstas*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>
57226031Sstas
58226031Sstas<tr><td class="memItemLeft" nowrap align="right" valign="top">KRB5_LIB_FUNCTION char <br>
59226031Sstas**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>
60226031Sstas
61226031Sstas<tr><td class="memItemLeft" nowrap align="right" valign="top">KRB5_LIB_FUNCTION char <br>
62226031Sstas**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>
63226031Sstas
64226031Sstas<tr><td class="memItemLeft" nowrap align="right" valign="top">KRB5_LIB_FUNCTION void <br>
65226031SstasKRB5_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>
66226031Sstas
67226031Sstas<tr><td class="memItemLeft" nowrap align="right" valign="top">KRB5_LIB_FUNCTION krb5_boolean <br>
68226031SstasKRB5_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>
69226031Sstas
70226031Sstas<tr><td class="memItemLeft" nowrap align="right" valign="top">KRB5_LIB_FUNCTION krb5_boolean <br>
71226031SstasKRB5_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>
72226031Sstas
73226031Sstas<tr><td class="memItemLeft" nowrap align="right" valign="top">KRB5_LIB_FUNCTION krb5_boolean <br>
74226031SstasKRB5_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>
75226031Sstas
76226031Sstas<tr><td class="memItemLeft" nowrap align="right" valign="top">KRB5_LIB_FUNCTION krb5_boolean <br>
77226031SstasKRB5_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>
78226031Sstas
79226031Sstas<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>
80226031Sstas
81226031Sstas<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>
82226031Sstas
83226031Sstas<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>
84226031Sstas
85226031Sstas<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>
86226031Sstas
87226031Sstas<tr><td class="memItemLeft" nowrap align="right" valign="top">KRB5_LIB_FUNCTION <br>
88226031Sstaskrb5_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>
89226031Sstas
90226031Sstas<tr><td class="memItemLeft" nowrap align="right" valign="top">KRB5_LIB_FUNCTION <br>
91226031Sstaskrb5_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>
92226031Sstas
93226031Sstas<tr><td class="memItemLeft" nowrap align="right" valign="top">KRB5_LIB_FUNCTION <br>
94226031Sstaskrb5_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>
95226031Sstas
96226031Sstas<tr><td class="memItemLeft" nowrap align="right" valign="top">KRB5_LIB_FUNCTION krb5_boolean <br>
97226031SstasKRB5_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>
98226031Sstas
99226031Sstas<tr><td class="memItemLeft" nowrap align="right" valign="top">KRB5_LIB_FUNCTION <br>
100226031Sstaskrb5_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>
101226031Sstas
102226031Sstas</table>
103226031Sstas<hr><a name="_details"></a><h2>Detailed Description</h2>
104226031Sstas<hr><h2>Function Documentation</h2>
105226031Sstas<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,...)" -->
106226031Sstas<div class="memitem">
107226031Sstas<div class="memproto">
108226031Sstas      <table class="memname">
109226031Sstas        <tr>
110226031Sstas          <td class="memname">KRB5_LIB_FUNCTION krb5_error_code KRB5_LIB_CALL krb5_acl_match_file           </td>
111226031Sstas          <td>(</td>
112226031Sstas          <td class="paramtype">krb5_context&nbsp;</td>
113226031Sstas          <td class="paramname"> <em>context</em>, </td>
114226031Sstas        </tr>
115226031Sstas        <tr>
116226031Sstas          <td class="paramkey"></td>
117226031Sstas          <td></td>
118226031Sstas          <td class="paramtype">const char *&nbsp;</td>
119226031Sstas          <td class="paramname"> <em>file</em>, </td>
120226031Sstas        </tr>
121226031Sstas        <tr>
122226031Sstas          <td class="paramkey"></td>
123226031Sstas          <td></td>
124226031Sstas          <td class="paramtype">const char *&nbsp;</td>
125226031Sstas          <td class="paramname"> <em>format</em>, </td>
126226031Sstas        </tr>
127226031Sstas        <tr>
128226031Sstas          <td class="paramkey"></td>
129226031Sstas          <td></td>
130226031Sstas          <td class="paramtype">&nbsp;</td>
131226031Sstas          <td class="paramname"> <em>...</em></td><td>&nbsp;</td>
132226031Sstas        </tr>
133226031Sstas        <tr>
134226031Sstas          <td></td>
135226031Sstas          <td>)</td>
136226031Sstas          <td></td><td></td><td></td>
137226031Sstas        </tr>
138226031Sstas      </table>
139226031Sstas</div>
140226031Sstas<div class="memdoc">
141226031Sstas
142226031Sstas<p>
143226031Sstaskrb5_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>
144226031Sstas<dl compact><dt><b>Parameters:</b></dt><dd>
145226031Sstas  <table border="0" cellspacing="2" cellpadding="0">
146226031Sstas    <tr><td valign="top"></td><td valign="top"><em>context</em>&nbsp;</td><td>Kerberos 5 context. </td></tr>
147226031Sstas    <tr><td valign="top"></td><td valign="top"><em>file</em>&nbsp;</td><td>file with acl listed in the file. </td></tr>
148226031Sstas    <tr><td valign="top"></td><td valign="top"><em>format</em>&nbsp;</td><td>format to match. </td></tr>
149226031Sstas    <tr><td valign="top"></td><td valign="top"><em>...</em>&nbsp;</td><td>parameter to format string.</td></tr>
150226031Sstas  </table>
151226031Sstas</dl>
152226031Sstas<dl class="return" compact><dt><b>Returns:</b></dt><dd>Return an error code or 0.</dd></dl>
153226031Sstas<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>
154226031Sstas
155226031Sstas</div>
156226031Sstas</div><p>
157226031Sstas<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,...)" -->
158226031Sstas<div class="memitem">
159226031Sstas<div class="memproto">
160226031Sstas      <table class="memname">
161226031Sstas        <tr>
162226031Sstas          <td class="memname">KRB5_LIB_FUNCTION krb5_error_code KRB5_LIB_CALL krb5_acl_match_string           </td>
163226031Sstas          <td>(</td>
164226031Sstas          <td class="paramtype">krb5_context&nbsp;</td>
165226031Sstas          <td class="paramname"> <em>context</em>, </td>
166226031Sstas        </tr>
167226031Sstas        <tr>
168226031Sstas          <td class="paramkey"></td>
169226031Sstas          <td></td>
170226031Sstas          <td class="paramtype">const char *&nbsp;</td>
171226031Sstas          <td class="paramname"> <em>string</em>, </td>
172226031Sstas        </tr>
173226031Sstas        <tr>
174226031Sstas          <td class="paramkey"></td>
175226031Sstas          <td></td>
176226031Sstas          <td class="paramtype">const char *&nbsp;</td>
177226031Sstas          <td class="paramname"> <em>format</em>, </td>
178226031Sstas        </tr>
179226031Sstas        <tr>
180226031Sstas          <td class="paramkey"></td>
181226031Sstas          <td></td>
182226031Sstas          <td class="paramtype">&nbsp;</td>
183226031Sstas          <td class="paramname"> <em>...</em></td><td>&nbsp;</td>
184226031Sstas        </tr>
185226031Sstas        <tr>
186226031Sstas          <td></td>
187226031Sstas          <td>)</td>
188226031Sstas          <td></td><td></td><td></td>
189226031Sstas        </tr>
190226031Sstas      </table>
191226031Sstas</div>
192226031Sstas<div class="memdoc">
193226031Sstas
194226031Sstas<p>
195226031Sstaskrb5_acl_match_string matches ACL format against a string.<p>
196226031SstasThe 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>
197226031SstasList of format specifiers:<ul>
198226031Sstas<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>
199226031Sstas<p>
200226031Sstas<dl compact><dt><b>Parameters:</b></dt><dd>
201226031Sstas  <table border="0" cellspacing="2" cellpadding="0">
202226031Sstas    <tr><td valign="top"></td><td valign="top"><em>context</em>&nbsp;</td><td>Kerberos 5 context </td></tr>
203226031Sstas    <tr><td valign="top"></td><td valign="top"><em>string</em>&nbsp;</td><td>string to match with </td></tr>
204226031Sstas    <tr><td valign="top"></td><td valign="top"><em>format</em>&nbsp;</td><td>format to match </td></tr>
205226031Sstas    <tr><td valign="top"></td><td valign="top"><em>...</em>&nbsp;</td><td>parameter to format string</td></tr>
206226031Sstas  </table>
207226031Sstas</dl>
208226031Sstas<dl class="return" compact><dt><b>Returns:</b></dt><dd>Return an error code or 0.</dd></dl>
209226031Sstas<div class="fragment"><pre class="fragment"> <span class="keywordtype">char</span> *s;
210226031Sstas
211226031Sstas 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>);
212226031Sstas <span class="keywordflow">if</span> (ret)
213226031Sstas     krb5_errx(context, 1, <span class="stringliteral">"acl didn't match"</span>);
214226031Sstas ret = <a class="code" href="group__krb5__support.html#g245208f2d59a8fd7187089ad445e51d0">krb5_acl_match_string</a>(context, <span class="stringliteral">"foo foo baz/kaka"</span>,
215226031Sstas     <span class="stringliteral">"ss"</span>, <span class="stringliteral">"foo"</span>, &amp;s, <span class="stringliteral">"foo/\\*"</span>);
216226031Sstas <span class="keywordflow">if</span> (ret) {
217226031Sstas     <span class="comment">// no need to free(s) on error</span>
218226031Sstas     assert(s == NULL);
219226031Sstas     krb5_errx(context, 1, <span class="stringliteral">"acl didn't match"</span>);
220226031Sstas }
221226031Sstas free(s);
222226031Sstas</pre></div><p>
223226031Sstas<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>
224226031Sstas
225226031Sstas</div>
226226031Sstas</div><p>
227226031Sstas<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)" -->
228226031Sstas<div class="memitem">
229226031Sstas<div class="memproto">
230226031Sstas      <table class="memname">
231226031Sstas        <tr>
232226031Sstas          <td class="memname">KRB5_LIB_FUNCTION krb5_error_code KRB5_LIB_CALL krb5_config_file_free           </td>
233226031Sstas          <td>(</td>
234226031Sstas          <td class="paramtype">krb5_context&nbsp;</td>
235226031Sstas          <td class="paramname"> <em>context</em>, </td>
236226031Sstas        </tr>
237226031Sstas        <tr>
238226031Sstas          <td class="paramkey"></td>
239226031Sstas          <td></td>
240226031Sstas          <td class="paramtype">krb5_config_section *&nbsp;</td>
241226031Sstas          <td class="paramname"> <em>s</em></td><td>&nbsp;</td>
242226031Sstas        </tr>
243226031Sstas        <tr>
244226031Sstas          <td></td>
245226031Sstas          <td>)</td>
246226031Sstas          <td></td><td></td><td></td>
247226031Sstas        </tr>
248226031Sstas      </table>
249226031Sstas</div>
250226031Sstas<div class="memdoc">
251226031Sstas
252226031Sstas<p>
253226031SstasFree 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>
254226031Sstas<dl compact><dt><b>Parameters:</b></dt><dd>
255226031Sstas  <table border="0" cellspacing="2" cellpadding="0">
256226031Sstas    <tr><td valign="top"></td><td valign="top"><em>context</em>&nbsp;</td><td>A Kerberos 5 context </td></tr>
257226031Sstas    <tr><td valign="top"></td><td valign="top"><em>s</em>&nbsp;</td><td>the configuration section to free</td></tr>
258226031Sstas  </table>
259226031Sstas</dl>
260226031Sstas<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>
261226031Sstas
262226031Sstas</div>
263226031Sstas</div><p>
264226031Sstas<a class="anchor" name="g3440f86b07fa86aae0f0889445a0def2"></a><!-- doxytag: member="config_file.c::krb5_config_free_strings" ref="g3440f86b07fa86aae0f0889445a0def2" args="(char **strings)" -->
265226031Sstas<div class="memitem">
266226031Sstas<div class="memproto">
267226031Sstas      <table class="memname">
268226031Sstas        <tr>
269226031Sstas          <td class="memname">KRB5_LIB_FUNCTION void KRB5_LIB_CALL krb5_config_free_strings           </td>
270226031Sstas          <td>(</td>
271226031Sstas          <td class="paramtype">char **&nbsp;</td>
272226031Sstas          <td class="paramname"> <em>strings</em>          </td>
273226031Sstas          <td>&nbsp;)&nbsp;</td>
274226031Sstas          <td></td>
275226031Sstas        </tr>
276226031Sstas      </table>
277226031Sstas</div>
278226031Sstas<div class="memdoc">
279226031Sstas
280226031Sstas<p>
281226031SstasFree the resulting strings from krb5_config-get_strings() and <a class="el" href="group__krb5__support.html#g614850564b4d21b92e113fde9420bf3c">krb5_config_vget_strings()</a>.<p>
282226031Sstas<dl compact><dt><b>Parameters:</b></dt><dd>
283226031Sstas  <table border="0" cellspacing="2" cellpadding="0">
284226031Sstas    <tr><td valign="top"></td><td valign="top"><em>strings</em>&nbsp;</td><td>strings to free </td></tr>
285226031Sstas  </table>
286226031Sstas</dl>
287226031Sstas
288226031Sstas</div>
289226031Sstas</div><p>
290226031Sstas<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,...)" -->
291226031Sstas<div class="memitem">
292226031Sstas<div class="memproto">
293226031Sstas      <table class="memname">
294226031Sstas        <tr>
295226031Sstas          <td class="memname">KRB5_LIB_FUNCTION krb5_boolean KRB5_LIB_CALL krb5_config_get_bool           </td>
296226031Sstas          <td>(</td>
297226031Sstas          <td class="paramtype">krb5_context&nbsp;</td>
298226031Sstas          <td class="paramname"> <em>context</em>, </td>
299226031Sstas        </tr>
300226031Sstas        <tr>
301226031Sstas          <td class="paramkey"></td>
302226031Sstas          <td></td>
303226031Sstas          <td class="paramtype">const krb5_config_section *&nbsp;</td>
304226031Sstas          <td class="paramname"> <em>c</em>, </td>
305226031Sstas        </tr>
306226031Sstas        <tr>
307226031Sstas          <td class="paramkey"></td>
308226031Sstas          <td></td>
309226031Sstas          <td class="paramtype">&nbsp;</td>
310226031Sstas          <td class="paramname"> <em>...</em></td><td>&nbsp;</td>
311226031Sstas        </tr>
312226031Sstas        <tr>
313226031Sstas          <td></td>
314226031Sstas          <td>)</td>
315226031Sstas          <td></td><td></td><td></td>
316226031Sstas        </tr>
317226031Sstas      </table>
318226031Sstas</div>
319226031Sstas<div class="memdoc">
320226031Sstas
321226031Sstas<p>
322226031SstasLike <a class="el" href="group__krb5__support.html#g39402ca8c1b1eb2af4b514eed826f971">krb5_config_get_bool()</a> but with a va_list list of configuration selection.<p>
323226031SstasConfiguration value to a boolean value, where yes/true and any non-zero number means TRUE and other value is FALSE.<p>
324226031Sstas<dl compact><dt><b>Parameters:</b></dt><dd>
325226031Sstas  <table border="0" cellspacing="2" cellpadding="0">
326226031Sstas    <tr><td valign="top"></td><td valign="top"><em>context</em>&nbsp;</td><td>A Kerberos 5 context. </td></tr>
327226031Sstas    <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>
328226031Sstas    <tr><td valign="top"></td><td valign="top"><em>...</em>&nbsp;</td><td>a list of names, terminated with NULL.</td></tr>
329226031Sstas  </table>
330226031Sstas</dl>
331226031Sstas<dl class="return" compact><dt><b>Returns:</b></dt><dd>TRUE or FALSE </dd></dl>
332226031Sstas
333226031Sstas</div>
334226031Sstas</div><p>
335226031Sstas<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,...)" -->
336226031Sstas<div class="memitem">
337226031Sstas<div class="memproto">
338226031Sstas      <table class="memname">
339226031Sstas        <tr>
340226031Sstas          <td class="memname">KRB5_LIB_FUNCTION krb5_boolean KRB5_LIB_CALL krb5_config_get_bool_default           </td>
341226031Sstas          <td>(</td>
342226031Sstas          <td class="paramtype">krb5_context&nbsp;</td>
343226031Sstas          <td class="paramname"> <em>context</em>, </td>
344226031Sstas        </tr>
345226031Sstas        <tr>
346226031Sstas          <td class="paramkey"></td>
347226031Sstas          <td></td>
348226031Sstas          <td class="paramtype">const krb5_config_section *&nbsp;</td>
349226031Sstas          <td class="paramname"> <em>c</em>, </td>
350226031Sstas        </tr>
351226031Sstas        <tr>
352226031Sstas          <td class="paramkey"></td>
353226031Sstas          <td></td>
354226031Sstas          <td class="paramtype">krb5_boolean&nbsp;</td>
355226031Sstas          <td class="paramname"> <em>def_value</em>, </td>
356226031Sstas        </tr>
357226031Sstas        <tr>
358226031Sstas          <td class="paramkey"></td>
359226031Sstas          <td></td>
360226031Sstas          <td class="paramtype">&nbsp;</td>
361226031Sstas          <td class="paramname"> <em>...</em></td><td>&nbsp;</td>
362226031Sstas        </tr>
363226031Sstas        <tr>
364226031Sstas          <td></td>
365226031Sstas          <td>)</td>
366226031Sstas          <td></td><td></td><td></td>
367226031Sstas        </tr>
368226031Sstas      </table>
369226031Sstas</div>
370226031Sstas<div class="memdoc">
371226031Sstas
372226031Sstas<p>
373226031Sstas<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>
374226031Sstas<dl compact><dt><b>Parameters:</b></dt><dd>
375226031Sstas  <table border="0" cellspacing="2" cellpadding="0">
376226031Sstas    <tr><td valign="top"></td><td valign="top"><em>context</em>&nbsp;</td><td>A Kerberos 5 context. </td></tr>
377226031Sstas    <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>
378226031Sstas    <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>
379226031Sstas    <tr><td valign="top"></td><td valign="top"><em>...</em>&nbsp;</td><td>a list of names, terminated with NULL.</td></tr>
380226031Sstas  </table>
381226031Sstas</dl>
382226031Sstas<dl class="return" compact><dt><b>Returns:</b></dt><dd>TRUE or FALSE </dd></dl>
383226031Sstas
384226031Sstas</div>
385226031Sstas</div><p>
386226031Sstas<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,...)" -->
387226031Sstas<div class="memitem">
388226031Sstas<div class="memproto">
389226031Sstas      <table class="memname">
390226031Sstas        <tr>
391226031Sstas          <td class="memname">KRB5_LIB_FUNCTION const krb5_config_binding* KRB5_LIB_CALL krb5_config_get_list           </td>
392226031Sstas          <td>(</td>
393226031Sstas          <td class="paramtype">krb5_context&nbsp;</td>
394226031Sstas          <td class="paramname"> <em>context</em>, </td>
395226031Sstas        </tr>
396226031Sstas        <tr>
397226031Sstas          <td class="paramkey"></td>
398226031Sstas          <td></td>
399226031Sstas          <td class="paramtype">const krb5_config_section *&nbsp;</td>
400226031Sstas          <td class="paramname"> <em>c</em>, </td>
401226031Sstas        </tr>
402226031Sstas        <tr>
403226031Sstas          <td class="paramkey"></td>
404226031Sstas          <td></td>
405226031Sstas          <td class="paramtype">&nbsp;</td>
406226031Sstas          <td class="paramname"> <em>...</em></td><td>&nbsp;</td>
407226031Sstas        </tr>
408226031Sstas        <tr>
409226031Sstas          <td></td>
410226031Sstas          <td>)</td>
411226031Sstas          <td></td><td></td><td></td>
412226031Sstas        </tr>
413226031Sstas      </table>
414226031Sstas</div>
415226031Sstas<div class="memdoc">
416226031Sstas
417226031Sstas<p>
418226031SstasGet a list of configuration binding list for more processing<p>
419226031Sstas<dl compact><dt><b>Parameters:</b></dt><dd>
420226031Sstas  <table border="0" cellspacing="2" cellpadding="0">
421226031Sstas    <tr><td valign="top"></td><td valign="top"><em>context</em>&nbsp;</td><td>A Kerberos 5 context. </td></tr>
422226031Sstas    <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>
423226031Sstas    <tr><td valign="top"></td><td valign="top"><em>...</em>&nbsp;</td><td>a list of names, terminated with NULL.</td></tr>
424226031Sstas  </table>
425226031Sstas</dl>
426226031Sstas<dl class="return" compact><dt><b>Returns:</b></dt><dd>NULL if configuration list is not found, a list otherwise </dd></dl>
427226031Sstas
428226031Sstas</div>
429226031Sstas</div><p>
430226031Sstas<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,...)" -->
431226031Sstas<div class="memitem">
432226031Sstas<div class="memproto">
433226031Sstas      <table class="memname">
434226031Sstas        <tr>
435226031Sstas          <td class="memname">KRB5_LIB_FUNCTION const char* KRB5_LIB_CALL krb5_config_get_string           </td>
436226031Sstas          <td>(</td>
437226031Sstas          <td class="paramtype">krb5_context&nbsp;</td>
438226031Sstas          <td class="paramname"> <em>context</em>, </td>
439226031Sstas        </tr>
440226031Sstas        <tr>
441226031Sstas          <td class="paramkey"></td>
442226031Sstas          <td></td>
443226031Sstas          <td class="paramtype">const krb5_config_section *&nbsp;</td>
444226031Sstas          <td class="paramname"> <em>c</em>, </td>
445226031Sstas        </tr>
446226031Sstas        <tr>
447226031Sstas          <td class="paramkey"></td>
448226031Sstas          <td></td>
449226031Sstas          <td class="paramtype">&nbsp;</td>
450226031Sstas          <td class="paramname"> <em>...</em></td><td>&nbsp;</td>
451226031Sstas        </tr>
452226031Sstas        <tr>
453226031Sstas          <td></td>
454226031Sstas          <td>)</td>
455226031Sstas          <td></td><td></td><td></td>
456226031Sstas        </tr>
457226031Sstas      </table>
458226031Sstas</div>
459226031Sstas<div class="memdoc">
460226031Sstas
461226031Sstas<p>
462226031SstasReturns 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>
463226031Sstas<dl compact><dt><b>Parameters:</b></dt><dd>
464226031Sstas  <table border="0" cellspacing="2" cellpadding="0">
465226031Sstas    <tr><td valign="top"></td><td valign="top"><em>context</em>&nbsp;</td><td>A Kerberos 5 context. </td></tr>
466226031Sstas    <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>
467226031Sstas    <tr><td valign="top"></td><td valign="top"><em>...</em>&nbsp;</td><td>a list of names, terminated with NULL.</td></tr>
468226031Sstas  </table>
469226031Sstas</dl>
470226031Sstas<dl class="return" compact><dt><b>Returns:</b></dt><dd>NULL if configuration string not found, a string otherwise </dd></dl>
471226031Sstas
472226031Sstas</div>
473226031Sstas</div><p>
474226031Sstas<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,...)" -->
475226031Sstas<div class="memitem">
476226031Sstas<div class="memproto">
477226031Sstas      <table class="memname">
478226031Sstas        <tr>
479226031Sstas          <td class="memname">KRB5_LIB_FUNCTION const char* KRB5_LIB_CALL krb5_config_get_string_default           </td>
480226031Sstas          <td>(</td>
481226031Sstas          <td class="paramtype">krb5_context&nbsp;</td>
482226031Sstas          <td class="paramname"> <em>context</em>, </td>
483226031Sstas        </tr>
484226031Sstas        <tr>
485226031Sstas          <td class="paramkey"></td>
486226031Sstas          <td></td>
487226031Sstas          <td class="paramtype">const krb5_config_section *&nbsp;</td>
488226031Sstas          <td class="paramname"> <em>c</em>, </td>
489226031Sstas        </tr>
490226031Sstas        <tr>
491226031Sstas          <td class="paramkey"></td>
492226031Sstas          <td></td>
493226031Sstas          <td class="paramtype">const char *&nbsp;</td>
494226031Sstas          <td class="paramname"> <em>def_value</em>, </td>
495226031Sstas        </tr>
496226031Sstas        <tr>
497226031Sstas          <td class="paramkey"></td>
498226031Sstas          <td></td>
499226031Sstas          <td class="paramtype">&nbsp;</td>
500226031Sstas          <td class="paramname"> <em>...</em></td><td>&nbsp;</td>
501226031Sstas        </tr>
502226031Sstas        <tr>
503226031Sstas          <td></td>
504226031Sstas          <td>)</td>
505226031Sstas          <td></td><td></td><td></td>
506226031Sstas        </tr>
507226031Sstas      </table>
508226031Sstas</div>
509226031Sstas<div class="memdoc">
510226031Sstas
511226031Sstas<p>
512226031SstasLike <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>
513226031Sstas<dl compact><dt><b>Parameters:</b></dt><dd>
514226031Sstas  <table border="0" cellspacing="2" cellpadding="0">
515226031Sstas    <tr><td valign="top"></td><td valign="top"><em>context</em>&nbsp;</td><td>A Kerberos 5 context. </td></tr>
516226031Sstas    <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>
517226031Sstas    <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>
518226031Sstas    <tr><td valign="top"></td><td valign="top"><em>...</em>&nbsp;</td><td>a list of names, terminated with NULL.</td></tr>
519226031Sstas  </table>
520226031Sstas</dl>
521226031Sstas<dl class="return" compact><dt><b>Returns:</b></dt><dd>a configuration string </dd></dl>
522226031Sstas
523226031Sstas</div>
524226031Sstas</div><p>
525226031Sstas<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,...)" -->
526226031Sstas<div class="memitem">
527226031Sstas<div class="memproto">
528226031Sstas      <table class="memname">
529226031Sstas        <tr>
530226031Sstas          <td class="memname">KRB5_LIB_FUNCTION char** KRB5_LIB_CALL krb5_config_get_strings           </td>
531226031Sstas          <td>(</td>
532226031Sstas          <td class="paramtype">krb5_context&nbsp;</td>
533226031Sstas          <td class="paramname"> <em>context</em>, </td>
534226031Sstas        </tr>
535226031Sstas        <tr>
536226031Sstas          <td class="paramkey"></td>
537226031Sstas          <td></td>
538226031Sstas          <td class="paramtype">const krb5_config_section *&nbsp;</td>
539226031Sstas          <td class="paramname"> <em>c</em>, </td>
540226031Sstas        </tr>
541226031Sstas        <tr>
542226031Sstas          <td class="paramkey"></td>
543226031Sstas          <td></td>
544226031Sstas          <td class="paramtype">&nbsp;</td>
545226031Sstas          <td class="paramname"> <em>...</em></td><td>&nbsp;</td>
546226031Sstas        </tr>
547226031Sstas        <tr>
548226031Sstas          <td></td>
549226031Sstas          <td>)</td>
550226031Sstas          <td></td><td></td><td></td>
551226031Sstas        </tr>
552226031Sstas      </table>
553226031Sstas</div>
554226031Sstas<div class="memdoc">
555226031Sstas
556226031Sstas<p>
557226031SstasGet a list of configuration strings, free the result with <a class="el" href="group__krb5__support.html#g3440f86b07fa86aae0f0889445a0def2">krb5_config_free_strings()</a>.<p>
558226031Sstas<dl compact><dt><b>Parameters:</b></dt><dd>
559226031Sstas  <table border="0" cellspacing="2" cellpadding="0">
560226031Sstas    <tr><td valign="top"></td><td valign="top"><em>context</em>&nbsp;</td><td>A Kerberos 5 context. </td></tr>
561226031Sstas    <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>
562226031Sstas    <tr><td valign="top"></td><td valign="top"><em>...</em>&nbsp;</td><td>a list of names, terminated with NULL.</td></tr>
563226031Sstas  </table>
564226031Sstas</dl>
565226031Sstas<dl class="return" compact><dt><b>Returns:</b></dt><dd>TRUE or FALSE </dd></dl>
566226031Sstas
567226031Sstas</div>
568226031Sstas</div><p>
569226031Sstas<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,...)" -->
570226031Sstas<div class="memitem">
571226031Sstas<div class="memproto">
572226031Sstas      <table class="memname">
573226031Sstas        <tr>
574226031Sstas          <td class="memname">KRB5_LIB_FUNCTION int KRB5_LIB_CALL krb5_config_get_time           </td>
575226031Sstas          <td>(</td>
576226031Sstas          <td class="paramtype">krb5_context&nbsp;</td>
577226031Sstas          <td class="paramname"> <em>context</em>, </td>
578226031Sstas        </tr>
579226031Sstas        <tr>
580226031Sstas          <td class="paramkey"></td>
581226031Sstas          <td></td>
582226031Sstas          <td class="paramtype">const krb5_config_section *&nbsp;</td>
583226031Sstas          <td class="paramname"> <em>c</em>, </td>
584226031Sstas        </tr>
585226031Sstas        <tr>
586226031Sstas          <td class="paramkey"></td>
587226031Sstas          <td></td>
588226031Sstas          <td class="paramtype">&nbsp;</td>
589226031Sstas          <td class="paramname"> <em>...</em></td><td>&nbsp;</td>
590226031Sstas        </tr>
591226031Sstas        <tr>
592226031Sstas          <td></td>
593226031Sstas          <td>)</td>
594226031Sstas          <td></td><td></td><td></td>
595226031Sstas        </tr>
596226031Sstas      </table>
597226031Sstas</div>
598226031Sstas<div class="memdoc">
599226031Sstas
600226031Sstas<p>
601226031SstasGet the time from the configuration file using a relative time, for example: 1h30s<p>
602226031Sstas<dl compact><dt><b>Parameters:</b></dt><dd>
603226031Sstas  <table border="0" cellspacing="2" cellpadding="0">
604226031Sstas    <tr><td valign="top"></td><td valign="top"><em>context</em>&nbsp;</td><td>A Kerberos 5 context. </td></tr>
605226031Sstas    <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>
606226031Sstas    <tr><td valign="top"></td><td valign="top"><em>...</em>&nbsp;</td><td>a list of names, terminated with NULL.</td></tr>
607226031Sstas  </table>
608226031Sstas</dl>
609226031Sstas<dl class="return" compact><dt><b>Returns:</b></dt><dd>parsed the time or -1 on error </dd></dl>
610226031Sstas
611226031Sstas</div>
612226031Sstas</div><p>
613226031Sstas<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,...)" -->
614226031Sstas<div class="memitem">
615226031Sstas<div class="memproto">
616226031Sstas      <table class="memname">
617226031Sstas        <tr>
618226031Sstas          <td class="memname">KRB5_LIB_FUNCTION int KRB5_LIB_CALL krb5_config_get_time_default           </td>
619226031Sstas          <td>(</td>
620226031Sstas          <td class="paramtype">krb5_context&nbsp;</td>
621226031Sstas          <td class="paramname"> <em>context</em>, </td>
622226031Sstas        </tr>
623226031Sstas        <tr>
624226031Sstas          <td class="paramkey"></td>
625226031Sstas          <td></td>
626226031Sstas          <td class="paramtype">const krb5_config_section *&nbsp;</td>
627226031Sstas          <td class="paramname"> <em>c</em>, </td>
628226031Sstas        </tr>
629226031Sstas        <tr>
630226031Sstas          <td class="paramkey"></td>
631226031Sstas          <td></td>
632226031Sstas          <td class="paramtype">int&nbsp;</td>
633226031Sstas          <td class="paramname"> <em>def_value</em>, </td>
634226031Sstas        </tr>
635226031Sstas        <tr>
636226031Sstas          <td class="paramkey"></td>
637226031Sstas          <td></td>
638226031Sstas          <td class="paramtype">&nbsp;</td>
639226031Sstas          <td class="paramname"> <em>...</em></td><td>&nbsp;</td>
640226031Sstas        </tr>
641226031Sstas        <tr>
642226031Sstas          <td></td>
643226031Sstas          <td>)</td>
644226031Sstas          <td></td><td></td><td></td>
645226031Sstas        </tr>
646226031Sstas      </table>
647226031Sstas</div>
648226031Sstas<div class="memdoc">
649226031Sstas
650226031Sstas<p>
651226031SstasGet the time from the configuration file using a relative time, for example: 1h30s<p>
652226031Sstas<dl compact><dt><b>Parameters:</b></dt><dd>
653226031Sstas  <table border="0" cellspacing="2" cellpadding="0">
654226031Sstas    <tr><td valign="top"></td><td valign="top"><em>context</em>&nbsp;</td><td>A Kerberos 5 context. </td></tr>
655226031Sstas    <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>
656226031Sstas    <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>
657226031Sstas    <tr><td valign="top"></td><td valign="top"><em>...</em>&nbsp;</td><td>a list of names, terminated with NULL.</td></tr>
658226031Sstas  </table>
659226031Sstas</dl>
660226031Sstas<dl class="return" compact><dt><b>Returns:</b></dt><dd>parsed the time (or def_value on parse error) </dd></dl>
661226031Sstas
662226031Sstas</div>
663226031Sstas</div><p>
664226031Sstas<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)" -->
665226031Sstas<div class="memitem">
666226031Sstas<div class="memproto">
667226031Sstas      <table class="memname">
668226031Sstas        <tr>
669226031Sstas          <td class="memname">KRB5_LIB_FUNCTION krb5_error_code KRB5_LIB_CALL krb5_config_parse_file_multi           </td>
670226031Sstas          <td>(</td>
671226031Sstas          <td class="paramtype">krb5_context&nbsp;</td>
672226031Sstas          <td class="paramname"> <em>context</em>, </td>
673226031Sstas        </tr>
674226031Sstas        <tr>
675226031Sstas          <td class="paramkey"></td>
676226031Sstas          <td></td>
677226031Sstas          <td class="paramtype">const char *&nbsp;</td>
678226031Sstas          <td class="paramname"> <em>fname</em>, </td>
679226031Sstas        </tr>
680226031Sstas        <tr>
681226031Sstas          <td class="paramkey"></td>
682226031Sstas          <td></td>
683226031Sstas          <td class="paramtype">krb5_config_section **&nbsp;</td>
684226031Sstas          <td class="paramname"> <em>res</em></td><td>&nbsp;</td>
685226031Sstas        </tr>
686226031Sstas        <tr>
687226031Sstas          <td></td>
688226031Sstas          <td>)</td>
689226031Sstas          <td></td><td></td><td></td>
690226031Sstas        </tr>
691226031Sstas      </table>
692226031Sstas</div>
693226031Sstas<div class="memdoc">
694226031Sstas
695226031Sstas<p>
696226031SstasParse 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>
697226031Sstas<dl compact><dt><b>Parameters:</b></dt><dd>
698226031Sstas  <table border="0" cellspacing="2" cellpadding="0">
699226031Sstas    <tr><td valign="top"></td><td valign="top"><em>context</em>&nbsp;</td><td>a Kerberos 5 context. </td></tr>
700226031Sstas    <tr><td valign="top"></td><td valign="top"><em>fname</em>&nbsp;</td><td>a file name to a Kerberos configuration file </td></tr>
701226031Sstas    <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>
702226031Sstas  </table>
703226031Sstas</dl>
704226031Sstas<dl class="return" compact><dt><b>Returns:</b></dt><dd>Return an error code or 0, see krb5_get_error_message(). </dd></dl>
705226031Sstas
706226031Sstas<p>
707226031SstasIf 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>. 
708226031Sstas</div>
709226031Sstas</div><p>
710226031Sstas<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)" -->
711226031Sstas<div class="memitem">
712226031Sstas<div class="memproto">
713226031Sstas      <table class="memname">
714226031Sstas        <tr>
715226031Sstas          <td class="memname">KRB5_LIB_FUNCTION krb5_boolean KRB5_LIB_CALL krb5_config_vget_bool           </td>
716226031Sstas          <td>(</td>
717226031Sstas          <td class="paramtype">krb5_context&nbsp;</td>
718226031Sstas          <td class="paramname"> <em>context</em>, </td>
719226031Sstas        </tr>
720226031Sstas        <tr>
721226031Sstas          <td class="paramkey"></td>
722226031Sstas          <td></td>
723226031Sstas          <td class="paramtype">const krb5_config_section *&nbsp;</td>
724226031Sstas          <td class="paramname"> <em>c</em>, </td>
725226031Sstas        </tr>
726226031Sstas        <tr>
727226031Sstas          <td class="paramkey"></td>
728226031Sstas          <td></td>
729226031Sstas          <td class="paramtype">va_list&nbsp;</td>
730226031Sstas          <td class="paramname"> <em>args</em></td><td>&nbsp;</td>
731226031Sstas        </tr>
732226031Sstas        <tr>
733226031Sstas          <td></td>
734226031Sstas          <td>)</td>
735226031Sstas          <td></td><td></td><td></td>
736226031Sstas        </tr>
737226031Sstas      </table>
738226031Sstas</div>
739226031Sstas<div class="memdoc">
740226031Sstas
741226031Sstas<p>
742226031Sstas<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>
743226031Sstas<dl compact><dt><b>Parameters:</b></dt><dd>
744226031Sstas  <table border="0" cellspacing="2" cellpadding="0">
745226031Sstas    <tr><td valign="top"></td><td valign="top"><em>context</em>&nbsp;</td><td>A Kerberos 5 context. </td></tr>
746226031Sstas    <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>
747226031Sstas    <tr><td valign="top"></td><td valign="top"><em>args</em>&nbsp;</td><td>a va_list of arguments</td></tr>
748226031Sstas  </table>
749226031Sstas</dl>
750226031Sstas<dl class="return" compact><dt><b>Returns:</b></dt><dd>TRUE or FALSE </dd></dl>
751226031Sstas
752226031Sstas</div>
753226031Sstas</div><p>
754226031Sstas<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)" -->
755226031Sstas<div class="memitem">
756226031Sstas<div class="memproto">
757226031Sstas      <table class="memname">
758226031Sstas        <tr>
759226031Sstas          <td class="memname">KRB5_LIB_FUNCTION krb5_boolean KRB5_LIB_CALL krb5_config_vget_bool_default           </td>
760226031Sstas          <td>(</td>
761226031Sstas          <td class="paramtype">krb5_context&nbsp;</td>
762226031Sstas          <td class="paramname"> <em>context</em>, </td>
763226031Sstas        </tr>
764226031Sstas        <tr>
765226031Sstas          <td class="paramkey"></td>
766226031Sstas          <td></td>
767226031Sstas          <td class="paramtype">const krb5_config_section *&nbsp;</td>
768226031Sstas          <td class="paramname"> <em>c</em>, </td>
769226031Sstas        </tr>
770226031Sstas        <tr>
771226031Sstas          <td class="paramkey"></td>
772226031Sstas          <td></td>
773226031Sstas          <td class="paramtype">krb5_boolean&nbsp;</td>
774226031Sstas          <td class="paramname"> <em>def_value</em>, </td>
775226031Sstas        </tr>
776226031Sstas        <tr>
777226031Sstas          <td class="paramkey"></td>
778226031Sstas          <td></td>
779226031Sstas          <td class="paramtype">va_list&nbsp;</td>
780226031Sstas          <td class="paramname"> <em>args</em></td><td>&nbsp;</td>
781226031Sstas        </tr>
782226031Sstas        <tr>
783226031Sstas          <td></td>
784226031Sstas          <td>)</td>
785226031Sstas          <td></td><td></td><td></td>
786226031Sstas        </tr>
787226031Sstas      </table>
788226031Sstas</div>
789226031Sstas<div class="memdoc">
790226031Sstas
791226031Sstas<p>
792226031SstasLike <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>
793226031SstasConfiguration value to a boolean value, where yes/true and any non-zero number means TRUE and other value is FALSE.<p>
794226031Sstas<dl compact><dt><b>Parameters:</b></dt><dd>
795226031Sstas  <table border="0" cellspacing="2" cellpadding="0">
796226031Sstas    <tr><td valign="top"></td><td valign="top"><em>context</em>&nbsp;</td><td>A Kerberos 5 context. </td></tr>
797226031Sstas    <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>
798226031Sstas    <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>
799226031Sstas    <tr><td valign="top"></td><td valign="top"><em>args</em>&nbsp;</td><td>a va_list of arguments</td></tr>
800226031Sstas  </table>
801226031Sstas</dl>
802226031Sstas<dl class="return" compact><dt><b>Returns:</b></dt><dd>TRUE or FALSE </dd></dl>
803226031Sstas
804226031Sstas</div>
805226031Sstas</div><p>
806226031Sstas<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)" -->
807226031Sstas<div class="memitem">
808226031Sstas<div class="memproto">
809226031Sstas      <table class="memname">
810226031Sstas        <tr>
811226031Sstas          <td class="memname">KRB5_LIB_FUNCTION const krb5_config_binding* KRB5_LIB_CALL krb5_config_vget_list           </td>
812226031Sstas          <td>(</td>
813226031Sstas          <td class="paramtype">krb5_context&nbsp;</td>
814226031Sstas          <td class="paramname"> <em>context</em>, </td>
815226031Sstas        </tr>
816226031Sstas        <tr>
817226031Sstas          <td class="paramkey"></td>
818226031Sstas          <td></td>
819226031Sstas          <td class="paramtype">const krb5_config_section *&nbsp;</td>
820226031Sstas          <td class="paramname"> <em>c</em>, </td>
821226031Sstas        </tr>
822226031Sstas        <tr>
823226031Sstas          <td class="paramkey"></td>
824226031Sstas          <td></td>
825226031Sstas          <td class="paramtype">va_list&nbsp;</td>
826226031Sstas          <td class="paramname"> <em>args</em></td><td>&nbsp;</td>
827226031Sstas        </tr>
828226031Sstas        <tr>
829226031Sstas          <td></td>
830226031Sstas          <td>)</td>
831226031Sstas          <td></td><td></td><td></td>
832226031Sstas        </tr>
833226031Sstas      </table>
834226031Sstas</div>
835226031Sstas<div class="memdoc">
836226031Sstas
837226031Sstas<p>
838226031SstasGet a list of configuration binding list for more processing<p>
839226031Sstas<dl compact><dt><b>Parameters:</b></dt><dd>
840226031Sstas  <table border="0" cellspacing="2" cellpadding="0">
841226031Sstas    <tr><td valign="top"></td><td valign="top"><em>context</em>&nbsp;</td><td>A Kerberos 5 context. </td></tr>
842226031Sstas    <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>
843226031Sstas    <tr><td valign="top"></td><td valign="top"><em>args</em>&nbsp;</td><td>a va_list of arguments</td></tr>
844226031Sstas  </table>
845226031Sstas</dl>
846226031Sstas<dl class="return" compact><dt><b>Returns:</b></dt><dd>NULL if configuration list is not found, a list otherwise </dd></dl>
847226031Sstas
848226031Sstas</div>
849226031Sstas</div><p>
850226031Sstas<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)" -->
851226031Sstas<div class="memitem">
852226031Sstas<div class="memproto">
853226031Sstas      <table class="memname">
854226031Sstas        <tr>
855226031Sstas          <td class="memname">KRB5_LIB_FUNCTION const char* KRB5_LIB_CALL krb5_config_vget_string           </td>
856226031Sstas          <td>(</td>
857226031Sstas          <td class="paramtype">krb5_context&nbsp;</td>
858226031Sstas          <td class="paramname"> <em>context</em>, </td>
859226031Sstas        </tr>
860226031Sstas        <tr>
861226031Sstas          <td class="paramkey"></td>
862226031Sstas          <td></td>
863226031Sstas          <td class="paramtype">const krb5_config_section *&nbsp;</td>
864226031Sstas          <td class="paramname"> <em>c</em>, </td>
865226031Sstas        </tr>
866226031Sstas        <tr>
867226031Sstas          <td class="paramkey"></td>
868226031Sstas          <td></td>
869226031Sstas          <td class="paramtype">va_list&nbsp;</td>
870226031Sstas          <td class="paramname"> <em>args</em></td><td>&nbsp;</td>
871226031Sstas        </tr>
872226031Sstas        <tr>
873226031Sstas          <td></td>
874226031Sstas          <td>)</td>
875226031Sstas          <td></td><td></td><td></td>
876226031Sstas        </tr>
877226031Sstas      </table>
878226031Sstas</div>
879226031Sstas<div class="memdoc">
880226031Sstas
881226031Sstas<p>
882226031SstasLike <a class="el" href="group__krb5__support.html#gc0845cba8c8f7fd2e447de60d81556ac">krb5_config_get_string()</a>, but uses a va_list instead of ...<p>
883226031Sstas<dl compact><dt><b>Parameters:</b></dt><dd>
884226031Sstas  <table border="0" cellspacing="2" cellpadding="0">
885226031Sstas    <tr><td valign="top"></td><td valign="top"><em>context</em>&nbsp;</td><td>A Kerberos 5 context. </td></tr>
886226031Sstas    <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>
887226031Sstas    <tr><td valign="top"></td><td valign="top"><em>args</em>&nbsp;</td><td>a va_list of arguments</td></tr>
888226031Sstas  </table>
889226031Sstas</dl>
890226031Sstas<dl class="return" compact><dt><b>Returns:</b></dt><dd>NULL if configuration string not found, a string otherwise </dd></dl>
891226031Sstas
892226031Sstas</div>
893226031Sstas</div><p>
894226031Sstas<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)" -->
895226031Sstas<div class="memitem">
896226031Sstas<div class="memproto">
897226031Sstas      <table class="memname">
898226031Sstas        <tr>
899226031Sstas          <td class="memname">KRB5_LIB_FUNCTION const char* KRB5_LIB_CALL krb5_config_vget_string_default           </td>
900226031Sstas          <td>(</td>
901226031Sstas          <td class="paramtype">krb5_context&nbsp;</td>
902226031Sstas          <td class="paramname"> <em>context</em>, </td>
903226031Sstas        </tr>
904226031Sstas        <tr>
905226031Sstas          <td class="paramkey"></td>
906226031Sstas          <td></td>
907226031Sstas          <td class="paramtype">const krb5_config_section *&nbsp;</td>
908226031Sstas          <td class="paramname"> <em>c</em>, </td>
909226031Sstas        </tr>
910226031Sstas        <tr>
911226031Sstas          <td class="paramkey"></td>
912226031Sstas          <td></td>
913226031Sstas          <td class="paramtype">const char *&nbsp;</td>
914226031Sstas          <td class="paramname"> <em>def_value</em>, </td>
915226031Sstas        </tr>
916226031Sstas        <tr>
917226031Sstas          <td class="paramkey"></td>
918226031Sstas          <td></td>
919226031Sstas          <td class="paramtype">va_list&nbsp;</td>
920226031Sstas          <td class="paramname"> <em>args</em></td><td>&nbsp;</td>
921226031Sstas        </tr>
922226031Sstas        <tr>
923226031Sstas          <td></td>
924226031Sstas          <td>)</td>
925226031Sstas          <td></td><td></td><td></td>
926226031Sstas        </tr>
927226031Sstas      </table>
928226031Sstas</div>
929226031Sstas<div class="memdoc">
930226031Sstas
931226031Sstas<p>
932226031SstasLike <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>
933226031Sstas<dl compact><dt><b>Parameters:</b></dt><dd>
934226031Sstas  <table border="0" cellspacing="2" cellpadding="0">
935226031Sstas    <tr><td valign="top"></td><td valign="top"><em>context</em>&nbsp;</td><td>A Kerberos 5 context. </td></tr>
936226031Sstas    <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>
937226031Sstas    <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>
938226031Sstas    <tr><td valign="top"></td><td valign="top"><em>args</em>&nbsp;</td><td>a va_list of arguments</td></tr>
939226031Sstas  </table>
940226031Sstas</dl>
941226031Sstas<dl class="return" compact><dt><b>Returns:</b></dt><dd>a configuration string </dd></dl>
942226031Sstas
943226031Sstas</div>
944226031Sstas</div><p>
945226031Sstas<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)" -->
946226031Sstas<div class="memitem">
947226031Sstas<div class="memproto">
948226031Sstas      <table class="memname">
949226031Sstas        <tr>
950226031Sstas          <td class="memname">KRB5_LIB_FUNCTION char** KRB5_LIB_CALL krb5_config_vget_strings           </td>
951226031Sstas          <td>(</td>
952226031Sstas          <td class="paramtype">krb5_context&nbsp;</td>
953226031Sstas          <td class="paramname"> <em>context</em>, </td>
954226031Sstas        </tr>
955226031Sstas        <tr>
956226031Sstas          <td class="paramkey"></td>
957226031Sstas          <td></td>
958226031Sstas          <td class="paramtype">const krb5_config_section *&nbsp;</td>
959226031Sstas          <td class="paramname"> <em>c</em>, </td>
960226031Sstas        </tr>
961226031Sstas        <tr>
962226031Sstas          <td class="paramkey"></td>
963226031Sstas          <td></td>
964226031Sstas          <td class="paramtype">va_list&nbsp;</td>
965226031Sstas          <td class="paramname"> <em>args</em></td><td>&nbsp;</td>
966226031Sstas        </tr>
967226031Sstas        <tr>
968226031Sstas          <td></td>
969226031Sstas          <td>)</td>
970226031Sstas          <td></td><td></td><td></td>
971226031Sstas        </tr>
972226031Sstas      </table>
973226031Sstas</div>
974226031Sstas<div class="memdoc">
975226031Sstas
976226031Sstas<p>
977226031SstasGet a list of configuration strings, free the result with <a class="el" href="group__krb5__support.html#g3440f86b07fa86aae0f0889445a0def2">krb5_config_free_strings()</a>.<p>
978226031Sstas<dl compact><dt><b>Parameters:</b></dt><dd>
979226031Sstas  <table border="0" cellspacing="2" cellpadding="0">
980226031Sstas    <tr><td valign="top"></td><td valign="top"><em>context</em>&nbsp;</td><td>A Kerberos 5 context. </td></tr>
981226031Sstas    <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>
982226031Sstas    <tr><td valign="top"></td><td valign="top"><em>args</em>&nbsp;</td><td>a va_list of arguments</td></tr>
983226031Sstas  </table>
984226031Sstas</dl>
985226031Sstas<dl class="return" compact><dt><b>Returns:</b></dt><dd>TRUE or FALSE </dd></dl>
986226031Sstas
987226031Sstas</div>
988226031Sstas</div><p>
989226031Sstas<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)" -->
990226031Sstas<div class="memitem">
991226031Sstas<div class="memproto">
992226031Sstas      <table class="memname">
993226031Sstas        <tr>
994226031Sstas          <td class="memname">KRB5_LIB_FUNCTION int KRB5_LIB_CALL krb5_config_vget_time           </td>
995226031Sstas          <td>(</td>
996226031Sstas          <td class="paramtype">krb5_context&nbsp;</td>
997226031Sstas          <td class="paramname"> <em>context</em>, </td>
998226031Sstas        </tr>
999226031Sstas        <tr>
1000226031Sstas          <td class="paramkey"></td>
1001226031Sstas          <td></td>
1002226031Sstas          <td class="paramtype">const krb5_config_section *&nbsp;</td>
1003226031Sstas          <td class="paramname"> <em>c</em>, </td>
1004226031Sstas        </tr>
1005226031Sstas        <tr>
1006226031Sstas          <td class="paramkey"></td>
1007226031Sstas          <td></td>
1008226031Sstas          <td class="paramtype">va_list&nbsp;</td>
1009226031Sstas          <td class="paramname"> <em>args</em></td><td>&nbsp;</td>
1010226031Sstas        </tr>
1011226031Sstas        <tr>
1012226031Sstas          <td></td>
1013226031Sstas          <td>)</td>
1014226031Sstas          <td></td><td></td><td></td>
1015226031Sstas        </tr>
1016226031Sstas      </table>
1017226031Sstas</div>
1018226031Sstas<div class="memdoc">
1019226031Sstas
1020226031Sstas<p>
1021226031SstasGet the time from the configuration file using a relative time, for example: 1h30s<p>
1022226031Sstas<dl compact><dt><b>Parameters:</b></dt><dd>
1023226031Sstas  <table border="0" cellspacing="2" cellpadding="0">
1024226031Sstas    <tr><td valign="top"></td><td valign="top"><em>context</em>&nbsp;</td><td>A Kerberos 5 context. </td></tr>
1025226031Sstas    <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>
1026226031Sstas    <tr><td valign="top"></td><td valign="top"><em>args</em>&nbsp;</td><td>a va_list of arguments</td></tr>
1027226031Sstas  </table>
1028226031Sstas</dl>
1029226031Sstas<dl class="return" compact><dt><b>Returns:</b></dt><dd>parsed the time or -1 on error </dd></dl>
1030226031Sstas
1031226031Sstas</div>
1032226031Sstas</div><p>
1033226031Sstas<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)" -->
1034226031Sstas<div class="memitem">
1035226031Sstas<div class="memproto">
1036226031Sstas      <table class="memname">
1037226031Sstas        <tr>
1038226031Sstas          <td class="memname">KRB5_LIB_FUNCTION int KRB5_LIB_CALL krb5_config_vget_time_default           </td>
1039226031Sstas          <td>(</td>
1040226031Sstas          <td class="paramtype">krb5_context&nbsp;</td>
1041226031Sstas          <td class="paramname"> <em>context</em>, </td>
1042226031Sstas        </tr>
1043226031Sstas        <tr>
1044226031Sstas          <td class="paramkey"></td>
1045226031Sstas          <td></td>
1046226031Sstas          <td class="paramtype">const krb5_config_section *&nbsp;</td>
1047226031Sstas          <td class="paramname"> <em>c</em>, </td>
1048226031Sstas        </tr>
1049226031Sstas        <tr>
1050226031Sstas          <td class="paramkey"></td>
1051226031Sstas          <td></td>
1052226031Sstas          <td class="paramtype">int&nbsp;</td>
1053226031Sstas          <td class="paramname"> <em>def_value</em>, </td>
1054226031Sstas        </tr>
1055226031Sstas        <tr>
1056226031Sstas          <td class="paramkey"></td>
1057226031Sstas          <td></td>
1058226031Sstas          <td class="paramtype">va_list&nbsp;</td>
1059226031Sstas          <td class="paramname"> <em>args</em></td><td>&nbsp;</td>
1060226031Sstas        </tr>
1061226031Sstas        <tr>
1062226031Sstas          <td></td>
1063226031Sstas          <td>)</td>
1064226031Sstas          <td></td><td></td><td></td>
1065226031Sstas        </tr>
1066226031Sstas      </table>
1067226031Sstas</div>
1068226031Sstas<div class="memdoc">
1069226031Sstas
1070226031Sstas<p>
1071226031SstasGet the time from the configuration file using a relative time.<p>
1072226031SstasLike <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>
1073226031Sstas<dl compact><dt><b>Parameters:</b></dt><dd>
1074226031Sstas  <table border="0" cellspacing="2" cellpadding="0">
1075226031Sstas    <tr><td valign="top"></td><td valign="top"><em>context</em>&nbsp;</td><td>A Kerberos 5 context. </td></tr>
1076226031Sstas    <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>
1077226031Sstas    <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>
1078226031Sstas    <tr><td valign="top"></td><td valign="top"><em>args</em>&nbsp;</td><td>a va_list of arguments</td></tr>
1079226031Sstas  </table>
1080226031Sstas</dl>
1081226031Sstas<dl class="return" compact><dt><b>Returns:</b></dt><dd>parsed the time (or def_value on parse error) </dd></dl>
1082226031Sstas
1083226031Sstas</div>
1084226031Sstas</div><p>
1085226031Sstas<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)" -->
1086226031Sstas<div class="memitem">
1087226031Sstas<div class="memproto">
1088226031Sstas      <table class="memname">
1089226031Sstas        <tr>
1090226031Sstas          <td class="memname">KRB5_LIB_FUNCTION krb5_error_code KRB5_LIB_CALL krb5_expand_hostname           </td>
1091226031Sstas          <td>(</td>
1092226031Sstas          <td class="paramtype">krb5_context&nbsp;</td>
1093226031Sstas          <td class="paramname"> <em>context</em>, </td>
1094226031Sstas        </tr>
1095226031Sstas        <tr>
1096226031Sstas          <td class="paramkey"></td>
1097226031Sstas          <td></td>
1098226031Sstas          <td class="paramtype">const char *&nbsp;</td>
1099226031Sstas          <td class="paramname"> <em>orig_hostname</em>, </td>
1100226031Sstas        </tr>
1101226031Sstas        <tr>
1102226031Sstas          <td class="paramkey"></td>
1103226031Sstas          <td></td>
1104226031Sstas          <td class="paramtype">char **&nbsp;</td>
1105226031Sstas          <td class="paramname"> <em>new_hostname</em></td><td>&nbsp;</td>
1106226031Sstas        </tr>
1107226031Sstas        <tr>
1108226031Sstas          <td></td>
1109226031Sstas          <td>)</td>
1110226031Sstas          <td></td><td></td><td></td>
1111226031Sstas        </tr>
1112226031Sstas      </table>
1113226031Sstas</div>
1114226031Sstas<div class="memdoc">
1115226031Sstas
1116226031Sstas<p>
1117226031Sstas<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>
1118226031Sstas<dl compact><dt><b>Parameters:</b></dt><dd>
1119226031Sstas  <table border="0" cellspacing="2" cellpadding="0">
1120226031Sstas    <tr><td valign="top"></td><td valign="top"><em>context</em>&nbsp;</td><td>a Keberos context </td></tr>
1121226031Sstas    <tr><td valign="top"></td><td valign="top"><em>orig_hostname</em>&nbsp;</td><td>hostname to canonicalise. </td></tr>
1122226031Sstas    <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>
1123226031Sstas  </table>
1124226031Sstas</dl>
1125226031Sstas<dl class="return" compact><dt><b>Returns:</b></dt><dd>Return an error code or 0, see krb5_get_error_message(). </dd></dl>
1126226031Sstas
1127226031Sstas</div>
1128226031Sstas</div><p>
1129226031Sstas<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)" -->
1130226031Sstas<div class="memitem">
1131226031Sstas<div class="memproto">
1132226031Sstas      <table class="memname">
1133226031Sstas        <tr>
1134226031Sstas          <td class="memname">KRB5_LIB_FUNCTION krb5_error_code KRB5_LIB_CALL krb5_expand_hostname_realms           </td>
1135226031Sstas          <td>(</td>
1136226031Sstas          <td class="paramtype">krb5_context&nbsp;</td>
1137226031Sstas          <td class="paramname"> <em>context</em>, </td>
1138226031Sstas        </tr>
1139226031Sstas        <tr>
1140226031Sstas          <td class="paramkey"></td>
1141226031Sstas          <td></td>
1142226031Sstas          <td class="paramtype">const char *&nbsp;</td>
1143226031Sstas          <td class="paramname"> <em>orig_hostname</em>, </td>
1144226031Sstas        </tr>
1145226031Sstas        <tr>
1146226031Sstas          <td class="paramkey"></td>
1147226031Sstas          <td></td>
1148226031Sstas          <td class="paramtype">char **&nbsp;</td>
1149226031Sstas          <td class="paramname"> <em>new_hostname</em>, </td>
1150226031Sstas        </tr>
1151226031Sstas        <tr>
1152226031Sstas          <td class="paramkey"></td>
1153226031Sstas          <td></td>
1154226031Sstas          <td class="paramtype">char ***&nbsp;</td>
1155226031Sstas          <td class="paramname"> <em>realms</em></td><td>&nbsp;</td>
1156226031Sstas        </tr>
1157226031Sstas        <tr>
1158226031Sstas          <td></td>
1159226031Sstas          <td>)</td>
1160226031Sstas          <td></td><td></td><td></td>
1161226031Sstas        </tr>
1162226031Sstas      </table>
1163226031Sstas</div>
1164226031Sstas<div class="memdoc">
1165226031Sstas
1166226031Sstas<p>
1167226031Sstas<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>
1168226031Sstas<dl compact><dt><b>Parameters:</b></dt><dd>
1169226031Sstas  <table border="0" cellspacing="2" cellpadding="0">
1170226031Sstas    <tr><td valign="top"></td><td valign="top"><em>context</em>&nbsp;</td><td>a Keberos context </td></tr>
1171226031Sstas    <tr><td valign="top"></td><td valign="top"><em>orig_hostname</em>&nbsp;</td><td>hostname to canonicalise. </td></tr>
1172226031Sstas    <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>
1173226031Sstas    <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>
1174226031Sstas  </table>
1175226031Sstas</dl>
1176226031Sstas<dl class="return" compact><dt><b>Returns:</b></dt><dd>Return an error code or 0, see krb5_get_error_message(). </dd></dl>
1177226031Sstas
1178226031Sstas</div>
1179226031Sstas</div><p>
1180226031Sstas<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)" -->
1181226031Sstas<div class="memitem">
1182226031Sstas<div class="memproto">
1183226031Sstas      <table class="memname">
1184226031Sstas        <tr>
1185226031Sstas          <td class="memname">KRB5_LIB_FUNCTION krb5_error_code KRB5_LIB_CALL krb5_free_host_realm           </td>
1186226031Sstas          <td>(</td>
1187226031Sstas          <td class="paramtype">krb5_context&nbsp;</td>
1188226031Sstas          <td class="paramname"> <em>context</em>, </td>
1189226031Sstas        </tr>
1190226031Sstas        <tr>
1191226031Sstas          <td class="paramkey"></td>
1192226031Sstas          <td></td>
1193226031Sstas          <td class="paramtype">krb5_realm *&nbsp;</td>
1194226031Sstas          <td class="paramname"> <em>realmlist</em></td><td>&nbsp;</td>
1195226031Sstas        </tr>
1196226031Sstas        <tr>
1197226031Sstas          <td></td>
1198226031Sstas          <td>)</td>
1199226031Sstas          <td></td><td></td><td></td>
1200226031Sstas        </tr>
1201226031Sstas      </table>
1202226031Sstas</div>
1203226031Sstas<div class="memdoc">
1204226031Sstas
1205226031Sstas<p>
1206226031SstasFree all memory allocated by `realmlist'<p>
1207226031Sstas<dl compact><dt><b>Parameters:</b></dt><dd>
1208226031Sstas  <table border="0" cellspacing="2" cellpadding="0">
1209226031Sstas    <tr><td valign="top"></td><td valign="top"><em>context</em>&nbsp;</td><td>A Kerberos 5 context. </td></tr>
1210226031Sstas    <tr><td valign="top"></td><td valign="top"><em>realmlist</em>&nbsp;</td><td>realmlist to free, NULL is ok</td></tr>
1211226031Sstas  </table>
1212226031Sstas</dl>
1213226031Sstas<dl class="return" compact><dt><b>Returns:</b></dt><dd>a Kerberos error code, always 0. </dd></dl>
1214226031Sstas
1215226031Sstas</div>
1216226031Sstas</div><p>
1217226031Sstas<a class="anchor" name="g6368eceea4261ef2ccb8dc39ecc87772"></a><!-- doxytag: member="kuserok.c::krb5_kuserok" ref="g6368eceea4261ef2ccb8dc39ecc87772" args="(krb5_context context, krb5_principal principal, const char *luser)" -->
1218226031Sstas<div class="memitem">
1219226031Sstas<div class="memproto">
1220226031Sstas      <table class="memname">
1221226031Sstas        <tr>
1222226031Sstas          <td class="memname">KRB5_LIB_FUNCTION krb5_boolean KRB5_LIB_CALL krb5_kuserok           </td>
1223226031Sstas          <td>(</td>
1224226031Sstas          <td class="paramtype">krb5_context&nbsp;</td>
1225226031Sstas          <td class="paramname"> <em>context</em>, </td>
1226226031Sstas        </tr>
1227226031Sstas        <tr>
1228226031Sstas          <td class="paramkey"></td>
1229226031Sstas          <td></td>
1230226031Sstas          <td class="paramtype">krb5_principal&nbsp;</td>
1231226031Sstas          <td class="paramname"> <em>principal</em>, </td>
1232226031Sstas        </tr>
1233226031Sstas        <tr>
1234226031Sstas          <td class="paramkey"></td>
1235226031Sstas          <td></td>
1236226031Sstas          <td class="paramtype">const char *&nbsp;</td>
1237226031Sstas          <td class="paramname"> <em>luser</em></td><td>&nbsp;</td>
1238226031Sstas        </tr>
1239226031Sstas        <tr>
1240226031Sstas          <td></td>
1241226031Sstas          <td>)</td>
1242226031Sstas          <td></td><td></td><td></td>
1243226031Sstas        </tr>
1244226031Sstas      </table>
1245226031Sstas</div>
1246226031Sstas<div class="memdoc">
1247226031Sstas
1248226031Sstas<p>
1249226031SstasThis function takes the name of a local user and checks if principal is allowed to log in as that user.<p>
1250226031SstasThe 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>
1251226031SstasThe .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>
1252226031SstasNote that if the file exists, no implicit access rights are given to user@LOCALREALM.<p>
1253226031SstasOptionally, 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>
1254226031SstasIf no configuration file exists, match user against local domains, ie luser@LOCAL-REALMS-IN-CONFIGURATION-FILES.<p>
1255226031Sstas<dl compact><dt><b>Parameters:</b></dt><dd>
1256226031Sstas  <table border="0" cellspacing="2" cellpadding="0">
1257226031Sstas    <tr><td valign="top"></td><td valign="top"><em>context</em>&nbsp;</td><td>Kerberos 5 context. </td></tr>
1258226031Sstas    <tr><td valign="top"></td><td valign="top"><em>principal</em>&nbsp;</td><td>principal to check if allowed to login </td></tr>
1259226031Sstas    <tr><td valign="top"></td><td valign="top"><em>luser</em>&nbsp;</td><td>local user id</td></tr>
1260226031Sstas  </table>
1261226031Sstas</dl>
1262226031Sstas<dl class="return" compact><dt><b>Returns:</b></dt><dd>returns TRUE if access should be granted, FALSE otherwise. </dd></dl>
1263226031Sstas
1264226031Sstas</div>
1265226031Sstas</div><p>
1266226031Sstas<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)" -->
1267226031Sstas<div class="memitem">
1268226031Sstas<div class="memproto">
1269226031Sstas      <table class="memname">
1270226031Sstas        <tr>
1271226031Sstas          <td class="memname">KRB5_LIB_FUNCTION krb5_error_code KRB5_LIB_CALL krb5_plugin_register           </td>
1272226031Sstas          <td>(</td>
1273226031Sstas          <td class="paramtype">krb5_context&nbsp;</td>
1274226031Sstas          <td class="paramname"> <em>context</em>, </td>
1275226031Sstas        </tr>
1276226031Sstas        <tr>
1277226031Sstas          <td class="paramkey"></td>
1278226031Sstas          <td></td>
1279226031Sstas          <td class="paramtype">enum krb5_plugin_type&nbsp;</td>
1280226031Sstas          <td class="paramname"> <em>type</em>, </td>
1281226031Sstas        </tr>
1282226031Sstas        <tr>
1283226031Sstas          <td class="paramkey"></td>
1284226031Sstas          <td></td>
1285226031Sstas          <td class="paramtype">const char *&nbsp;</td>
1286226031Sstas          <td class="paramname"> <em>name</em>, </td>
1287226031Sstas        </tr>
1288226031Sstas        <tr>
1289226031Sstas          <td class="paramkey"></td>
1290226031Sstas          <td></td>
1291226031Sstas          <td class="paramtype">void *&nbsp;</td>
1292226031Sstas          <td class="paramname"> <em>symbol</em></td><td>&nbsp;</td>
1293226031Sstas        </tr>
1294226031Sstas        <tr>
1295226031Sstas          <td></td>
1296226031Sstas          <td>)</td>
1297226031Sstas          <td></td><td></td><td></td>
1298226031Sstas        </tr>
1299226031Sstas      </table>
1300226031Sstas</div>
1301226031Sstas<div class="memdoc">
1302226031Sstas
1303226031Sstas<p>
1304226031SstasRegister a plugin symbol name of specific type. <dl compact><dt><b>Parameters:</b></dt><dd>
1305226031Sstas  <table border="0" cellspacing="2" cellpadding="0">
1306226031Sstas    <tr><td valign="top"></td><td valign="top"><em>context</em>&nbsp;</td><td>a Keberos context </td></tr>
1307226031Sstas    <tr><td valign="top"></td><td valign="top"><em>type</em>&nbsp;</td><td>type of plugin symbol </td></tr>
1308226031Sstas    <tr><td valign="top"></td><td valign="top"><em>name</em>&nbsp;</td><td>name of plugin symbol </td></tr>
1309226031Sstas    <tr><td valign="top"></td><td valign="top"><em>symbol</em>&nbsp;</td><td>a pointer to the named symbol </td></tr>
1310226031Sstas  </table>
1311226031Sstas</dl>
1312226031Sstas<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>
1313226031Sstas
1314226031Sstas</div>
1315226031Sstas</div><p>
1316226031Sstas</div>
1317226031Sstas<hr size="1"><address style="text-align: right;"><small>
1318234027SstasGenerated 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>
1319226031Sstas</body>
1320226031Sstas</html>
1321