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&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> | 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  </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"> </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"> </td></tr> 36<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct  </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"> </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"> </td></tr> 39<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct  </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"> </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"> </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 </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"> </td></tr> 47<tr class="memitem:ga7c5dbc1743dc0bc63765edf82d10eb9e"><td class="memItemLeft" align="right" valign="top">KRB5_LIB_FUNCTION krb5_error_code KRB5_LIB_CALL </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"> </td></tr> 49<tr class="memitem:ga3da1c15fbc425a71da10784139140644"><td class="memItemLeft" align="right" valign="top">KRB5_LIB_FUNCTION krb5_error_code KRB5_LIB_CALL </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"> </td></tr> 51<tr class="memitem:ga59892cdf61d0a6a59b3dd2e9998b541a"><td class="memItemLeft" align="right" valign="top">KRB5_LIB_FUNCTION krb5_error_code KRB5_LIB_CALL </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"> </td></tr> 53<tr class="memitem:ga84277205c4b221cc28f1fd36be19dba8"><td class="memItemLeft" align="right" valign="top">KRB5_LIB_FUNCTION krb5_error_code KRB5_LIB_CALL </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"> </td></tr> 55<tr class="memitem:gaee87399e25e34ac1e0e4a1841951e2fa"><td class="memItemLeft" align="right" valign="top">KRB5_LIB_FUNCTION const krb5_config_binding *KRB5_LIB_CALL </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"> </td></tr> 57<tr class="memitem:gafbc6548d480aaf5118025b742f4f468d"><td class="memItemLeft" align="right" valign="top">KRB5_LIB_FUNCTION const krb5_config_binding *KRB5_LIB_CALL </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"> </td></tr> 59<tr class="memitem:gac0845cba8c8f7fd2e447de60d81556ac"><td class="memItemLeft" align="right" valign="top">KRB5_LIB_FUNCTION const char *KRB5_LIB_CALL </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"> </td></tr> 61<tr class="memitem:gaec7eaee2b6f04f1ed4a64b37efa767e4"><td class="memItemLeft" align="right" valign="top">KRB5_LIB_FUNCTION const char *KRB5_LIB_CALL </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"> </td></tr> 63<tr class="memitem:ga124f18195eb05c3662ce2bcf06c7451b"><td class="memItemLeft" align="right" valign="top">KRB5_LIB_FUNCTION const char *KRB5_LIB_CALL </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"> </td></tr> 65<tr class="memitem:gaaef298c290e0c315d7f4bf07ba272b60"><td class="memItemLeft" align="right" valign="top">KRB5_LIB_FUNCTION const char *KRB5_LIB_CALL </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"> </td></tr> 67<tr class="memitem:ga614850564b4d21b92e113fde9420bf3c"><td class="memItemLeft" align="right" valign="top">KRB5_LIB_FUNCTION char **KRB5_LIB_CALL </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"> </td></tr> 69<tr class="memitem:ga8f43dbe4a34a820a70d081e5d3190e01"><td class="memItemLeft" align="right" valign="top">KRB5_LIB_FUNCTION char **KRB5_LIB_CALL </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"> </td></tr> 71<tr class="memitem:ga3440f86b07fa86aae0f0889445a0def2"><td class="memItemLeft" align="right" valign="top">KRB5_LIB_FUNCTION void KRB5_LIB_CALL </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"> </td></tr> 73<tr class="memitem:ga8a29a130369232a638629cb37bfbeb66"><td class="memItemLeft" align="right" valign="top">KRB5_LIB_FUNCTION krb5_boolean KRB5_LIB_CALL </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"> </td></tr> 75<tr class="memitem:ga16e5b2da5e3751d7b3d4fe8d43f0a677"><td class="memItemLeft" align="right" valign="top">KRB5_LIB_FUNCTION krb5_boolean KRB5_LIB_CALL </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"> </td></tr> 77<tr class="memitem:gaca6abdb90a74af3747f87bfb5e9c85ab"><td class="memItemLeft" align="right" valign="top">KRB5_LIB_FUNCTION krb5_boolean KRB5_LIB_CALL </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"> </td></tr> 79<tr class="memitem:ga39402ca8c1b1eb2af4b514eed826f971"><td class="memItemLeft" align="right" valign="top">KRB5_LIB_FUNCTION krb5_boolean KRB5_LIB_CALL </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"> </td></tr> 81<tr class="memitem:ga11d7ea1fa9a910acb568c42d8dd28350"><td class="memItemLeft" align="right" valign="top">KRB5_LIB_FUNCTION int KRB5_LIB_CALL </td><td class="memItemRight" valign="bottom"><a class="el" href="group__krb5__support.html#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"> </td></tr> 83<tr class="memitem:ga88331c69f41e1e65abc49a9b66efc7d5"><td class="memItemLeft" align="right" valign="top">KRB5_LIB_FUNCTION int KRB5_LIB_CALL </td><td class="memItemRight" valign="bottom"><a class="el" href="group__krb5__support.html#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"> </td></tr> 85<tr class="memitem:ga019554d71140a32f64b6e4a2244d1168"><td class="memItemLeft" align="right" valign="top">KRB5_LIB_FUNCTION int KRB5_LIB_CALL </td><td class="memItemRight" valign="bottom"><a class="el" href="group__krb5__support.html#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"> </td></tr> 87<tr class="memitem:gaf797bad7e8499b7be6099ccff7f56226"><td class="memItemLeft" align="right" valign="top">KRB5_LIB_FUNCTION int KRB5_LIB_CALL </td><td class="memItemRight" valign="bottom"><a class="el" href="group__krb5__support.html#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"> </td></tr> 89<tr class="memitem:ga947f1780e8b73fe0edb4f64da2f0b2f3"><td class="memItemLeft" align="right" valign="top">KRB5_LIB_FUNCTION krb5_error_code KRB5_LIB_CALL </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"> </td></tr> 91<tr class="memitem:ga933f524c34ae6a80ba8aa6c0700992ef"><td class="memItemLeft" align="right" valign="top">KRB5_LIB_FUNCTION krb5_error_code KRB5_LIB_CALL </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"> </td></tr> 93<tr class="memitem:gaca0ab80d3affb5986aa5061f3782401b"><td class="memItemLeft" align="right" valign="top">KRB5_LIB_FUNCTION krb5_error_code KRB5_LIB_CALL </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"> </td></tr> 95<tr class="memitem:ga6368eceea4261ef2ccb8dc39ecc87772"><td class="memItemLeft" align="right" valign="top">KRB5_LIB_FUNCTION krb5_boolean KRB5_LIB_CALL </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"> </td></tr> 97<tr class="memitem:gab6e4d59cca3b2e65abbd83204ad0e789"><td class="memItemLeft" align="right" valign="top">KRB5_LIB_FUNCTION krb5_error_code KRB5_LIB_CALL </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"> </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">◆ </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 </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 * </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 * </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"> </td> 130 <td class="paramname"><em>...</em> </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">◆ </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 </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 * </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 * </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"> </td> 182 <td class="paramname"><em>...</em> </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">"foo"</span>, <span class="stringliteral">"s"</span>, <span class="stringliteral">"foo"</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">"acl didn't match"</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">"foo foo baz/kaka"</span>,</div> 214<div class="line"> <span class="stringliteral">"ss"</span>, <span class="stringliteral">"foo"</span>, &s, <span class="stringliteral">"foo/\\*"</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">"acl didn't match"</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">◆ </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 </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 </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 </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 * </td> 255 <td class="paramname"><em>lname</em> </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">◆ </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 </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 * </td> 295 <td class="paramname"><em>s</em> </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">◆ </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 ** </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">◆ </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 </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 * </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"> </td> 363 <td class="paramname"><em>...</em> </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">◆ </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 </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 * </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 </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"> </td> 414 <td class="paramname"><em>...</em> </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">◆ </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 </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 * </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"> </td> 459 <td class="paramname"><em>...</em> </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">◆ </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 </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 * </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"> </td> 503 <td class="paramname"><em>...</em> </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">◆ </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 </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 * </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 * </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"> </td> 553 <td class="paramname"><em>...</em> </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">◆ </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 </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 * </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"> </td> 598 <td class="paramname"><em>...</em> </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">◆ </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 </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 * </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"> </td> 642 <td class="paramname"><em>...</em> </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">◆ </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 </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 * </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 </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"> </td> 692 <td class="paramname"><em>...</em> </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">◆ </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 </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 * </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 ** </td> 737 <td class="paramname"><em>res</em> </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">◆ </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 </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 * </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 </td> 782 <td class="paramname"><em>args</em> </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">◆ </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 </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 * </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 </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 </td> 832 <td class="paramname"><em>args</em> </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">◆ </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 </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 * </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 </td> 878 <td class="paramname"><em>args</em> </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">◆ </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 </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 * </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 </td> 922 <td class="paramname"><em>args</em> </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">◆ </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 </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 * </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 * </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 </td> 972 <td class="paramname"><em>args</em> </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">◆ </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 </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 * </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 </td> 1017 <td class="paramname"><em>args</em> </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">◆ </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 </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 * </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 </td> 1061 <td class="paramname"><em>args</em> </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">◆ </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 </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 * </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 </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 </td> 1111 <td class="paramname"><em>args</em> </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">◆ </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 </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 * </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 ** </td> 1157 <td class="paramname"><em>new_hostname</em> </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">◆ </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 </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 * </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 ** </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 *** </td> 1207 <td class="paramname"><em>realms</em> </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">◆ </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 </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 * </td> 1246 <td class="paramname"><em>realmlist</em> </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 ‘realmlist’</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">◆ </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 </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 </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 * </td> 1289 <td class="paramname"><em>luser</em> </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">◆ </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 </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 </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 * </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 * </td> 1344 <td class="paramname"><em>symbol</em> </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 <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