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