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