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 library</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 library</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.html#gc03fc138d472dd7743a0ab7ecb3061c1">krb5_add_et_list</a> (krb5_context context, void(*func)(struct et_list **))</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.html#g02611e3966053f79eda248d76dccc282">krb5_set_password</a> (krb5_context context, krb5_creds *creds, const char *newpw, krb5_principal targprinc, int *result_code, krb5_data *result_code_string, krb5_data *result_string)</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.html#gbd94206e186c58a093975424a4a567a8">krb5_init_context</a> (krb5_context *context)</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.html#gd30312a0ba95a71478de1b5fba34db3f">krb5_copy_context</a> (krb5_context context, krb5_context *out)</td></tr> 37 38<tr><td class="memItemLeft" nowrap align="right" valign="top">KRB5_LIB_FUNCTION void <br> 39KRB5_LIB_CALL </td><td class="memItemRight" valign="bottom"><a class="el" href="group__krb5.html#ge51d83f5d5f589883f1cd10887892777">krb5_free_context</a> (krb5_context context)</td></tr> 40 41<tr><td class="memItemLeft" nowrap align="right" valign="top">KRB5_LIB_FUNCTION <br> 42krb5_error_code KRB5_LIB_CALL </td><td class="memItemRight" valign="bottom"><a class="el" href="group__krb5.html#gd4453861fbfc0372e3c44b59325f62aa">krb5_set_config_files</a> (krb5_context context, char **filenames)</td></tr> 43 44<tr><td class="memItemLeft" nowrap align="right" valign="top">KRB5_LIB_FUNCTION <br> 45krb5_error_code KRB5_LIB_CALL </td><td class="memItemRight" valign="bottom"><a class="el" href="group__krb5.html#gad9a3fd7b838f053a71424d95bf73d40">krb5_prepend_config_files_default</a> (const char *filelist, char ***pfilenames)</td></tr> 46 47<tr><td class="memItemLeft" nowrap align="right" valign="top">KRB5_LIB_FUNCTION <br> 48krb5_error_code KRB5_LIB_CALL </td><td class="memItemRight" valign="bottom"><a class="el" href="group__krb5.html#g4276c71bee1ba0c9f2bbd659cd351cb3">krb5_get_default_config_files</a> (char ***pfilenames)</td></tr> 49 50<tr><td class="memItemLeft" nowrap align="right" valign="top">KRB5_LIB_FUNCTION void <br> 51KRB5_LIB_CALL </td><td class="memItemRight" valign="bottom"><a class="el" href="group__krb5.html#gce1b568d05875e7c4fbc6e5af5a8bdbf">krb5_free_config_files</a> (char **filenames)</td></tr> 52 53<tr><td class="memItemLeft" nowrap align="right" valign="top">KRB5_LIB_FUNCTION const <br> 54krb5_enctype *KRB5_LIB_CALL </td><td class="memItemRight" valign="bottom"><a class="el" href="group__krb5.html#g92110f6472a4fb0a5e0a35da81af4fa2">krb5_kerberos_enctypes</a> (krb5_context context)</td></tr> 55 56<tr><td class="memItemLeft" nowrap align="right" valign="top">KRB5_LIB_FUNCTION <br> 57krb5_error_code KRB5_LIB_CALL </td><td class="memItemRight" valign="bottom"><a class="el" href="group__krb5.html#g5e028d8b3b0444c98b251f46eb48235a">krb5_set_default_in_tkt_etypes</a> (krb5_context context, const krb5_enctype *etypes)</td></tr> 58 59<tr><td class="memItemLeft" nowrap align="right" valign="top">KRB5_LIB_FUNCTION <br> 60krb5_error_code KRB5_LIB_CALL </td><td class="memItemRight" valign="bottom"><a class="el" href="group__krb5.html#ga2bba3d683f1280ddfe8430d834bd5e8">krb5_get_default_in_tkt_etypes</a> (krb5_context context, krb5_pdu pdu_type, krb5_enctype **etypes)</td></tr> 61 62<tr><td class="memItemLeft" nowrap align="right" valign="top">KRB5_LIB_FUNCTION void <br> 63KRB5_LIB_CALL </td><td class="memItemRight" valign="bottom"><a class="el" href="group__krb5.html#g0f4f2bf6056a5fd472d9dd3d393f133e">krb5_init_ets</a> (krb5_context context)</td></tr> 64 65<tr><td class="memItemLeft" nowrap align="right" valign="top">KRB5_LIB_FUNCTION void <br> 66KRB5_LIB_CALL </td><td class="memItemRight" valign="bottom"><a class="el" href="group__krb5.html#g3e1564b6d147482eba7bfb5e40a4ff6f">krb5_set_use_admin_kdc</a> (krb5_context context, krb5_boolean flag)</td></tr> 67 68<tr><td class="memItemLeft" nowrap align="right" valign="top">KRB5_LIB_FUNCTION krb5_boolean <br> 69KRB5_LIB_CALL </td><td class="memItemRight" valign="bottom"><a class="el" href="group__krb5.html#gc68122daa411ea028bd521e6e9d2ca6b">krb5_get_use_admin_kdc</a> (krb5_context context)</td></tr> 70 71<tr><td class="memItemLeft" nowrap align="right" valign="top">KRB5_LIB_FUNCTION <br> 72krb5_error_code KRB5_LIB_CALL </td><td class="memItemRight" valign="bottom"><a class="el" href="group__krb5.html#ga3776874e66baaaad19316d65aeeb4b5">krb5_add_extra_addresses</a> (krb5_context context, krb5_addresses *addresses)</td></tr> 73 74<tr><td class="memItemLeft" nowrap align="right" valign="top">KRB5_LIB_FUNCTION <br> 75krb5_error_code KRB5_LIB_CALL </td><td class="memItemRight" valign="bottom"><a class="el" href="group__krb5.html#g3c326674110a2d1c7d3523a0c308dddd">krb5_set_extra_addresses</a> (krb5_context context, const krb5_addresses *addresses)</td></tr> 76 77<tr><td class="memItemLeft" nowrap align="right" valign="top">KRB5_LIB_FUNCTION <br> 78krb5_error_code KRB5_LIB_CALL </td><td class="memItemRight" valign="bottom"><a class="el" href="group__krb5.html#g0c24a484850684f9252c0f494da2e4c5">krb5_get_extra_addresses</a> (krb5_context context, krb5_addresses *addresses)</td></tr> 79 80<tr><td class="memItemLeft" nowrap align="right" valign="top">KRB5_LIB_FUNCTION <br> 81krb5_error_code KRB5_LIB_CALL </td><td class="memItemRight" valign="bottom"><a class="el" href="group__krb5.html#g666a78a6b321bdc7d174343329d0eae9">krb5_add_ignore_addresses</a> (krb5_context context, krb5_addresses *addresses)</td></tr> 82 83<tr><td class="memItemLeft" nowrap align="right" valign="top">KRB5_LIB_FUNCTION <br> 84krb5_error_code KRB5_LIB_CALL </td><td class="memItemRight" valign="bottom"><a class="el" href="group__krb5.html#g4d9823757dea2b9884c136fb959383bc">krb5_set_ignore_addresses</a> (krb5_context context, const krb5_addresses *addresses)</td></tr> 85 86<tr><td class="memItemLeft" nowrap align="right" valign="top">KRB5_LIB_FUNCTION <br> 87krb5_error_code KRB5_LIB_CALL </td><td class="memItemRight" valign="bottom"><a class="el" href="group__krb5.html#g6f089725948937875bc2594d9b8cbaf7">krb5_get_ignore_addresses</a> (krb5_context context, krb5_addresses *addresses)</td></tr> 88 89<tr><td class="memItemLeft" nowrap align="right" valign="top">KRB5_LIB_FUNCTION <br> 90krb5_error_code KRB5_LIB_CALL </td><td class="memItemRight" valign="bottom"><a class="el" href="group__krb5.html#g2f77d43f11ad41cd9b5676cc73f052bc">krb5_set_fcache_version</a> (krb5_context context, int version)</td></tr> 91 92<tr><td class="memItemLeft" nowrap align="right" valign="top">KRB5_LIB_FUNCTION <br> 93krb5_error_code KRB5_LIB_CALL </td><td class="memItemRight" valign="bottom"><a class="el" href="group__krb5.html#g913ff7c6bd16cd3d3cb07529345b65ba">krb5_get_fcache_version</a> (krb5_context context, int *version)</td></tr> 94 95<tr><td class="memItemLeft" nowrap align="right" valign="top">KRB5_LIB_FUNCTION krb5_boolean <br> 96KRB5_LIB_CALL </td><td class="memItemRight" valign="bottom"><a class="el" href="group__krb5.html#gc5664b887b62be61c00c70fa9e290611">krb5_is_thread_safe</a> (void)</td></tr> 97 98<tr><td class="memItemLeft" nowrap align="right" valign="top">KRB5_LIB_FUNCTION void <br> 99KRB5_LIB_CALL </td><td class="memItemRight" valign="bottom"><a class="el" href="group__krb5.html#g798fb21edcec6c7b251709f1e447b21b">krb5_set_dns_canonicalize_hostname</a> (krb5_context context, krb5_boolean flag)</td></tr> 100 101<tr><td class="memItemLeft" nowrap align="right" valign="top">KRB5_LIB_FUNCTION krb5_boolean <br> 102KRB5_LIB_CALL </td><td class="memItemRight" valign="bottom"><a class="el" href="group__krb5.html#gef9f47692fc31c50afc14b581b7aa2fa">krb5_get_dns_canonicalize_hostname</a> (krb5_context context)</td></tr> 103 104<tr><td class="memItemLeft" nowrap align="right" valign="top">KRB5_LIB_FUNCTION <br> 105krb5_error_code KRB5_LIB_CALL </td><td class="memItemRight" valign="bottom"><a class="el" href="group__krb5.html#gfacf61debb011b06e22e78251104efa0">krb5_get_kdc_sec_offset</a> (krb5_context context, int32_t *sec, int32_t *usec)</td></tr> 106 107<tr><td class="memItemLeft" nowrap align="right" valign="top">KRB5_LIB_FUNCTION <br> 108krb5_error_code KRB5_LIB_CALL </td><td class="memItemRight" valign="bottom"><a class="el" href="group__krb5.html#gfd16890e03f6dff6f6d013d97e0ee185">krb5_set_kdc_sec_offset</a> (krb5_context context, int32_t sec, int32_t usec)</td></tr> 109 110<tr><td class="memItemLeft" nowrap align="right" valign="top">KRB5_LIB_FUNCTION time_t <br> 111KRB5_LIB_CALL </td><td class="memItemRight" valign="bottom"><a class="el" href="group__krb5.html#gbefb8ef32ceedc5ffe6c9440c093a533">krb5_get_max_time_skew</a> (krb5_context context)</td></tr> 112 113<tr><td class="memItemLeft" nowrap align="right" valign="top">KRB5_LIB_FUNCTION void <br> 114KRB5_LIB_CALL </td><td class="memItemRight" valign="bottom"><a class="el" href="group__krb5.html#g2257aeff745924c48f12d1893d7523ba">krb5_set_max_time_skew</a> (krb5_context context, time_t t)</td></tr> 115 116<tr><td class="memItemLeft" nowrap align="right" valign="top">KRB5_LIB_FUNCTION krb5_boolean <br> 117KRB5_LIB_CALL </td><td class="memItemRight" valign="bottom"><a class="el" href="group__krb5.html#g3a8e40d622ff1460b2f554d83a9059ea">krb5_set_home_dir_access</a> (krb5_context context, krb5_boolean allow)</td></tr> 118 119<tr><td class="memItemLeft" nowrap align="right" valign="top">KRB5_LIB_FUNCTION <br> 120krb5_error_code KRB5_LIB_CALL </td><td class="memItemRight" valign="bottom"><a class="el" href="group__krb5.html#ge730027c647c418850393bce518f9d66">krb5_copy_host_realm</a> (krb5_context context, const krb5_realm *from, krb5_realm **to)</td></tr> 121 122<tr><td class="memItemLeft" nowrap align="right" valign="top">KRB5_LIB_FUNCTION <br> 123krb5_error_code KRB5_LIB_CALL </td><td class="memItemRight" valign="bottom"><a class="el" href="group__krb5.html#gd89c4c7b633646c39e4a34a7230c94e1">krb5_free_cred_contents</a> (krb5_context context, krb5_creds *c)</td></tr> 124 125<tr><td class="memItemLeft" nowrap align="right" valign="top">KRB5_LIB_FUNCTION <br> 126krb5_error_code KRB5_LIB_CALL </td><td class="memItemRight" valign="bottom"><a class="el" href="group__krb5.html#gc4fbae1d00b395ec9d69edabd93f432c">krb5_copy_creds_contents</a> (krb5_context context, const krb5_creds *incred, krb5_creds *c)</td></tr> 127 128<tr><td class="memItemLeft" nowrap align="right" valign="top">KRB5_LIB_FUNCTION <br> 129krb5_error_code KRB5_LIB_CALL </td><td class="memItemRight" valign="bottom"><a class="el" href="group__krb5.html#gcb70cd95ac6806c3265ee6cec400b60d">krb5_copy_creds</a> (krb5_context context, const krb5_creds *incred, krb5_creds **outcred)</td></tr> 130 131<tr><td class="memItemLeft" nowrap align="right" valign="top">KRB5_LIB_FUNCTION <br> 132krb5_error_code KRB5_LIB_CALL </td><td class="memItemRight" valign="bottom"><a class="el" href="group__krb5.html#g5224797a3ca4c450466ef5102164ee85">krb5_free_creds</a> (krb5_context context, krb5_creds *c)</td></tr> 133 134<tr><td class="memItemLeft" nowrap align="right" valign="top">KRB5_LIB_FUNCTION krb5_boolean <br> 135KRB5_LIB_CALL </td><td class="memItemRight" valign="bottom"><a class="el" href="group__krb5.html#g45afc77b07b201272eeeaad9890b63cf">krb5_compare_creds</a> (krb5_context context, krb5_flags whichfields, const krb5_creds *mcreds, const krb5_creds *creds)</td></tr> 136 137<tr><td class="memItemLeft" nowrap align="right" valign="top">KRB5_LIB_FUNCTION unsigned <br> 138long KRB5_LIB_CALL </td><td class="memItemRight" valign="bottom"><a class="el" href="group__krb5.html#g3e6ea2e16872304ac5cc3bed2a0abb88">krb5_creds_get_ticket_flags</a> (krb5_creds *creds)</td></tr> 139 140<tr><td class="memItemLeft" nowrap align="right" valign="top">KRB5_LIB_FUNCTION void <br> 141KRB5_LIB_CALL </td><td class="memItemRight" valign="bottom"><a class="el" href="group__krb5.html#ga059e96dde4e0b8c082eb6f3d570b7bc">krb5_data_zero</a> (krb5_data *p)</td></tr> 142 143<tr><td class="memItemLeft" nowrap align="right" valign="top">KRB5_LIB_FUNCTION void <br> 144KRB5_LIB_CALL </td><td class="memItemRight" valign="bottom"><a class="el" href="group__krb5.html#gb4b80ac7a8bbab89fe947ae1c7828ea8">krb5_data_free</a> (krb5_data *p)</td></tr> 145 146<tr><td class="memItemLeft" nowrap align="right" valign="top">KRB5_LIB_FUNCTION void <br> 147KRB5_LIB_CALL </td><td class="memItemRight" valign="bottom"><a class="el" href="group__krb5.html#g9494f7751d3751c45a5ed4a89a5323b4">krb5_free_data</a> (krb5_context context, krb5_data *p)</td></tr> 148 149<tr><td class="memItemLeft" nowrap align="right" valign="top">KRB5_LIB_FUNCTION <br> 150krb5_error_code KRB5_LIB_CALL </td><td class="memItemRight" valign="bottom"><a class="el" href="group__krb5.html#gf5b03734f6027c752381986ac0975ea9">krb5_data_alloc</a> (krb5_data *p, int len)</td></tr> 151 152<tr><td class="memItemLeft" nowrap align="right" valign="top">KRB5_LIB_FUNCTION <br> 153krb5_error_code KRB5_LIB_CALL </td><td class="memItemRight" valign="bottom"><a class="el" href="group__krb5.html#g0602c7a4b056d9004db090df9886811c">krb5_data_realloc</a> (krb5_data *p, int len)</td></tr> 154 155<tr><td class="memItemLeft" nowrap align="right" valign="top">KRB5_LIB_FUNCTION <br> 156krb5_error_code KRB5_LIB_CALL </td><td class="memItemRight" valign="bottom"><a class="el" href="group__krb5.html#gfb664221cde2d10fb5d1b3dfb5c55e04">krb5_data_copy</a> (krb5_data *p, const void *data, size_t len)</td></tr> 157 158<tr><td class="memItemLeft" nowrap align="right" valign="top">KRB5_LIB_FUNCTION <br> 159krb5_error_code KRB5_LIB_CALL </td><td class="memItemRight" valign="bottom"><a class="el" href="group__krb5.html#g963388a0eea15e4e43dbe9c983e3e212">krb5_copy_data</a> (krb5_context context, const krb5_data *indata, krb5_data **outdata)</td></tr> 160 161<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.html#gfad0906fca85d7dea0f6b762822d0ff4">krb5_data_cmp</a> (const krb5_data *data1, const krb5_data *data2)</td></tr> 162 163<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.html#gcbeb984ec39d6f8ccb582816c14318ab">krb5_data_ct_cmp</a> (const krb5_data *data1, const krb5_data *data2)</td></tr> 164 165<tr><td class="memItemLeft" nowrap align="right" valign="top">KRB5_LIB_FUNCTION <br> 166krb5_error_code KRB5_LIB_CALL </td><td class="memItemRight" valign="bottom"><a class="el" href="group__krb5.html#g8dcc8bb7370f2bd91bea895df7e1b1a2">krb5_krbhst_get_addrinfo</a> (krb5_context context, krb5_krbhst_info *host, struct addrinfo **ai)</td></tr> 167 168<tr><td class="memItemLeft" nowrap align="right" valign="top">KRB5_LIB_FUNCTION <br> 169krb5_error_code KRB5_LIB_CALL </td><td class="memItemRight" valign="bottom"><a class="el" href="group__krb5.html#g3d994aef26269ee2b15e4d34acb28fed">krb5_free_ticket</a> (krb5_context context, krb5_ticket *ticket)</td></tr> 170 171<tr><td class="memItemLeft" nowrap align="right" valign="top">KRB5_LIB_FUNCTION <br> 172krb5_error_code KRB5_LIB_CALL </td><td class="memItemRight" valign="bottom"><a class="el" href="group__krb5.html#gc2c0c5fe2dc17714287a20785623be45">krb5_copy_ticket</a> (krb5_context context, const krb5_ticket *from, krb5_ticket **to)</td></tr> 173 174<tr><td class="memItemLeft" nowrap align="right" valign="top">KRB5_LIB_FUNCTION <br> 175krb5_error_code KRB5_LIB_CALL </td><td class="memItemRight" valign="bottom"><a class="el" href="group__krb5.html#g6cf23f11044d79441ea1456a01ebe7d7">krb5_ticket_get_client</a> (krb5_context context, const krb5_ticket *ticket, krb5_principal *client)</td></tr> 176 177<tr><td class="memItemLeft" nowrap align="right" valign="top">KRB5_LIB_FUNCTION <br> 178krb5_error_code KRB5_LIB_CALL </td><td class="memItemRight" valign="bottom"><a class="el" href="group__krb5.html#gd1f40ffc29f379b7dec60144eefdb553">krb5_ticket_get_server</a> (krb5_context context, const krb5_ticket *ticket, krb5_principal *server)</td></tr> 179 180<tr><td class="memItemLeft" nowrap align="right" valign="top">KRB5_LIB_FUNCTION time_t <br> 181KRB5_LIB_CALL </td><td class="memItemRight" valign="bottom"><a class="el" href="group__krb5.html#g118b98784ccadd98cdaaa1ee5076c9fb">krb5_ticket_get_endtime</a> (krb5_context context, const krb5_ticket *ticket)</td></tr> 182 183<tr><td class="memItemLeft" nowrap align="right" valign="top">KRB5_LIB_FUNCTION <br> 184krb5_error_code KRB5_LIB_CALL </td><td class="memItemRight" valign="bottom"><a class="el" href="group__krb5.html#ga7387c09a85bf3aabe5bae8a2ec4af73">krb5_ticket_get_authorization_data_type</a> (krb5_context context, krb5_ticket *ticket, int type, krb5_data *data)</td></tr> 185 186<tr><td class="memItemLeft" nowrap align="right" valign="top">KRB5_LIB_FUNCTION <br> 187krb5_error_code KRB5_LIB_CALL </td><td class="memItemRight" valign="bottom"><a class="el" href="group__krb5.html#g1bb5d4ab0e2ebd85414903617b1ac36b">krb5_set_real_time</a> (krb5_context context, krb5_timestamp sec, int32_t usec)</td></tr> 188 189</table> 190<hr><a name="_details"></a><h2>Detailed Description</h2> 191<hr><h2>Function Documentation</h2> 192<a class="anchor" name="gc03fc138d472dd7743a0ab7ecb3061c1"></a><!-- doxytag: member="add_et_list.c::krb5_add_et_list" ref="gc03fc138d472dd7743a0ab7ecb3061c1" args="(krb5_context context, void(*func)(struct et_list **))" --> 193<div class="memitem"> 194<div class="memproto"> 195 <table class="memname"> 196 <tr> 197 <td class="memname">KRB5_LIB_FUNCTION krb5_error_code KRB5_LIB_CALL krb5_add_et_list </td> 198 <td>(</td> 199 <td class="paramtype">krb5_context </td> 200 <td class="paramname"> <em>context</em>, </td> 201 </tr> 202 <tr> 203 <td class="paramkey"></td> 204 <td></td> 205 <td class="paramtype">void(*)(struct et_list **) </td> 206 <td class="paramname"> <em>func</em></td><td> </td> 207 </tr> 208 <tr> 209 <td></td> 210 <td>)</td> 211 <td></td><td></td><td></td> 212 </tr> 213 </table> 214</div> 215<div class="memdoc"> 216 217<p> 218Add a specified list of error messages to the et list in context. Call func (probably a comerr-generated function) with a pointer to the current et_list.<p> 219<dl compact><dt><b>Parameters:</b></dt><dd> 220 <table border="0" cellspacing="2" cellpadding="0"> 221 <tr><td valign="top"></td><td valign="top"><em>context</em> </td><td>A kerberos context. </td></tr> 222 <tr><td valign="top"></td><td valign="top"><em>func</em> </td><td>The generated com_err et function.</td></tr> 223 </table> 224</dl> 225<dl class="return" compact><dt><b>Returns:</b></dt><dd>Returns 0 to indicate success. Otherwise an kerberos et error code is returned, see krb5_get_error_message(). </dd></dl> 226 227</div> 228</div><p> 229<a class="anchor" name="ga3776874e66baaaad19316d65aeeb4b5"></a><!-- doxytag: member="context.c::krb5_add_extra_addresses" ref="ga3776874e66baaaad19316d65aeeb4b5" args="(krb5_context context, krb5_addresses *addresses)" --> 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_add_extra_addresses </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_addresses * </td> 243 <td class="paramname"> <em>addresses</em></td><td> </td> 244 </tr> 245 <tr> 246 <td></td> 247 <td>)</td> 248 <td></td><td></td><td></td> 249 </tr> 250 </table> 251</div> 252<div class="memdoc"> 253 254<p> 255Add extra address to the address list that the library will add to the client's address list when communicating with the KDC.<p> 256<dl compact><dt><b>Parameters:</b></dt><dd> 257 <table border="0" cellspacing="2" cellpadding="0"> 258 <tr><td valign="top"></td><td valign="top"><em>context</em> </td><td>Kerberos 5 context. </td></tr> 259 <tr><td valign="top"></td><td valign="top"><em>addresses</em> </td><td>addreses to add</td></tr> 260 </table> 261</dl> 262<dl class="return" compact><dt><b>Returns:</b></dt><dd>Returns 0 to indicate success. Otherwise an kerberos et error code is returned, see krb5_get_error_message(). </dd></dl> 263 264</div> 265</div><p> 266<a class="anchor" name="g666a78a6b321bdc7d174343329d0eae9"></a><!-- doxytag: member="context.c::krb5_add_ignore_addresses" ref="g666a78a6b321bdc7d174343329d0eae9" args="(krb5_context context, krb5_addresses *addresses)" --> 267<div class="memitem"> 268<div class="memproto"> 269 <table class="memname"> 270 <tr> 271 <td class="memname">KRB5_LIB_FUNCTION krb5_error_code KRB5_LIB_CALL krb5_add_ignore_addresses </td> 272 <td>(</td> 273 <td class="paramtype">krb5_context </td> 274 <td class="paramname"> <em>context</em>, </td> 275 </tr> 276 <tr> 277 <td class="paramkey"></td> 278 <td></td> 279 <td class="paramtype">krb5_addresses * </td> 280 <td class="paramname"> <em>addresses</em></td><td> </td> 281 </tr> 282 <tr> 283 <td></td> 284 <td>)</td> 285 <td></td><td></td><td></td> 286 </tr> 287 </table> 288</div> 289<div class="memdoc"> 290 291<p> 292Add extra addresses to ignore when fetching addresses from the underlaying operating system.<p> 293<dl compact><dt><b>Parameters:</b></dt><dd> 294 <table border="0" cellspacing="2" cellpadding="0"> 295 <tr><td valign="top"></td><td valign="top"><em>context</em> </td><td>Kerberos 5 context. </td></tr> 296 <tr><td valign="top"></td><td valign="top"><em>addresses</em> </td><td>addreses to ignore</td></tr> 297 </table> 298</dl> 299<dl class="return" compact><dt><b>Returns:</b></dt><dd>Returns 0 to indicate success. Otherwise an kerberos et error code is returned, see krb5_get_error_message(). </dd></dl> 300 301</div> 302</div><p> 303<a class="anchor" name="g45afc77b07b201272eeeaad9890b63cf"></a><!-- doxytag: member="creds.c::krb5_compare_creds" ref="g45afc77b07b201272eeeaad9890b63cf" args="(krb5_context context, krb5_flags whichfields, const krb5_creds *mcreds, const krb5_creds *creds)" --> 304<div class="memitem"> 305<div class="memproto"> 306 <table class="memname"> 307 <tr> 308 <td class="memname">KRB5_LIB_FUNCTION krb5_boolean KRB5_LIB_CALL krb5_compare_creds </td> 309 <td>(</td> 310 <td class="paramtype">krb5_context </td> 311 <td class="paramname"> <em>context</em>, </td> 312 </tr> 313 <tr> 314 <td class="paramkey"></td> 315 <td></td> 316 <td class="paramtype">krb5_flags </td> 317 <td class="paramname"> <em>whichfields</em>, </td> 318 </tr> 319 <tr> 320 <td class="paramkey"></td> 321 <td></td> 322 <td class="paramtype">const krb5_creds * </td> 323 <td class="paramname"> <em>mcreds</em>, </td> 324 </tr> 325 <tr> 326 <td class="paramkey"></td> 327 <td></td> 328 <td class="paramtype">const krb5_creds * </td> 329 <td class="paramname"> <em>creds</em></td><td> </td> 330 </tr> 331 <tr> 332 <td></td> 333 <td>)</td> 334 <td></td><td></td><td></td> 335 </tr> 336 </table> 337</div> 338<div class="memdoc"> 339 340<p> 341Return TRUE if `mcreds' and `creds' are equal (`whichfields' determines what equal means).<p> 342The following flags, set in whichfields affects the comparison:<ul> 343<li>KRB5_TC_MATCH_SRV_NAMEONLY Consider all realms equal when comparing the service principal.</li><li>KRB5_TC_MATCH_KEYTYPE Compare enctypes.</li><li>KRB5_TC_MATCH_FLAGS_EXACT Make sure that the ticket flags are identical.</li><li>KRB5_TC_MATCH_FLAGS Make sure that all ticket flags set in mcreds are also present in creds .</li><li>KRB5_TC_MATCH_TIMES_EXACT Compares the ticket times exactly.</li><li>KRB5_TC_MATCH_TIMES Compares only the expiration times of the creds.</li><li>KRB5_TC_MATCH_AUTHDATA Compares the authdata fields.</li><li>KRB5_TC_MATCH_2ND_TKT Compares the second tickets (used by user-to-user authentication).</li><li>KRB5_TC_MATCH_IS_SKEY Compares the existance of the second ticket.</li></ul> 344<p> 345<dl compact><dt><b>Parameters:</b></dt><dd> 346 <table border="0" cellspacing="2" cellpadding="0"> 347 <tr><td valign="top"></td><td valign="top"><em>context</em> </td><td>Kerberos 5 context. </td></tr> 348 <tr><td valign="top"></td><td valign="top"><em>whichfields</em> </td><td>which fields to compare. </td></tr> 349 <tr><td valign="top"></td><td valign="top"><em>mcreds</em> </td><td>cred to compare with. </td></tr> 350 <tr><td valign="top"></td><td valign="top"><em>creds</em> </td><td>cred to compare with.</td></tr> 351 </table> 352</dl> 353<dl class="return" compact><dt><b>Returns:</b></dt><dd>return TRUE if mcred and creds are equal, FALSE if not. </dd></dl> 354 355</div> 356</div><p> 357<a class="anchor" name="gd30312a0ba95a71478de1b5fba34db3f"></a><!-- doxytag: member="context.c::krb5_copy_context" ref="gd30312a0ba95a71478de1b5fba34db3f" args="(krb5_context context, krb5_context *out)" --> 358<div class="memitem"> 359<div class="memproto"> 360 <table class="memname"> 361 <tr> 362 <td class="memname">KRB5_LIB_FUNCTION krb5_error_code KRB5_LIB_CALL krb5_copy_context </td> 363 <td>(</td> 364 <td class="paramtype">krb5_context </td> 365 <td class="paramname"> <em>context</em>, </td> 366 </tr> 367 <tr> 368 <td class="paramkey"></td> 369 <td></td> 370 <td class="paramtype">krb5_context * </td> 371 <td class="paramname"> <em>out</em></td><td> </td> 372 </tr> 373 <tr> 374 <td></td> 375 <td>)</td> 376 <td></td><td></td><td></td> 377 </tr> 378 </table> 379</div> 380<div class="memdoc"> 381 382<p> 383Make a copy for the Kerberos 5 context, the new krb5_context shoud be freed with <a class="el" href="group__krb5.html#ge51d83f5d5f589883f1cd10887892777">krb5_free_context()</a>.<p> 384<dl compact><dt><b>Parameters:</b></dt><dd> 385 <table border="0" cellspacing="2" cellpadding="0"> 386 <tr><td valign="top"></td><td valign="top"><em>context</em> </td><td>the Kerberos context to copy </td></tr> 387 <tr><td valign="top"></td><td valign="top"><em>out</em> </td><td>the copy of the Kerberos, set to NULL error.</td></tr> 388 </table> 389</dl> 390<dl class="return" compact><dt><b>Returns:</b></dt><dd>Returns 0 to indicate success. Otherwise an kerberos et error code is returned, see krb5_get_error_message(). </dd></dl> 391 392</div> 393</div><p> 394<a class="anchor" name="gcb70cd95ac6806c3265ee6cec400b60d"></a><!-- doxytag: member="creds.c::krb5_copy_creds" ref="gcb70cd95ac6806c3265ee6cec400b60d" args="(krb5_context context, const krb5_creds *incred, krb5_creds **outcred)" --> 395<div class="memitem"> 396<div class="memproto"> 397 <table class="memname"> 398 <tr> 399 <td class="memname">KRB5_LIB_FUNCTION krb5_error_code KRB5_LIB_CALL krb5_copy_creds </td> 400 <td>(</td> 401 <td class="paramtype">krb5_context </td> 402 <td class="paramname"> <em>context</em>, </td> 403 </tr> 404 <tr> 405 <td class="paramkey"></td> 406 <td></td> 407 <td class="paramtype">const krb5_creds * </td> 408 <td class="paramname"> <em>incred</em>, </td> 409 </tr> 410 <tr> 411 <td class="paramkey"></td> 412 <td></td> 413 <td class="paramtype">krb5_creds ** </td> 414 <td class="paramname"> <em>outcred</em></td><td> </td> 415 </tr> 416 <tr> 417 <td></td> 418 <td>)</td> 419 <td></td><td></td><td></td> 420 </tr> 421 </table> 422</div> 423<div class="memdoc"> 424 425<p> 426Copy krb5_creds.<p> 427<dl compact><dt><b>Parameters:</b></dt><dd> 428 <table border="0" cellspacing="2" cellpadding="0"> 429 <tr><td valign="top"></td><td valign="top"><em>context</em> </td><td>Kerberos 5 context. </td></tr> 430 <tr><td valign="top"></td><td valign="top"><em>incred</em> </td><td>source credential </td></tr> 431 <tr><td valign="top"></td><td valign="top"><em>outcred</em> </td><td>destination credential, free with <a class="el" href="group__krb5.html#g5224797a3ca4c450466ef5102164ee85">krb5_free_creds()</a>.</td></tr> 432 </table> 433</dl> 434<dl class="return" compact><dt><b>Returns:</b></dt><dd>Returns 0 to indicate success. Otherwise an kerberos et error code is returned, see krb5_get_error_message(). </dd></dl> 435 436</div> 437</div><p> 438<a class="anchor" name="gc4fbae1d00b395ec9d69edabd93f432c"></a><!-- doxytag: member="creds.c::krb5_copy_creds_contents" ref="gc4fbae1d00b395ec9d69edabd93f432c" args="(krb5_context context, const krb5_creds *incred, krb5_creds *c)" --> 439<div class="memitem"> 440<div class="memproto"> 441 <table class="memname"> 442 <tr> 443 <td class="memname">KRB5_LIB_FUNCTION krb5_error_code KRB5_LIB_CALL krb5_copy_creds_contents </td> 444 <td>(</td> 445 <td class="paramtype">krb5_context </td> 446 <td class="paramname"> <em>context</em>, </td> 447 </tr> 448 <tr> 449 <td class="paramkey"></td> 450 <td></td> 451 <td class="paramtype">const krb5_creds * </td> 452 <td class="paramname"> <em>incred</em>, </td> 453 </tr> 454 <tr> 455 <td class="paramkey"></td> 456 <td></td> 457 <td class="paramtype">krb5_creds * </td> 458 <td class="paramname"> <em>c</em></td><td> </td> 459 </tr> 460 <tr> 461 <td></td> 462 <td>)</td> 463 <td></td><td></td><td></td> 464 </tr> 465 </table> 466</div> 467<div class="memdoc"> 468 469<p> 470Copy content of krb5_creds.<p> 471<dl compact><dt><b>Parameters:</b></dt><dd> 472 <table border="0" cellspacing="2" cellpadding="0"> 473 <tr><td valign="top"></td><td valign="top"><em>context</em> </td><td>Kerberos 5 context. </td></tr> 474 <tr><td valign="top"></td><td valign="top"><em>incred</em> </td><td>source credential </td></tr> 475 <tr><td valign="top"></td><td valign="top"><em>c</em> </td><td>destination credential, free with <a class="el" href="group__krb5.html#gd89c4c7b633646c39e4a34a7230c94e1">krb5_free_cred_contents()</a>.</td></tr> 476 </table> 477</dl> 478<dl class="return" compact><dt><b>Returns:</b></dt><dd>Returns 0 to indicate success. Otherwise an kerberos et error code is returned, see krb5_get_error_message(). </dd></dl> 479 480</div> 481</div><p> 482<a class="anchor" name="g963388a0eea15e4e43dbe9c983e3e212"></a><!-- doxytag: member="data.c::krb5_copy_data" ref="g963388a0eea15e4e43dbe9c983e3e212" args="(krb5_context context, const krb5_data *indata, krb5_data **outdata)" --> 483<div class="memitem"> 484<div class="memproto"> 485 <table class="memname"> 486 <tr> 487 <td class="memname">KRB5_LIB_FUNCTION krb5_error_code KRB5_LIB_CALL krb5_copy_data </td> 488 <td>(</td> 489 <td class="paramtype">krb5_context </td> 490 <td class="paramname"> <em>context</em>, </td> 491 </tr> 492 <tr> 493 <td class="paramkey"></td> 494 <td></td> 495 <td class="paramtype">const krb5_data * </td> 496 <td class="paramname"> <em>indata</em>, </td> 497 </tr> 498 <tr> 499 <td class="paramkey"></td> 500 <td></td> 501 <td class="paramtype">krb5_data ** </td> 502 <td class="paramname"> <em>outdata</em></td><td> </td> 503 </tr> 504 <tr> 505 <td></td> 506 <td>)</td> 507 <td></td><td></td><td></td> 508 </tr> 509 </table> 510</div> 511<div class="memdoc"> 512 513<p> 514Copy the data into a newly allocated krb5_data.<p> 515<dl compact><dt><b>Parameters:</b></dt><dd> 516 <table border="0" cellspacing="2" cellpadding="0"> 517 <tr><td valign="top"></td><td valign="top"><em>context</em> </td><td>Kerberos 5 context. </td></tr> 518 <tr><td valign="top"></td><td valign="top"><em>indata</em> </td><td>the krb5_data data to copy </td></tr> 519 <tr><td valign="top"></td><td valign="top"><em>outdata</em> </td><td>new krb5_date to copy too. Free with <a class="el" href="group__krb5.html#g9494f7751d3751c45a5ed4a89a5323b4">krb5_free_data()</a>.</td></tr> 520 </table> 521</dl> 522<dl class="return" compact><dt><b>Returns:</b></dt><dd>Returns 0 to indicate success. Otherwise an kerberos et error code is returned. </dd></dl> 523 524</div> 525</div><p> 526<a class="anchor" name="ge730027c647c418850393bce518f9d66"></a><!-- doxytag: member="copy_host_realm.c::krb5_copy_host_realm" ref="ge730027c647c418850393bce518f9d66" args="(krb5_context context, const krb5_realm *from, krb5_realm **to)" --> 527<div class="memitem"> 528<div class="memproto"> 529 <table class="memname"> 530 <tr> 531 <td class="memname">KRB5_LIB_FUNCTION krb5_error_code KRB5_LIB_CALL krb5_copy_host_realm </td> 532 <td>(</td> 533 <td class="paramtype">krb5_context </td> 534 <td class="paramname"> <em>context</em>, </td> 535 </tr> 536 <tr> 537 <td class="paramkey"></td> 538 <td></td> 539 <td class="paramtype">const krb5_realm * </td> 540 <td class="paramname"> <em>from</em>, </td> 541 </tr> 542 <tr> 543 <td class="paramkey"></td> 544 <td></td> 545 <td class="paramtype">krb5_realm ** </td> 546 <td class="paramname"> <em>to</em></td><td> </td> 547 </tr> 548 <tr> 549 <td></td> 550 <td>)</td> 551 <td></td><td></td><td></td> 552 </tr> 553 </table> 554</div> 555<div class="memdoc"> 556 557<p> 558Copy the list of realms from `from' to `to'.<p> 559<dl compact><dt><b>Parameters:</b></dt><dd> 560 <table border="0" cellspacing="2" cellpadding="0"> 561 <tr><td valign="top"></td><td valign="top"><em>context</em> </td><td>Kerberos 5 context. </td></tr> 562 <tr><td valign="top"></td><td valign="top"><em>from</em> </td><td>list of realms to copy from. </td></tr> 563 <tr><td valign="top"></td><td valign="top"><em>to</em> </td><td>list of realms to copy to, free list of <a class="el" href="group__krb5__support.html#gca0ab80d3affb5986aa5061f3782401b">krb5_free_host_realm()</a>.</td></tr> 564 </table> 565</dl> 566<dl class="return" compact><dt><b>Returns:</b></dt><dd>Returns 0 to indicate success. Otherwise an kerberos et error code is returned, see krb5_get_error_message(). </dd></dl> 567 568</div> 569</div><p> 570<a class="anchor" name="gc2c0c5fe2dc17714287a20785623be45"></a><!-- doxytag: member="ticket.c::krb5_copy_ticket" ref="gc2c0c5fe2dc17714287a20785623be45" args="(krb5_context context, const krb5_ticket *from, krb5_ticket **to)" --> 571<div class="memitem"> 572<div class="memproto"> 573 <table class="memname"> 574 <tr> 575 <td class="memname">KRB5_LIB_FUNCTION krb5_error_code KRB5_LIB_CALL krb5_copy_ticket </td> 576 <td>(</td> 577 <td class="paramtype">krb5_context </td> 578 <td class="paramname"> <em>context</em>, </td> 579 </tr> 580 <tr> 581 <td class="paramkey"></td> 582 <td></td> 583 <td class="paramtype">const krb5_ticket * </td> 584 <td class="paramname"> <em>from</em>, </td> 585 </tr> 586 <tr> 587 <td class="paramkey"></td> 588 <td></td> 589 <td class="paramtype">krb5_ticket ** </td> 590 <td class="paramname"> <em>to</em></td><td> </td> 591 </tr> 592 <tr> 593 <td></td> 594 <td>)</td> 595 <td></td><td></td><td></td> 596 </tr> 597 </table> 598</div> 599<div class="memdoc"> 600 601<p> 602Copy ticket and content<p> 603<dl compact><dt><b>Parameters:</b></dt><dd> 604 <table border="0" cellspacing="2" cellpadding="0"> 605 <tr><td valign="top"></td><td valign="top"><em>context</em> </td><td>a Kerberos 5 context </td></tr> 606 <tr><td valign="top"></td><td valign="top"><em>from</em> </td><td>ticket to copy </td></tr> 607 <tr><td valign="top"></td><td valign="top"><em>to</em> </td><td>new copy of ticket, free with <a class="el" href="group__krb5.html#g3d994aef26269ee2b15e4d34acb28fed">krb5_free_ticket()</a></td></tr> 608 </table> 609</dl> 610<dl class="return" compact><dt><b>Returns:</b></dt><dd>Returns 0 to indicate success. Otherwise an kerberos et error code is returned, see krb5_get_error_message(). </dd></dl> 611 612</div> 613</div><p> 614<a class="anchor" name="g3e6ea2e16872304ac5cc3bed2a0abb88"></a><!-- doxytag: member="creds.c::krb5_creds_get_ticket_flags" ref="g3e6ea2e16872304ac5cc3bed2a0abb88" args="(krb5_creds *creds)" --> 615<div class="memitem"> 616<div class="memproto"> 617 <table class="memname"> 618 <tr> 619 <td class="memname">KRB5_LIB_FUNCTION unsigned long KRB5_LIB_CALL krb5_creds_get_ticket_flags </td> 620 <td>(</td> 621 <td class="paramtype">krb5_creds * </td> 622 <td class="paramname"> <em>creds</em> </td> 623 <td> ) </td> 624 <td></td> 625 </tr> 626 </table> 627</div> 628<div class="memdoc"> 629 630<p> 631Returns the ticket flags for the credentials in creds. See also <a class="el" href="group__krb5__ticket.html#gb6a75ab695ff8478394084138af9eb16">krb5_ticket_get_flags()</a>.<p> 632<dl compact><dt><b>Parameters:</b></dt><dd> 633 <table border="0" cellspacing="2" cellpadding="0"> 634 <tr><td valign="top"></td><td valign="top"><em>creds</em> </td><td>credential to get ticket flags from</td></tr> 635 </table> 636</dl> 637<dl class="return" compact><dt><b>Returns:</b></dt><dd>ticket flags </dd></dl> 638 639</div> 640</div><p> 641<a class="anchor" name="gf5b03734f6027c752381986ac0975ea9"></a><!-- doxytag: member="data.c::krb5_data_alloc" ref="gf5b03734f6027c752381986ac0975ea9" args="(krb5_data *p, int len)" --> 642<div class="memitem"> 643<div class="memproto"> 644 <table class="memname"> 645 <tr> 646 <td class="memname">KRB5_LIB_FUNCTION krb5_error_code KRB5_LIB_CALL krb5_data_alloc </td> 647 <td>(</td> 648 <td class="paramtype">krb5_data * </td> 649 <td class="paramname"> <em>p</em>, </td> 650 </tr> 651 <tr> 652 <td class="paramkey"></td> 653 <td></td> 654 <td class="paramtype">int </td> 655 <td class="paramname"> <em>len</em></td><td> </td> 656 </tr> 657 <tr> 658 <td></td> 659 <td>)</td> 660 <td></td><td></td><td></td> 661 </tr> 662 </table> 663</div> 664<div class="memdoc"> 665 666<p> 667Allocate data of and krb5_data.<p> 668<dl compact><dt><b>Parameters:</b></dt><dd> 669 <table border="0" cellspacing="2" cellpadding="0"> 670 <tr><td valign="top"></td><td valign="top"><em>p</em> </td><td>krb5_data to allocate. </td></tr> 671 <tr><td valign="top"></td><td valign="top"><em>len</em> </td><td>size to allocate.</td></tr> 672 </table> 673</dl> 674<dl class="return" compact><dt><b>Returns:</b></dt><dd>Returns 0 to indicate success. Otherwise an kerberos et error code is returned. </dd></dl> 675 676</div> 677</div><p> 678<a class="anchor" name="gfad0906fca85d7dea0f6b762822d0ff4"></a><!-- doxytag: member="data.c::krb5_data_cmp" ref="gfad0906fca85d7dea0f6b762822d0ff4" args="(const krb5_data *data1, const krb5_data *data2)" --> 679<div class="memitem"> 680<div class="memproto"> 681 <table class="memname"> 682 <tr> 683 <td class="memname">KRB5_LIB_FUNCTION int KRB5_LIB_CALL krb5_data_cmp </td> 684 <td>(</td> 685 <td class="paramtype">const krb5_data * </td> 686 <td class="paramname"> <em>data1</em>, </td> 687 </tr> 688 <tr> 689 <td class="paramkey"></td> 690 <td></td> 691 <td class="paramtype">const krb5_data * </td> 692 <td class="paramname"> <em>data2</em></td><td> </td> 693 </tr> 694 <tr> 695 <td></td> 696 <td>)</td> 697 <td></td><td></td><td></td> 698 </tr> 699 </table> 700</div> 701<div class="memdoc"> 702 703<p> 704Compare to data.<p> 705<dl compact><dt><b>Parameters:</b></dt><dd> 706 <table border="0" cellspacing="2" cellpadding="0"> 707 <tr><td valign="top"></td><td valign="top"><em>data1</em> </td><td>krb5_data to compare </td></tr> 708 <tr><td valign="top"></td><td valign="top"><em>data2</em> </td><td>krb5_data to compare</td></tr> 709 </table> 710</dl> 711<dl class="return" compact><dt><b>Returns:</b></dt><dd>return the same way as memcmp(), useful when sorting. </dd></dl> 712 713</div> 714</div><p> 715<a class="anchor" name="gfb664221cde2d10fb5d1b3dfb5c55e04"></a><!-- doxytag: member="data.c::krb5_data_copy" ref="gfb664221cde2d10fb5d1b3dfb5c55e04" args="(krb5_data *p, const void *data, size_t len)" --> 716<div class="memitem"> 717<div class="memproto"> 718 <table class="memname"> 719 <tr> 720 <td class="memname">KRB5_LIB_FUNCTION krb5_error_code KRB5_LIB_CALL krb5_data_copy </td> 721 <td>(</td> 722 <td class="paramtype">krb5_data * </td> 723 <td class="paramname"> <em>p</em>, </td> 724 </tr> 725 <tr> 726 <td class="paramkey"></td> 727 <td></td> 728 <td class="paramtype">const void * </td> 729 <td class="paramname"> <em>data</em>, </td> 730 </tr> 731 <tr> 732 <td class="paramkey"></td> 733 <td></td> 734 <td class="paramtype">size_t </td> 735 <td class="paramname"> <em>len</em></td><td> </td> 736 </tr> 737 <tr> 738 <td></td> 739 <td>)</td> 740 <td></td><td></td><td></td> 741 </tr> 742 </table> 743</div> 744<div class="memdoc"> 745 746<p> 747Copy the data of len into the krb5_data.<p> 748<dl compact><dt><b>Parameters:</b></dt><dd> 749 <table border="0" cellspacing="2" cellpadding="0"> 750 <tr><td valign="top"></td><td valign="top"><em>p</em> </td><td>krb5_data to copy into. </td></tr> 751 <tr><td valign="top"></td><td valign="top"><em>data</em> </td><td>data to copy.. </td></tr> 752 <tr><td valign="top"></td><td valign="top"><em>len</em> </td><td>new size.</td></tr> 753 </table> 754</dl> 755<dl class="return" compact><dt><b>Returns:</b></dt><dd>Returns 0 to indicate success. Otherwise an kerberos et error code is returned. </dd></dl> 756 757</div> 758</div><p> 759<a class="anchor" name="gcbeb984ec39d6f8ccb582816c14318ab"></a><!-- doxytag: member="data.c::krb5_data_ct_cmp" ref="gcbeb984ec39d6f8ccb582816c14318ab" args="(const krb5_data *data1, const krb5_data *data2)" --> 760<div class="memitem"> 761<div class="memproto"> 762 <table class="memname"> 763 <tr> 764 <td class="memname">KRB5_LIB_FUNCTION int KRB5_LIB_CALL krb5_data_ct_cmp </td> 765 <td>(</td> 766 <td class="paramtype">const krb5_data * </td> 767 <td class="paramname"> <em>data1</em>, </td> 768 </tr> 769 <tr> 770 <td class="paramkey"></td> 771 <td></td> 772 <td class="paramtype">const krb5_data * </td> 773 <td class="paramname"> <em>data2</em></td><td> </td> 774 </tr> 775 <tr> 776 <td></td> 777 <td>)</td> 778 <td></td><td></td><td></td> 779 </tr> 780 </table> 781</div> 782<div class="memdoc"> 783 784<p> 785Compare to data not exposing timing information from the checksum data<p> 786<dl compact><dt><b>Parameters:</b></dt><dd> 787 <table border="0" cellspacing="2" cellpadding="0"> 788 <tr><td valign="top"></td><td valign="top"><em>data1</em> </td><td>krb5_data to compare </td></tr> 789 <tr><td valign="top"></td><td valign="top"><em>data2</em> </td><td>krb5_data to compare</td></tr> 790 </table> 791</dl> 792<dl class="return" compact><dt><b>Returns:</b></dt><dd>returns zero for same data, otherwise non zero. </dd></dl> 793 794</div> 795</div><p> 796<a class="anchor" name="gb4b80ac7a8bbab89fe947ae1c7828ea8"></a><!-- doxytag: member="data.c::krb5_data_free" ref="gb4b80ac7a8bbab89fe947ae1c7828ea8" args="(krb5_data *p)" --> 797<div class="memitem"> 798<div class="memproto"> 799 <table class="memname"> 800 <tr> 801 <td class="memname">KRB5_LIB_FUNCTION void KRB5_LIB_CALL krb5_data_free </td> 802 <td>(</td> 803 <td class="paramtype">krb5_data * </td> 804 <td class="paramname"> <em>p</em> </td> 805 <td> ) </td> 806 <td></td> 807 </tr> 808 </table> 809</div> 810<div class="memdoc"> 811 812<p> 813Free the content of krb5_data structure, its ok to free a zeroed structure (with memset() or <a class="el" href="group__krb5.html#ga059e96dde4e0b8c082eb6f3d570b7bc">krb5_data_zero()</a>). When done, the structure will be zeroed. The same function is called <a class="el" href="group__krb5__deprecated.html#g220b8b17e81dc71dd3ecd1b079160db9">krb5_free_data_contents()</a> in MIT Kerberos.<p> 814<dl compact><dt><b>Parameters:</b></dt><dd> 815 <table border="0" cellspacing="2" cellpadding="0"> 816 <tr><td valign="top"></td><td valign="top"><em>p</em> </td><td>krb5_data to free. </td></tr> 817 </table> 818</dl> 819 820</div> 821</div><p> 822<a class="anchor" name="g0602c7a4b056d9004db090df9886811c"></a><!-- doxytag: member="data.c::krb5_data_realloc" ref="g0602c7a4b056d9004db090df9886811c" args="(krb5_data *p, int len)" --> 823<div class="memitem"> 824<div class="memproto"> 825 <table class="memname"> 826 <tr> 827 <td class="memname">KRB5_LIB_FUNCTION krb5_error_code KRB5_LIB_CALL krb5_data_realloc </td> 828 <td>(</td> 829 <td class="paramtype">krb5_data * </td> 830 <td class="paramname"> <em>p</em>, </td> 831 </tr> 832 <tr> 833 <td class="paramkey"></td> 834 <td></td> 835 <td class="paramtype">int </td> 836 <td class="paramname"> <em>len</em></td><td> </td> 837 </tr> 838 <tr> 839 <td></td> 840 <td>)</td> 841 <td></td><td></td><td></td> 842 </tr> 843 </table> 844</div> 845<div class="memdoc"> 846 847<p> 848Grow (or shrink) the content of krb5_data to a new size.<p> 849<dl compact><dt><b>Parameters:</b></dt><dd> 850 <table border="0" cellspacing="2" cellpadding="0"> 851 <tr><td valign="top"></td><td valign="top"><em>p</em> </td><td>krb5_data to free. </td></tr> 852 <tr><td valign="top"></td><td valign="top"><em>len</em> </td><td>new size.</td></tr> 853 </table> 854</dl> 855<dl class="return" compact><dt><b>Returns:</b></dt><dd>Returns 0 to indicate success. Otherwise an kerberos et error code is returned. </dd></dl> 856 857</div> 858</div><p> 859<a class="anchor" name="ga059e96dde4e0b8c082eb6f3d570b7bc"></a><!-- doxytag: member="data.c::krb5_data_zero" ref="ga059e96dde4e0b8c082eb6f3d570b7bc" args="(krb5_data *p)" --> 860<div class="memitem"> 861<div class="memproto"> 862 <table class="memname"> 863 <tr> 864 <td class="memname">KRB5_LIB_FUNCTION void KRB5_LIB_CALL krb5_data_zero </td> 865 <td>(</td> 866 <td class="paramtype">krb5_data * </td> 867 <td class="paramname"> <em>p</em> </td> 868 <td> ) </td> 869 <td></td> 870 </tr> 871 </table> 872</div> 873<div class="memdoc"> 874 875<p> 876Reset the (potentially uninitalized) krb5_data structure.<p> 877<dl compact><dt><b>Parameters:</b></dt><dd> 878 <table border="0" cellspacing="2" cellpadding="0"> 879 <tr><td valign="top"></td><td valign="top"><em>p</em> </td><td>krb5_data to reset. </td></tr> 880 </table> 881</dl> 882 883</div> 884</div><p> 885<a class="anchor" name="gce1b568d05875e7c4fbc6e5af5a8bdbf"></a><!-- doxytag: member="context.c::krb5_free_config_files" ref="gce1b568d05875e7c4fbc6e5af5a8bdbf" args="(char **filenames)" --> 886<div class="memitem"> 887<div class="memproto"> 888 <table class="memname"> 889 <tr> 890 <td class="memname">KRB5_LIB_FUNCTION void KRB5_LIB_CALL krb5_free_config_files </td> 891 <td>(</td> 892 <td class="paramtype">char ** </td> 893 <td class="paramname"> <em>filenames</em> </td> 894 <td> ) </td> 895 <td></td> 896 </tr> 897 </table> 898</div> 899<div class="memdoc"> 900 901<p> 902Free a list of configuration files.<p> 903<dl compact><dt><b>Parameters:</b></dt><dd> 904 <table border="0" cellspacing="2" cellpadding="0"> 905 <tr><td valign="top"></td><td valign="top"><em>filenames</em> </td><td>list, terminated with a NULL pointer, to be freed. NULL is an valid argument.</td></tr> 906 </table> 907</dl> 908<dl class="return" compact><dt><b>Returns:</b></dt><dd>Returns 0 to indicate success. Otherwise an kerberos et error code is returned, see krb5_get_error_message(). </dd></dl> 909 910</div> 911</div><p> 912<a class="anchor" name="ge51d83f5d5f589883f1cd10887892777"></a><!-- doxytag: member="context.c::krb5_free_context" ref="ge51d83f5d5f589883f1cd10887892777" args="(krb5_context context)" --> 913<div class="memitem"> 914<div class="memproto"> 915 <table class="memname"> 916 <tr> 917 <td class="memname">KRB5_LIB_FUNCTION void KRB5_LIB_CALL krb5_free_context </td> 918 <td>(</td> 919 <td class="paramtype">krb5_context </td> 920 <td class="paramname"> <em>context</em> </td> 921 <td> ) </td> 922 <td></td> 923 </tr> 924 </table> 925</div> 926<div class="memdoc"> 927 928<p> 929Frees the krb5_context allocated by <a class="el" href="group__krb5.html#gbd94206e186c58a093975424a4a567a8">krb5_init_context()</a>.<p> 930<dl compact><dt><b>Parameters:</b></dt><dd> 931 <table border="0" cellspacing="2" cellpadding="0"> 932 <tr><td valign="top"></td><td valign="top"><em>context</em> </td><td>context to be freed. </td></tr> 933 </table> 934</dl> 935 936</div> 937</div><p> 938<a class="anchor" name="gd89c4c7b633646c39e4a34a7230c94e1"></a><!-- doxytag: member="creds.c::krb5_free_cred_contents" ref="gd89c4c7b633646c39e4a34a7230c94e1" args="(krb5_context context, krb5_creds *c)" --> 939<div class="memitem"> 940<div class="memproto"> 941 <table class="memname"> 942 <tr> 943 <td class="memname">KRB5_LIB_FUNCTION krb5_error_code KRB5_LIB_CALL krb5_free_cred_contents </td> 944 <td>(</td> 945 <td class="paramtype">krb5_context </td> 946 <td class="paramname"> <em>context</em>, </td> 947 </tr> 948 <tr> 949 <td class="paramkey"></td> 950 <td></td> 951 <td class="paramtype">krb5_creds * </td> 952 <td class="paramname"> <em>c</em></td><td> </td> 953 </tr> 954 <tr> 955 <td></td> 956 <td>)</td> 957 <td></td><td></td><td></td> 958 </tr> 959 </table> 960</div> 961<div class="memdoc"> 962 963<p> 964Free content of krb5_creds.<p> 965<dl compact><dt><b>Parameters:</b></dt><dd> 966 <table border="0" cellspacing="2" cellpadding="0"> 967 <tr><td valign="top"></td><td valign="top"><em>context</em> </td><td>Kerberos 5 context. </td></tr> 968 <tr><td valign="top"></td><td valign="top"><em>c</em> </td><td>krb5_creds to free.</td></tr> 969 </table> 970</dl> 971<dl class="return" compact><dt><b>Returns:</b></dt><dd>Returns 0 to indicate success. Otherwise an kerberos et error code is returned, see krb5_get_error_message(). </dd></dl> 972 973</div> 974</div><p> 975<a class="anchor" name="g5224797a3ca4c450466ef5102164ee85"></a><!-- doxytag: member="creds.c::krb5_free_creds" ref="g5224797a3ca4c450466ef5102164ee85" args="(krb5_context context, krb5_creds *c)" --> 976<div class="memitem"> 977<div class="memproto"> 978 <table class="memname"> 979 <tr> 980 <td class="memname">KRB5_LIB_FUNCTION krb5_error_code KRB5_LIB_CALL krb5_free_creds </td> 981 <td>(</td> 982 <td class="paramtype">krb5_context </td> 983 <td class="paramname"> <em>context</em>, </td> 984 </tr> 985 <tr> 986 <td class="paramkey"></td> 987 <td></td> 988 <td class="paramtype">krb5_creds * </td> 989 <td class="paramname"> <em>c</em></td><td> </td> 990 </tr> 991 <tr> 992 <td></td> 993 <td>)</td> 994 <td></td><td></td><td></td> 995 </tr> 996 </table> 997</div> 998<div class="memdoc"> 999 1000<p> 1001Free krb5_creds.<p> 1002<dl compact><dt><b>Parameters:</b></dt><dd> 1003 <table border="0" cellspacing="2" cellpadding="0"> 1004 <tr><td valign="top"></td><td valign="top"><em>context</em> </td><td>Kerberos 5 context. </td></tr> 1005 <tr><td valign="top"></td><td valign="top"><em>c</em> </td><td>krb5_creds to free.</td></tr> 1006 </table> 1007</dl> 1008<dl class="return" compact><dt><b>Returns:</b></dt><dd>Returns 0 to indicate success. Otherwise an kerberos et error code is returned, see krb5_get_error_message(). </dd></dl> 1009 1010</div> 1011</div><p> 1012<a class="anchor" name="g9494f7751d3751c45a5ed4a89a5323b4"></a><!-- doxytag: member="data.c::krb5_free_data" ref="g9494f7751d3751c45a5ed4a89a5323b4" args="(krb5_context context, krb5_data *p)" --> 1013<div class="memitem"> 1014<div class="memproto"> 1015 <table class="memname"> 1016 <tr> 1017 <td class="memname">KRB5_LIB_FUNCTION void KRB5_LIB_CALL krb5_free_data </td> 1018 <td>(</td> 1019 <td class="paramtype">krb5_context </td> 1020 <td class="paramname"> <em>context</em>, </td> 1021 </tr> 1022 <tr> 1023 <td class="paramkey"></td> 1024 <td></td> 1025 <td class="paramtype">krb5_data * </td> 1026 <td class="paramname"> <em>p</em></td><td> </td> 1027 </tr> 1028 <tr> 1029 <td></td> 1030 <td>)</td> 1031 <td></td><td></td><td></td> 1032 </tr> 1033 </table> 1034</div> 1035<div class="memdoc"> 1036 1037<p> 1038Free krb5_data (and its content).<p> 1039<dl compact><dt><b>Parameters:</b></dt><dd> 1040 <table border="0" cellspacing="2" cellpadding="0"> 1041 <tr><td valign="top"></td><td valign="top"><em>context</em> </td><td>Kerberos 5 context. </td></tr> 1042 <tr><td valign="top"></td><td valign="top"><em>p</em> </td><td>krb5_data to free. </td></tr> 1043 </table> 1044</dl> 1045 1046</div> 1047</div><p> 1048<a class="anchor" name="g3d994aef26269ee2b15e4d34acb28fed"></a><!-- doxytag: member="ticket.c::krb5_free_ticket" ref="g3d994aef26269ee2b15e4d34acb28fed" args="(krb5_context context, krb5_ticket *ticket)" --> 1049<div class="memitem"> 1050<div class="memproto"> 1051 <table class="memname"> 1052 <tr> 1053 <td class="memname">KRB5_LIB_FUNCTION krb5_error_code KRB5_LIB_CALL krb5_free_ticket </td> 1054 <td>(</td> 1055 <td class="paramtype">krb5_context </td> 1056 <td class="paramname"> <em>context</em>, </td> 1057 </tr> 1058 <tr> 1059 <td class="paramkey"></td> 1060 <td></td> 1061 <td class="paramtype">krb5_ticket * </td> 1062 <td class="paramname"> <em>ticket</em></td><td> </td> 1063 </tr> 1064 <tr> 1065 <td></td> 1066 <td>)</td> 1067 <td></td><td></td><td></td> 1068 </tr> 1069 </table> 1070</div> 1071<div class="memdoc"> 1072 1073<p> 1074Free ticket and content<p> 1075<dl compact><dt><b>Parameters:</b></dt><dd> 1076 <table border="0" cellspacing="2" cellpadding="0"> 1077 <tr><td valign="top"></td><td valign="top"><em>context</em> </td><td>a Kerberos 5 context </td></tr> 1078 <tr><td valign="top"></td><td valign="top"><em>ticket</em> </td><td>ticket to free</td></tr> 1079 </table> 1080</dl> 1081<dl class="return" compact><dt><b>Returns:</b></dt><dd>Returns 0 to indicate success. Otherwise an kerberos et error code is returned, see krb5_get_error_message(). </dd></dl> 1082 1083</div> 1084</div><p> 1085<a class="anchor" name="g4276c71bee1ba0c9f2bbd659cd351cb3"></a><!-- doxytag: member="context.c::krb5_get_default_config_files" ref="g4276c71bee1ba0c9f2bbd659cd351cb3" args="(char ***pfilenames)" --> 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_get_default_config_files </td> 1091 <td>(</td> 1092 <td class="paramtype">char *** </td> 1093 <td class="paramname"> <em>pfilenames</em> </td> 1094 <td> ) </td> 1095 <td></td> 1096 </tr> 1097 </table> 1098</div> 1099<div class="memdoc"> 1100 1101<p> 1102Get the global configuration list.<p> 1103<dl compact><dt><b>Parameters:</b></dt><dd> 1104 <table border="0" cellspacing="2" cellpadding="0"> 1105 <tr><td valign="top"></td><td valign="top"><em>pfilenames</em> </td><td>return array of filenames, should be freed with <a class="el" href="group__krb5.html#gce1b568d05875e7c4fbc6e5af5a8bdbf">krb5_free_config_files()</a>.</td></tr> 1106 </table> 1107</dl> 1108<dl class="return" compact><dt><b>Returns:</b></dt><dd>Returns 0 to indicate success. Otherwise an kerberos et error code is returned, see krb5_get_error_message(). </dd></dl> 1109 1110</div> 1111</div><p> 1112<a class="anchor" name="ga2bba3d683f1280ddfe8430d834bd5e8"></a><!-- doxytag: member="context.c::krb5_get_default_in_tkt_etypes" ref="ga2bba3d683f1280ddfe8430d834bd5e8" args="(krb5_context context, krb5_pdu pdu_type, krb5_enctype **etypes)" --> 1113<div class="memitem"> 1114<div class="memproto"> 1115 <table class="memname"> 1116 <tr> 1117 <td class="memname">KRB5_LIB_FUNCTION krb5_error_code KRB5_LIB_CALL krb5_get_default_in_tkt_etypes </td> 1118 <td>(</td> 1119 <td class="paramtype">krb5_context </td> 1120 <td class="paramname"> <em>context</em>, </td> 1121 </tr> 1122 <tr> 1123 <td class="paramkey"></td> 1124 <td></td> 1125 <td class="paramtype">krb5_pdu </td> 1126 <td class="paramname"> <em>pdu_type</em>, </td> 1127 </tr> 1128 <tr> 1129 <td class="paramkey"></td> 1130 <td></td> 1131 <td class="paramtype">krb5_enctype ** </td> 1132 <td class="paramname"> <em>etypes</em></td><td> </td> 1133 </tr> 1134 <tr> 1135 <td></td> 1136 <td>)</td> 1137 <td></td><td></td><td></td> 1138 </tr> 1139 </table> 1140</div> 1141<div class="memdoc"> 1142 1143<p> 1144Get the default encryption types that will be use in communcation with the KDC, clients and servers.<p> 1145<dl compact><dt><b>Parameters:</b></dt><dd> 1146 <table border="0" cellspacing="2" cellpadding="0"> 1147 <tr><td valign="top"></td><td valign="top"><em>context</em> </td><td>Kerberos 5 context. </td></tr> 1148 <tr><td valign="top"></td><td valign="top"><em>etypes</em> </td><td>Encryption types, array terminated with ETYPE_NULL(0), caller should free array with krb5_xfree():</td></tr> 1149 </table> 1150</dl> 1151<dl class="return" compact><dt><b>Returns:</b></dt><dd>Returns 0 to indicate success. Otherwise an kerberos et error code is returned, see krb5_get_error_message(). </dd></dl> 1152 1153</div> 1154</div><p> 1155<a class="anchor" name="gef9f47692fc31c50afc14b581b7aa2fa"></a><!-- doxytag: member="context.c::krb5_get_dns_canonicalize_hostname" ref="gef9f47692fc31c50afc14b581b7aa2fa" args="(krb5_context context)" --> 1156<div class="memitem"> 1157<div class="memproto"> 1158 <table class="memname"> 1159 <tr> 1160 <td class="memname">KRB5_LIB_FUNCTION krb5_boolean KRB5_LIB_CALL krb5_get_dns_canonicalize_hostname </td> 1161 <td>(</td> 1162 <td class="paramtype">krb5_context </td> 1163 <td class="paramname"> <em>context</em> </td> 1164 <td> ) </td> 1165 <td></td> 1166 </tr> 1167 </table> 1168</div> 1169<div class="memdoc"> 1170 1171<p> 1172Get if the library uses DNS to canonicalize hostnames.<p> 1173<dl compact><dt><b>Parameters:</b></dt><dd> 1174 <table border="0" cellspacing="2" cellpadding="0"> 1175 <tr><td valign="top"></td><td valign="top"><em>context</em> </td><td>Kerberos 5 context.</td></tr> 1176 </table> 1177</dl> 1178<dl class="return" compact><dt><b>Returns:</b></dt><dd>return non zero if the library uses DNS to canonicalize hostnames. </dd></dl> 1179 1180</div> 1181</div><p> 1182<a class="anchor" name="g0c24a484850684f9252c0f494da2e4c5"></a><!-- doxytag: member="context.c::krb5_get_extra_addresses" ref="g0c24a484850684f9252c0f494da2e4c5" args="(krb5_context context, krb5_addresses *addresses)" --> 1183<div class="memitem"> 1184<div class="memproto"> 1185 <table class="memname"> 1186 <tr> 1187 <td class="memname">KRB5_LIB_FUNCTION krb5_error_code KRB5_LIB_CALL krb5_get_extra_addresses </td> 1188 <td>(</td> 1189 <td class="paramtype">krb5_context </td> 1190 <td class="paramname"> <em>context</em>, </td> 1191 </tr> 1192 <tr> 1193 <td class="paramkey"></td> 1194 <td></td> 1195 <td class="paramtype">krb5_addresses * </td> 1196 <td class="paramname"> <em>addresses</em></td><td> </td> 1197 </tr> 1198 <tr> 1199 <td></td> 1200 <td>)</td> 1201 <td></td><td></td><td></td> 1202 </tr> 1203 </table> 1204</div> 1205<div class="memdoc"> 1206 1207<p> 1208Get extra address to the address list that the library will add to the client's address list when communicating with the KDC.<p> 1209<dl compact><dt><b>Parameters:</b></dt><dd> 1210 <table border="0" cellspacing="2" cellpadding="0"> 1211 <tr><td valign="top"></td><td valign="top"><em>context</em> </td><td>Kerberos 5 context. </td></tr> 1212 <tr><td valign="top"></td><td valign="top"><em>addresses</em> </td><td>addreses to set</td></tr> 1213 </table> 1214</dl> 1215<dl class="return" compact><dt><b>Returns:</b></dt><dd>Returns 0 to indicate success. Otherwise an kerberos et error code is returned, see krb5_get_error_message(). </dd></dl> 1216 1217</div> 1218</div><p> 1219<a class="anchor" name="g913ff7c6bd16cd3d3cb07529345b65ba"></a><!-- doxytag: member="context.c::krb5_get_fcache_version" ref="g913ff7c6bd16cd3d3cb07529345b65ba" args="(krb5_context context, int *version)" --> 1220<div class="memitem"> 1221<div class="memproto"> 1222 <table class="memname"> 1223 <tr> 1224 <td class="memname">KRB5_LIB_FUNCTION krb5_error_code KRB5_LIB_CALL krb5_get_fcache_version </td> 1225 <td>(</td> 1226 <td class="paramtype">krb5_context </td> 1227 <td class="paramname"> <em>context</em>, </td> 1228 </tr> 1229 <tr> 1230 <td class="paramkey"></td> 1231 <td></td> 1232 <td class="paramtype">int * </td> 1233 <td class="paramname"> <em>version</em></td><td> </td> 1234 </tr> 1235 <tr> 1236 <td></td> 1237 <td>)</td> 1238 <td></td><td></td><td></td> 1239 </tr> 1240 </table> 1241</div> 1242<div class="memdoc"> 1243 1244<p> 1245Get version of fcache that the library should use.<p> 1246<dl compact><dt><b>Parameters:</b></dt><dd> 1247 <table border="0" cellspacing="2" cellpadding="0"> 1248 <tr><td valign="top"></td><td valign="top"><em>context</em> </td><td>Kerberos 5 context. </td></tr> 1249 <tr><td valign="top"></td><td valign="top"><em>version</em> </td><td>version number.</td></tr> 1250 </table> 1251</dl> 1252<dl class="return" compact><dt><b>Returns:</b></dt><dd>Returns 0 to indicate success. Otherwise an kerberos et error code is returned, see krb5_get_error_message(). </dd></dl> 1253 1254</div> 1255</div><p> 1256<a class="anchor" name="g6f089725948937875bc2594d9b8cbaf7"></a><!-- doxytag: member="context.c::krb5_get_ignore_addresses" ref="g6f089725948937875bc2594d9b8cbaf7" args="(krb5_context context, krb5_addresses *addresses)" --> 1257<div class="memitem"> 1258<div class="memproto"> 1259 <table class="memname"> 1260 <tr> 1261 <td class="memname">KRB5_LIB_FUNCTION krb5_error_code KRB5_LIB_CALL krb5_get_ignore_addresses </td> 1262 <td>(</td> 1263 <td class="paramtype">krb5_context </td> 1264 <td class="paramname"> <em>context</em>, </td> 1265 </tr> 1266 <tr> 1267 <td class="paramkey"></td> 1268 <td></td> 1269 <td class="paramtype">krb5_addresses * </td> 1270 <td class="paramname"> <em>addresses</em></td><td> </td> 1271 </tr> 1272 <tr> 1273 <td></td> 1274 <td>)</td> 1275 <td></td><td></td><td></td> 1276 </tr> 1277 </table> 1278</div> 1279<div class="memdoc"> 1280 1281<p> 1282Get extra addresses to ignore when fetching addresses from the underlaying operating system.<p> 1283<dl compact><dt><b>Parameters:</b></dt><dd> 1284 <table border="0" cellspacing="2" cellpadding="0"> 1285 <tr><td valign="top"></td><td valign="top"><em>context</em> </td><td>Kerberos 5 context. </td></tr> 1286 <tr><td valign="top"></td><td valign="top"><em>addresses</em> </td><td>list addreses ignored</td></tr> 1287 </table> 1288</dl> 1289<dl class="return" compact><dt><b>Returns:</b></dt><dd>Returns 0 to indicate success. Otherwise an kerberos et error code is returned, see krb5_get_error_message(). </dd></dl> 1290 1291</div> 1292</div><p> 1293<a class="anchor" name="gfacf61debb011b06e22e78251104efa0"></a><!-- doxytag: member="context.c::krb5_get_kdc_sec_offset" ref="gfacf61debb011b06e22e78251104efa0" args="(krb5_context context, int32_t *sec, int32_t *usec)" --> 1294<div class="memitem"> 1295<div class="memproto"> 1296 <table class="memname"> 1297 <tr> 1298 <td class="memname">KRB5_LIB_FUNCTION krb5_error_code KRB5_LIB_CALL krb5_get_kdc_sec_offset </td> 1299 <td>(</td> 1300 <td class="paramtype">krb5_context </td> 1301 <td class="paramname"> <em>context</em>, </td> 1302 </tr> 1303 <tr> 1304 <td class="paramkey"></td> 1305 <td></td> 1306 <td class="paramtype">int32_t * </td> 1307 <td class="paramname"> <em>sec</em>, </td> 1308 </tr> 1309 <tr> 1310 <td class="paramkey"></td> 1311 <td></td> 1312 <td class="paramtype">int32_t * </td> 1313 <td class="paramname"> <em>usec</em></td><td> </td> 1314 </tr> 1315 <tr> 1316 <td></td> 1317 <td>)</td> 1318 <td></td><td></td><td></td> 1319 </tr> 1320 </table> 1321</div> 1322<div class="memdoc"> 1323 1324<p> 1325Get current offset in time to the KDC.<p> 1326<dl compact><dt><b>Parameters:</b></dt><dd> 1327 <table border="0" cellspacing="2" cellpadding="0"> 1328 <tr><td valign="top"></td><td valign="top"><em>context</em> </td><td>Kerberos 5 context. </td></tr> 1329 <tr><td valign="top"></td><td valign="top"><em>sec</em> </td><td>seconds part of offset. </td></tr> 1330 <tr><td valign="top"></td><td valign="top"><em>usec</em> </td><td>micro seconds part of offset.</td></tr> 1331 </table> 1332</dl> 1333<dl class="return" compact><dt><b>Returns:</b></dt><dd>returns zero </dd></dl> 1334 1335</div> 1336</div><p> 1337<a class="anchor" name="gbefb8ef32ceedc5ffe6c9440c093a533"></a><!-- doxytag: member="context.c::krb5_get_max_time_skew" ref="gbefb8ef32ceedc5ffe6c9440c093a533" args="(krb5_context context)" --> 1338<div class="memitem"> 1339<div class="memproto"> 1340 <table class="memname"> 1341 <tr> 1342 <td class="memname">KRB5_LIB_FUNCTION time_t KRB5_LIB_CALL krb5_get_max_time_skew </td> 1343 <td>(</td> 1344 <td class="paramtype">krb5_context </td> 1345 <td class="paramname"> <em>context</em> </td> 1346 <td> ) </td> 1347 <td></td> 1348 </tr> 1349 </table> 1350</div> 1351<div class="memdoc"> 1352 1353<p> 1354Get max time skew allowed.<p> 1355<dl compact><dt><b>Parameters:</b></dt><dd> 1356 <table border="0" cellspacing="2" cellpadding="0"> 1357 <tr><td valign="top"></td><td valign="top"><em>context</em> </td><td>Kerberos 5 context.</td></tr> 1358 </table> 1359</dl> 1360<dl class="return" compact><dt><b>Returns:</b></dt><dd>timeskew in seconds. </dd></dl> 1361 1362</div> 1363</div><p> 1364<a class="anchor" name="gc68122daa411ea028bd521e6e9d2ca6b"></a><!-- doxytag: member="context.c::krb5_get_use_admin_kdc" ref="gc68122daa411ea028bd521e6e9d2ca6b" args="(krb5_context context)" --> 1365<div class="memitem"> 1366<div class="memproto"> 1367 <table class="memname"> 1368 <tr> 1369 <td class="memname">KRB5_LIB_FUNCTION krb5_boolean KRB5_LIB_CALL krb5_get_use_admin_kdc </td> 1370 <td>(</td> 1371 <td class="paramtype">krb5_context </td> 1372 <td class="paramname"> <em>context</em> </td> 1373 <td> ) </td> 1374 <td></td> 1375 </tr> 1376 </table> 1377</div> 1378<div class="memdoc"> 1379 1380<p> 1381Make the kerberos library default to the admin KDC.<p> 1382<dl compact><dt><b>Parameters:</b></dt><dd> 1383 <table border="0" cellspacing="2" cellpadding="0"> 1384 <tr><td valign="top"></td><td valign="top"><em>context</em> </td><td>Kerberos 5 context.</td></tr> 1385 </table> 1386</dl> 1387<dl class="return" compact><dt><b>Returns:</b></dt><dd>boolean flag to telling the context will use admin KDC as the default KDC. </dd></dl> 1388 1389</div> 1390</div><p> 1391<a class="anchor" name="gbd94206e186c58a093975424a4a567a8"></a><!-- doxytag: member="context.c::krb5_init_context" ref="gbd94206e186c58a093975424a4a567a8" args="(krb5_context *context)" --> 1392<div class="memitem"> 1393<div class="memproto"> 1394 <table class="memname"> 1395 <tr> 1396 <td class="memname">KRB5_LIB_FUNCTION krb5_error_code KRB5_LIB_CALL krb5_init_context </td> 1397 <td>(</td> 1398 <td class="paramtype">krb5_context * </td> 1399 <td class="paramname"> <em>context</em> </td> 1400 <td> ) </td> 1401 <td></td> 1402 </tr> 1403 </table> 1404</div> 1405<div class="memdoc"> 1406 1407<p> 1408Initializes the context structure and reads the configuration file /etc/krb5.conf. The structure should be freed by calling <a class="el" href="group__krb5.html#ge51d83f5d5f589883f1cd10887892777">krb5_free_context()</a> when it is no longer being used.<p> 1409<dl compact><dt><b>Parameters:</b></dt><dd> 1410 <table border="0" cellspacing="2" cellpadding="0"> 1411 <tr><td valign="top"></td><td valign="top"><em>context</em> </td><td>pointer to returned context</td></tr> 1412 </table> 1413</dl> 1414<dl class="return" compact><dt><b>Returns:</b></dt><dd>Returns 0 to indicate success. Otherwise an errno code is returned. Failure means either that something bad happened during initialization (typically ENOMEM) or that Kerberos should not be used ENXIO. </dd></dl> 1415 1416</div> 1417</div><p> 1418<a class="anchor" name="g0f4f2bf6056a5fd472d9dd3d393f133e"></a><!-- doxytag: member="context.c::krb5_init_ets" ref="g0f4f2bf6056a5fd472d9dd3d393f133e" args="(krb5_context context)" --> 1419<div class="memitem"> 1420<div class="memproto"> 1421 <table class="memname"> 1422 <tr> 1423 <td class="memname">KRB5_LIB_FUNCTION void KRB5_LIB_CALL krb5_init_ets </td> 1424 <td>(</td> 1425 <td class="paramtype">krb5_context </td> 1426 <td class="paramname"> <em>context</em> </td> 1427 <td> ) </td> 1428 <td></td> 1429 </tr> 1430 </table> 1431</div> 1432<div class="memdoc"> 1433 1434<p> 1435Init the built-in ets in the Kerberos library.<p> 1436<dl compact><dt><b>Parameters:</b></dt><dd> 1437 <table border="0" cellspacing="2" cellpadding="0"> 1438 <tr><td valign="top"></td><td valign="top"><em>context</em> </td><td>kerberos context to add the ets too </td></tr> 1439 </table> 1440</dl> 1441 1442</div> 1443</div><p> 1444<a class="anchor" name="gc5664b887b62be61c00c70fa9e290611"></a><!-- doxytag: member="context.c::krb5_is_thread_safe" ref="gc5664b887b62be61c00c70fa9e290611" args="(void)" --> 1445<div class="memitem"> 1446<div class="memproto"> 1447 <table class="memname"> 1448 <tr> 1449 <td class="memname">KRB5_LIB_FUNCTION krb5_boolean KRB5_LIB_CALL krb5_is_thread_safe </td> 1450 <td>(</td> 1451 <td class="paramtype">void </td> 1452 <td class="paramname"> </td> 1453 <td> ) </td> 1454 <td></td> 1455 </tr> 1456 </table> 1457</div> 1458<div class="memdoc"> 1459 1460<p> 1461Runtime check if the Kerberos library was complied with thread support.<p> 1462<dl class="return" compact><dt><b>Returns:</b></dt><dd>TRUE if the library was compiled with thread support, FALSE if not. </dd></dl> 1463 1464</div> 1465</div><p> 1466<a class="anchor" name="g92110f6472a4fb0a5e0a35da81af4fa2"></a><!-- doxytag: member="context.c::krb5_kerberos_enctypes" ref="g92110f6472a4fb0a5e0a35da81af4fa2" args="(krb5_context context)" --> 1467<div class="memitem"> 1468<div class="memproto"> 1469 <table class="memname"> 1470 <tr> 1471 <td class="memname">KRB5_LIB_FUNCTION const krb5_enctype* KRB5_LIB_CALL krb5_kerberos_enctypes </td> 1472 <td>(</td> 1473 <td class="paramtype">krb5_context </td> 1474 <td class="paramname"> <em>context</em> </td> 1475 <td> ) </td> 1476 <td></td> 1477 </tr> 1478 </table> 1479</div> 1480<div class="memdoc"> 1481 1482<p> 1483Returns the list of Kerberos encryption types sorted in order of most preferred to least preferred encryption type. Note that some encryption types might be disabled, so you need to check with <a class="el" href="group__krb5__crypto.html#gd5f2b15d5fde369cf923e8fae4b00bec">krb5_enctype_valid()</a> before using the encryption type.<p> 1484<dl class="return" compact><dt><b>Returns:</b></dt><dd>list of enctypes, terminated with ETYPE_NULL. Its a static array completed into the Kerberos library so the content doesn't need to be freed. </dd></dl> 1485 1486</div> 1487</div><p> 1488<a class="anchor" name="g8dcc8bb7370f2bd91bea895df7e1b1a2"></a><!-- doxytag: member="krbhst.c::krb5_krbhst_get_addrinfo" ref="g8dcc8bb7370f2bd91bea895df7e1b1a2" args="(krb5_context context, krb5_krbhst_info *host, struct addrinfo **ai)" --> 1489<div class="memitem"> 1490<div class="memproto"> 1491 <table class="memname"> 1492 <tr> 1493 <td class="memname">KRB5_LIB_FUNCTION krb5_error_code KRB5_LIB_CALL krb5_krbhst_get_addrinfo </td> 1494 <td>(</td> 1495 <td class="paramtype">krb5_context </td> 1496 <td class="paramname"> <em>context</em>, </td> 1497 </tr> 1498 <tr> 1499 <td class="paramkey"></td> 1500 <td></td> 1501 <td class="paramtype">krb5_krbhst_info * </td> 1502 <td class="paramname"> <em>host</em>, </td> 1503 </tr> 1504 <tr> 1505 <td class="paramkey"></td> 1506 <td></td> 1507 <td class="paramtype">struct addrinfo ** </td> 1508 <td class="paramname"> <em>ai</em></td><td> </td> 1509 </tr> 1510 <tr> 1511 <td></td> 1512 <td>)</td> 1513 <td></td><td></td><td></td> 1514 </tr> 1515 </table> 1516</div> 1517<div class="memdoc"> 1518 1519<p> 1520Return an `struct addrinfo *' for a KDC host.<p> 1521Returns an the struct addrinfo in in that corresponds to the information in `host'. free:ing is handled by krb5_krbhst_free, so the returned ai must not be released. 1522<p> 1523First try this as an IP address, this allows us to add a dot at the end to stop using the search domains.<p> 1524If the hostname contains a dot, assumes it's a FQDN and don't use search domains since that might be painfully slow when machine is disconnected from that network. 1525</div> 1526</div><p> 1527<a class="anchor" name="gad9a3fd7b838f053a71424d95bf73d40"></a><!-- doxytag: member="context.c::krb5_prepend_config_files_default" ref="gad9a3fd7b838f053a71424d95bf73d40" args="(const char *filelist, char ***pfilenames)" --> 1528<div class="memitem"> 1529<div class="memproto"> 1530 <table class="memname"> 1531 <tr> 1532 <td class="memname">KRB5_LIB_FUNCTION krb5_error_code KRB5_LIB_CALL krb5_prepend_config_files_default </td> 1533 <td>(</td> 1534 <td class="paramtype">const char * </td> 1535 <td class="paramname"> <em>filelist</em>, </td> 1536 </tr> 1537 <tr> 1538 <td class="paramkey"></td> 1539 <td></td> 1540 <td class="paramtype">char *** </td> 1541 <td class="paramname"> <em>pfilenames</em></td><td> </td> 1542 </tr> 1543 <tr> 1544 <td></td> 1545 <td>)</td> 1546 <td></td><td></td><td></td> 1547 </tr> 1548 </table> 1549</div> 1550<div class="memdoc"> 1551 1552<p> 1553Prepend the filename to the global configuration list.<p> 1554<dl compact><dt><b>Parameters:</b></dt><dd> 1555 <table border="0" cellspacing="2" cellpadding="0"> 1556 <tr><td valign="top"></td><td valign="top"><em>filelist</em> </td><td>a filename to add to the default list of filename </td></tr> 1557 <tr><td valign="top"></td><td valign="top"><em>pfilenames</em> </td><td>return array of filenames, should be freed with <a class="el" href="group__krb5.html#gce1b568d05875e7c4fbc6e5af5a8bdbf">krb5_free_config_files()</a>.</td></tr> 1558 </table> 1559</dl> 1560<dl class="return" compact><dt><b>Returns:</b></dt><dd>Returns 0 to indicate success. Otherwise an kerberos et error code is returned, see krb5_get_error_message(). </dd></dl> 1561 1562</div> 1563</div><p> 1564<a class="anchor" name="gd4453861fbfc0372e3c44b59325f62aa"></a><!-- doxytag: member="context.c::krb5_set_config_files" ref="gd4453861fbfc0372e3c44b59325f62aa" args="(krb5_context context, char **filenames)" --> 1565<div class="memitem"> 1566<div class="memproto"> 1567 <table class="memname"> 1568 <tr> 1569 <td class="memname">KRB5_LIB_FUNCTION krb5_error_code KRB5_LIB_CALL krb5_set_config_files </td> 1570 <td>(</td> 1571 <td class="paramtype">krb5_context </td> 1572 <td class="paramname"> <em>context</em>, </td> 1573 </tr> 1574 <tr> 1575 <td class="paramkey"></td> 1576 <td></td> 1577 <td class="paramtype">char ** </td> 1578 <td class="paramname"> <em>filenames</em></td><td> </td> 1579 </tr> 1580 <tr> 1581 <td></td> 1582 <td>)</td> 1583 <td></td><td></td><td></td> 1584 </tr> 1585 </table> 1586</div> 1587<div class="memdoc"> 1588 1589<p> 1590Reinit the context from a new set of filenames.<p> 1591<dl compact><dt><b>Parameters:</b></dt><dd> 1592 <table border="0" cellspacing="2" cellpadding="0"> 1593 <tr><td valign="top"></td><td valign="top"><em>context</em> </td><td>context to add configuration too. </td></tr> 1594 <tr><td valign="top"></td><td valign="top"><em>filenames</em> </td><td>array of filenames, end of list is indicated with a NULL filename.</td></tr> 1595 </table> 1596</dl> 1597<dl class="return" compact><dt><b>Returns:</b></dt><dd>Returns 0 to indicate success. Otherwise an kerberos et error code is returned, see krb5_get_error_message(). </dd></dl> 1598 1599</div> 1600</div><p> 1601<a class="anchor" name="g5e028d8b3b0444c98b251f46eb48235a"></a><!-- doxytag: member="context.c::krb5_set_default_in_tkt_etypes" ref="g5e028d8b3b0444c98b251f46eb48235a" args="(krb5_context context, const krb5_enctype *etypes)" --> 1602<div class="memitem"> 1603<div class="memproto"> 1604 <table class="memname"> 1605 <tr> 1606 <td class="memname">KRB5_LIB_FUNCTION krb5_error_code KRB5_LIB_CALL krb5_set_default_in_tkt_etypes </td> 1607 <td>(</td> 1608 <td class="paramtype">krb5_context </td> 1609 <td class="paramname"> <em>context</em>, </td> 1610 </tr> 1611 <tr> 1612 <td class="paramkey"></td> 1613 <td></td> 1614 <td class="paramtype">const krb5_enctype * </td> 1615 <td class="paramname"> <em>etypes</em></td><td> </td> 1616 </tr> 1617 <tr> 1618 <td></td> 1619 <td>)</td> 1620 <td></td><td></td><td></td> 1621 </tr> 1622 </table> 1623</div> 1624<div class="memdoc"> 1625 1626<p> 1627Set the default encryption types that will be use in communcation with the KDC, clients and servers.<p> 1628<dl compact><dt><b>Parameters:</b></dt><dd> 1629 <table border="0" cellspacing="2" cellpadding="0"> 1630 <tr><td valign="top"></td><td valign="top"><em>context</em> </td><td>Kerberos 5 context. </td></tr> 1631 <tr><td valign="top"></td><td valign="top"><em>etypes</em> </td><td>Encryption types, array terminated with ETYPE_NULL (0).</td></tr> 1632 </table> 1633</dl> 1634<dl class="return" compact><dt><b>Returns:</b></dt><dd>Returns 0 to indicate success. Otherwise an kerberos et error code is returned, see krb5_get_error_message(). </dd></dl> 1635 1636</div> 1637</div><p> 1638<a class="anchor" name="g798fb21edcec6c7b251709f1e447b21b"></a><!-- doxytag: member="context.c::krb5_set_dns_canonicalize_hostname" ref="g798fb21edcec6c7b251709f1e447b21b" args="(krb5_context context, krb5_boolean flag)" --> 1639<div class="memitem"> 1640<div class="memproto"> 1641 <table class="memname"> 1642 <tr> 1643 <td class="memname">KRB5_LIB_FUNCTION void KRB5_LIB_CALL krb5_set_dns_canonicalize_hostname </td> 1644 <td>(</td> 1645 <td class="paramtype">krb5_context </td> 1646 <td class="paramname"> <em>context</em>, </td> 1647 </tr> 1648 <tr> 1649 <td class="paramkey"></td> 1650 <td></td> 1651 <td class="paramtype">krb5_boolean </td> 1652 <td class="paramname"> <em>flag</em></td><td> </td> 1653 </tr> 1654 <tr> 1655 <td></td> 1656 <td>)</td> 1657 <td></td><td></td><td></td> 1658 </tr> 1659 </table> 1660</div> 1661<div class="memdoc"> 1662 1663<p> 1664Set if the library should use DNS to canonicalize hostnames.<p> 1665<dl compact><dt><b>Parameters:</b></dt><dd> 1666 <table border="0" cellspacing="2" cellpadding="0"> 1667 <tr><td valign="top"></td><td valign="top"><em>context</em> </td><td>Kerberos 5 context. </td></tr> 1668 <tr><td valign="top"></td><td valign="top"><em>flag</em> </td><td>if its dns canonicalizion is used or not. </td></tr> 1669 </table> 1670</dl> 1671 1672</div> 1673</div><p> 1674<a class="anchor" name="g3c326674110a2d1c7d3523a0c308dddd"></a><!-- doxytag: member="context.c::krb5_set_extra_addresses" ref="g3c326674110a2d1c7d3523a0c308dddd" args="(krb5_context context, const krb5_addresses *addresses)" --> 1675<div class="memitem"> 1676<div class="memproto"> 1677 <table class="memname"> 1678 <tr> 1679 <td class="memname">KRB5_LIB_FUNCTION krb5_error_code KRB5_LIB_CALL krb5_set_extra_addresses </td> 1680 <td>(</td> 1681 <td class="paramtype">krb5_context </td> 1682 <td class="paramname"> <em>context</em>, </td> 1683 </tr> 1684 <tr> 1685 <td class="paramkey"></td> 1686 <td></td> 1687 <td class="paramtype">const krb5_addresses * </td> 1688 <td class="paramname"> <em>addresses</em></td><td> </td> 1689 </tr> 1690 <tr> 1691 <td></td> 1692 <td>)</td> 1693 <td></td><td></td><td></td> 1694 </tr> 1695 </table> 1696</div> 1697<div class="memdoc"> 1698 1699<p> 1700Set extra address to the address list that the library will add to the client's address list when communicating with the KDC.<p> 1701<dl compact><dt><b>Parameters:</b></dt><dd> 1702 <table border="0" cellspacing="2" cellpadding="0"> 1703 <tr><td valign="top"></td><td valign="top"><em>context</em> </td><td>Kerberos 5 context. </td></tr> 1704 <tr><td valign="top"></td><td valign="top"><em>addresses</em> </td><td>addreses to set</td></tr> 1705 </table> 1706</dl> 1707<dl class="return" compact><dt><b>Returns:</b></dt><dd>Returns 0 to indicate success. Otherwise an kerberos et error code is returned, see krb5_get_error_message(). </dd></dl> 1708 1709</div> 1710</div><p> 1711<a class="anchor" name="g2f77d43f11ad41cd9b5676cc73f052bc"></a><!-- doxytag: member="context.c::krb5_set_fcache_version" ref="g2f77d43f11ad41cd9b5676cc73f052bc" args="(krb5_context context, int version)" --> 1712<div class="memitem"> 1713<div class="memproto"> 1714 <table class="memname"> 1715 <tr> 1716 <td class="memname">KRB5_LIB_FUNCTION krb5_error_code KRB5_LIB_CALL krb5_set_fcache_version </td> 1717 <td>(</td> 1718 <td class="paramtype">krb5_context </td> 1719 <td class="paramname"> <em>context</em>, </td> 1720 </tr> 1721 <tr> 1722 <td class="paramkey"></td> 1723 <td></td> 1724 <td class="paramtype">int </td> 1725 <td class="paramname"> <em>version</em></td><td> </td> 1726 </tr> 1727 <tr> 1728 <td></td> 1729 <td>)</td> 1730 <td></td><td></td><td></td> 1731 </tr> 1732 </table> 1733</div> 1734<div class="memdoc"> 1735 1736<p> 1737Set version of fcache that the library should use.<p> 1738<dl compact><dt><b>Parameters:</b></dt><dd> 1739 <table border="0" cellspacing="2" cellpadding="0"> 1740 <tr><td valign="top"></td><td valign="top"><em>context</em> </td><td>Kerberos 5 context. </td></tr> 1741 <tr><td valign="top"></td><td valign="top"><em>version</em> </td><td>version number.</td></tr> 1742 </table> 1743</dl> 1744<dl class="return" compact><dt><b>Returns:</b></dt><dd>Returns 0 to indicate success. Otherwise an kerberos et error code is returned, see krb5_get_error_message(). </dd></dl> 1745 1746</div> 1747</div><p> 1748<a class="anchor" name="g3a8e40d622ff1460b2f554d83a9059ea"></a><!-- doxytag: member="context.c::krb5_set_home_dir_access" ref="g3a8e40d622ff1460b2f554d83a9059ea" args="(krb5_context context, krb5_boolean allow)" --> 1749<div class="memitem"> 1750<div class="memproto"> 1751 <table class="memname"> 1752 <tr> 1753 <td class="memname">KRB5_LIB_FUNCTION krb5_boolean KRB5_LIB_CALL krb5_set_home_dir_access </td> 1754 <td>(</td> 1755 <td class="paramtype">krb5_context </td> 1756 <td class="paramname"> <em>context</em>, </td> 1757 </tr> 1758 <tr> 1759 <td class="paramkey"></td> 1760 <td></td> 1761 <td class="paramtype">krb5_boolean </td> 1762 <td class="paramname"> <em>allow</em></td><td> </td> 1763 </tr> 1764 <tr> 1765 <td></td> 1766 <td>)</td> 1767 <td></td><td></td><td></td> 1768 </tr> 1769 </table> 1770</div> 1771<div class="memdoc"> 1772 1773<p> 1774Enable and disable home directory access on either the global state or the krb5_context state. By calling <a class="el" href="group__krb5.html#g3a8e40d622ff1460b2f554d83a9059ea">krb5_set_home_dir_access()</a> with context set to NULL, the global state is configured otherwise the state for the krb5_context is modified.<p> 1775For home directory access to be allowed, both the global state and the krb5_context state have to be allowed.<p> 1776Administrator (root user), never uses the home directory.<p> 1777<dl compact><dt><b>Parameters:</b></dt><dd> 1778 <table border="0" cellspacing="2" cellpadding="0"> 1779 <tr><td valign="top"></td><td valign="top"><em>context</em> </td><td>a Kerberos 5 context or NULL </td></tr> 1780 <tr><td valign="top"></td><td valign="top"><em>allow</em> </td><td>allow if TRUE home directory </td></tr> 1781 </table> 1782</dl> 1783<dl class="return" compact><dt><b>Returns:</b></dt><dd>the old value </dd></dl> 1784 1785</div> 1786</div><p> 1787<a class="anchor" name="g4d9823757dea2b9884c136fb959383bc"></a><!-- doxytag: member="context.c::krb5_set_ignore_addresses" ref="g4d9823757dea2b9884c136fb959383bc" args="(krb5_context context, const krb5_addresses *addresses)" --> 1788<div class="memitem"> 1789<div class="memproto"> 1790 <table class="memname"> 1791 <tr> 1792 <td class="memname">KRB5_LIB_FUNCTION krb5_error_code KRB5_LIB_CALL krb5_set_ignore_addresses </td> 1793 <td>(</td> 1794 <td class="paramtype">krb5_context </td> 1795 <td class="paramname"> <em>context</em>, </td> 1796 </tr> 1797 <tr> 1798 <td class="paramkey"></td> 1799 <td></td> 1800 <td class="paramtype">const krb5_addresses * </td> 1801 <td class="paramname"> <em>addresses</em></td><td> </td> 1802 </tr> 1803 <tr> 1804 <td></td> 1805 <td>)</td> 1806 <td></td><td></td><td></td> 1807 </tr> 1808 </table> 1809</div> 1810<div class="memdoc"> 1811 1812<p> 1813Set extra addresses to ignore when fetching addresses from the underlaying operating system.<p> 1814<dl compact><dt><b>Parameters:</b></dt><dd> 1815 <table border="0" cellspacing="2" cellpadding="0"> 1816 <tr><td valign="top"></td><td valign="top"><em>context</em> </td><td>Kerberos 5 context. </td></tr> 1817 <tr><td valign="top"></td><td valign="top"><em>addresses</em> </td><td>addreses to ignore</td></tr> 1818 </table> 1819</dl> 1820<dl class="return" compact><dt><b>Returns:</b></dt><dd>Returns 0 to indicate success. Otherwise an kerberos et error code is returned, see krb5_get_error_message(). </dd></dl> 1821 1822</div> 1823</div><p> 1824<a class="anchor" name="gfd16890e03f6dff6f6d013d97e0ee185"></a><!-- doxytag: member="context.c::krb5_set_kdc_sec_offset" ref="gfd16890e03f6dff6f6d013d97e0ee185" args="(krb5_context context, int32_t sec, int32_t usec)" --> 1825<div class="memitem"> 1826<div class="memproto"> 1827 <table class="memname"> 1828 <tr> 1829 <td class="memname">KRB5_LIB_FUNCTION krb5_error_code KRB5_LIB_CALL krb5_set_kdc_sec_offset </td> 1830 <td>(</td> 1831 <td class="paramtype">krb5_context </td> 1832 <td class="paramname"> <em>context</em>, </td> 1833 </tr> 1834 <tr> 1835 <td class="paramkey"></td> 1836 <td></td> 1837 <td class="paramtype">int32_t </td> 1838 <td class="paramname"> <em>sec</em>, </td> 1839 </tr> 1840 <tr> 1841 <td class="paramkey"></td> 1842 <td></td> 1843 <td class="paramtype">int32_t </td> 1844 <td class="paramname"> <em>usec</em></td><td> </td> 1845 </tr> 1846 <tr> 1847 <td></td> 1848 <td>)</td> 1849 <td></td><td></td><td></td> 1850 </tr> 1851 </table> 1852</div> 1853<div class="memdoc"> 1854 1855<p> 1856Set current offset in time to the KDC.<p> 1857<dl compact><dt><b>Parameters:</b></dt><dd> 1858 <table border="0" cellspacing="2" cellpadding="0"> 1859 <tr><td valign="top"></td><td valign="top"><em>context</em> </td><td>Kerberos 5 context. </td></tr> 1860 <tr><td valign="top"></td><td valign="top"><em>sec</em> </td><td>seconds part of offset. </td></tr> 1861 <tr><td valign="top"></td><td valign="top"><em>usec</em> </td><td>micro seconds part of offset.</td></tr> 1862 </table> 1863</dl> 1864<dl class="return" compact><dt><b>Returns:</b></dt><dd>returns zero </dd></dl> 1865 1866</div> 1867</div><p> 1868<a class="anchor" name="g2257aeff745924c48f12d1893d7523ba"></a><!-- doxytag: member="context.c::krb5_set_max_time_skew" ref="g2257aeff745924c48f12d1893d7523ba" args="(krb5_context context, time_t t)" --> 1869<div class="memitem"> 1870<div class="memproto"> 1871 <table class="memname"> 1872 <tr> 1873 <td class="memname">KRB5_LIB_FUNCTION void KRB5_LIB_CALL krb5_set_max_time_skew </td> 1874 <td>(</td> 1875 <td class="paramtype">krb5_context </td> 1876 <td class="paramname"> <em>context</em>, </td> 1877 </tr> 1878 <tr> 1879 <td class="paramkey"></td> 1880 <td></td> 1881 <td class="paramtype">time_t </td> 1882 <td class="paramname"> <em>t</em></td><td> </td> 1883 </tr> 1884 <tr> 1885 <td></td> 1886 <td>)</td> 1887 <td></td><td></td><td></td> 1888 </tr> 1889 </table> 1890</div> 1891<div class="memdoc"> 1892 1893<p> 1894Set max time skew allowed.<p> 1895<dl compact><dt><b>Parameters:</b></dt><dd> 1896 <table border="0" cellspacing="2" cellpadding="0"> 1897 <tr><td valign="top"></td><td valign="top"><em>context</em> </td><td>Kerberos 5 context. </td></tr> 1898 <tr><td valign="top"></td><td valign="top"><em>t</em> </td><td>timeskew in seconds. </td></tr> 1899 </table> 1900</dl> 1901 1902</div> 1903</div><p> 1904<a class="anchor" name="g02611e3966053f79eda248d76dccc282"></a><!-- doxytag: member="changepw.c::krb5_set_password" ref="g02611e3966053f79eda248d76dccc282" args="(krb5_context context, krb5_creds *creds, const char *newpw, krb5_principal targprinc, int *result_code, krb5_data *result_code_string, krb5_data *result_string)" --> 1905<div class="memitem"> 1906<div class="memproto"> 1907 <table class="memname"> 1908 <tr> 1909 <td class="memname">KRB5_LIB_FUNCTION krb5_error_code KRB5_LIB_CALL krb5_set_password </td> 1910 <td>(</td> 1911 <td class="paramtype">krb5_context </td> 1912 <td class="paramname"> <em>context</em>, </td> 1913 </tr> 1914 <tr> 1915 <td class="paramkey"></td> 1916 <td></td> 1917 <td class="paramtype">krb5_creds * </td> 1918 <td class="paramname"> <em>creds</em>, </td> 1919 </tr> 1920 <tr> 1921 <td class="paramkey"></td> 1922 <td></td> 1923 <td class="paramtype">const char * </td> 1924 <td class="paramname"> <em>newpw</em>, </td> 1925 </tr> 1926 <tr> 1927 <td class="paramkey"></td> 1928 <td></td> 1929 <td class="paramtype">krb5_principal </td> 1930 <td class="paramname"> <em>targprinc</em>, </td> 1931 </tr> 1932 <tr> 1933 <td class="paramkey"></td> 1934 <td></td> 1935 <td class="paramtype">int * </td> 1936 <td class="paramname"> <em>result_code</em>, </td> 1937 </tr> 1938 <tr> 1939 <td class="paramkey"></td> 1940 <td></td> 1941 <td class="paramtype">krb5_data * </td> 1942 <td class="paramname"> <em>result_code_string</em>, </td> 1943 </tr> 1944 <tr> 1945 <td class="paramkey"></td> 1946 <td></td> 1947 <td class="paramtype">krb5_data * </td> 1948 <td class="paramname"> <em>result_string</em></td><td> </td> 1949 </tr> 1950 <tr> 1951 <td></td> 1952 <td>)</td> 1953 <td></td><td></td><td></td> 1954 </tr> 1955 </table> 1956</div> 1957<div class="memdoc"> 1958 1959<p> 1960Change password using creds.<p> 1961<dl compact><dt><b>Parameters:</b></dt><dd> 1962 <table border="0" cellspacing="2" cellpadding="0"> 1963 <tr><td valign="top"></td><td valign="top"><em>context</em> </td><td>a Keberos context </td></tr> 1964 <tr><td valign="top"></td><td valign="top"><em>creds</em> </td><td>The initial kadmin/passwd for the principal or an admin principal </td></tr> 1965 <tr><td valign="top"></td><td valign="top"><em>newpw</em> </td><td>The new password to set </td></tr> 1966 <tr><td valign="top"></td><td valign="top"><em>targprinc</em> </td><td>if unset, the default principal is used. </td></tr> 1967 <tr><td valign="top"></td><td valign="top"><em>result_code</em> </td><td>Result code, KRB5_KPASSWD_SUCCESS is when password is changed. </td></tr> 1968 <tr><td valign="top"></td><td valign="top"><em>result_code_string</em> </td><td>binary message from the server, contains at least the result_code. </td></tr> 1969 <tr><td valign="top"></td><td valign="top"><em>result_string</em> </td><td>A message from the kpasswd service or the library in human printable form. The string is NUL terminated.</td></tr> 1970 </table> 1971</dl> 1972<dl class="return" compact><dt><b>Returns:</b></dt><dd>On sucess and *result_code is KRB5_KPASSWD_SUCCESS, the password is changed.</dd></dl> 1973@ 1974</div> 1975</div><p> 1976<a class="anchor" name="g1bb5d4ab0e2ebd85414903617b1ac36b"></a><!-- doxytag: member="time.c::krb5_set_real_time" ref="g1bb5d4ab0e2ebd85414903617b1ac36b" args="(krb5_context context, krb5_timestamp sec, int32_t usec)" --> 1977<div class="memitem"> 1978<div class="memproto"> 1979 <table class="memname"> 1980 <tr> 1981 <td class="memname">KRB5_LIB_FUNCTION krb5_error_code KRB5_LIB_CALL krb5_set_real_time </td> 1982 <td>(</td> 1983 <td class="paramtype">krb5_context </td> 1984 <td class="paramname"> <em>context</em>, </td> 1985 </tr> 1986 <tr> 1987 <td class="paramkey"></td> 1988 <td></td> 1989 <td class="paramtype">krb5_timestamp </td> 1990 <td class="paramname"> <em>sec</em>, </td> 1991 </tr> 1992 <tr> 1993 <td class="paramkey"></td> 1994 <td></td> 1995 <td class="paramtype">int32_t </td> 1996 <td class="paramname"> <em>usec</em></td><td> </td> 1997 </tr> 1998 <tr> 1999 <td></td> 2000 <td>)</td> 2001 <td></td><td></td><td></td> 2002 </tr> 2003 </table> 2004</div> 2005<div class="memdoc"> 2006 2007<p> 2008Set the absolute time that the caller knows the kdc has so the kerberos library can calculate the relative diffrence beteen the KDC time and local system time.<p> 2009<dl compact><dt><b>Parameters:</b></dt><dd> 2010 <table border="0" cellspacing="2" cellpadding="0"> 2011 <tr><td valign="top"></td><td valign="top"><em>context</em> </td><td>Keberos 5 context. </td></tr> 2012 <tr><td valign="top"></td><td valign="top"><em>sec</em> </td><td>The applications new of "now" in seconds </td></tr> 2013 <tr><td valign="top"></td><td valign="top"><em>usec</em> </td><td>The applications new of "now" in micro seconds</td></tr> 2014 </table> 2015</dl> 2016<dl class="return" compact><dt><b>Returns:</b></dt><dd>Kerberos 5 error code, see krb5_get_error_message(). </dd></dl> 2017 2018<p> 2019If the caller passes in a negative usec, its assumed to be unknown and the function will use the current time usec. 2020</div> 2021</div><p> 2022<a class="anchor" name="g3e1564b6d147482eba7bfb5e40a4ff6f"></a><!-- doxytag: member="context.c::krb5_set_use_admin_kdc" ref="g3e1564b6d147482eba7bfb5e40a4ff6f" args="(krb5_context context, krb5_boolean flag)" --> 2023<div class="memitem"> 2024<div class="memproto"> 2025 <table class="memname"> 2026 <tr> 2027 <td class="memname">KRB5_LIB_FUNCTION void KRB5_LIB_CALL krb5_set_use_admin_kdc </td> 2028 <td>(</td> 2029 <td class="paramtype">krb5_context </td> 2030 <td class="paramname"> <em>context</em>, </td> 2031 </tr> 2032 <tr> 2033 <td class="paramkey"></td> 2034 <td></td> 2035 <td class="paramtype">krb5_boolean </td> 2036 <td class="paramname"> <em>flag</em></td><td> </td> 2037 </tr> 2038 <tr> 2039 <td></td> 2040 <td>)</td> 2041 <td></td><td></td><td></td> 2042 </tr> 2043 </table> 2044</div> 2045<div class="memdoc"> 2046 2047<p> 2048Make the kerberos library default to the admin KDC.<p> 2049<dl compact><dt><b>Parameters:</b></dt><dd> 2050 <table border="0" cellspacing="2" cellpadding="0"> 2051 <tr><td valign="top"></td><td valign="top"><em>context</em> </td><td>Kerberos 5 context. </td></tr> 2052 <tr><td valign="top"></td><td valign="top"><em>flag</em> </td><td>boolean flag to select if the use the admin KDC or not. </td></tr> 2053 </table> 2054</dl> 2055 2056</div> 2057</div><p> 2058<a class="anchor" name="ga7387c09a85bf3aabe5bae8a2ec4af73"></a><!-- doxytag: member="ticket.c::krb5_ticket_get_authorization_data_type" ref="ga7387c09a85bf3aabe5bae8a2ec4af73" args="(krb5_context context, krb5_ticket *ticket, int type, krb5_data *data)" --> 2059<div class="memitem"> 2060<div class="memproto"> 2061 <table class="memname"> 2062 <tr> 2063 <td class="memname">KRB5_LIB_FUNCTION krb5_error_code KRB5_LIB_CALL krb5_ticket_get_authorization_data_type </td> 2064 <td>(</td> 2065 <td class="paramtype">krb5_context </td> 2066 <td class="paramname"> <em>context</em>, </td> 2067 </tr> 2068 <tr> 2069 <td class="paramkey"></td> 2070 <td></td> 2071 <td class="paramtype">krb5_ticket * </td> 2072 <td class="paramname"> <em>ticket</em>, </td> 2073 </tr> 2074 <tr> 2075 <td class="paramkey"></td> 2076 <td></td> 2077 <td class="paramtype">int </td> 2078 <td class="paramname"> <em>type</em>, </td> 2079 </tr> 2080 <tr> 2081 <td class="paramkey"></td> 2082 <td></td> 2083 <td class="paramtype">krb5_data * </td> 2084 <td class="paramname"> <em>data</em></td><td> </td> 2085 </tr> 2086 <tr> 2087 <td></td> 2088 <td>)</td> 2089 <td></td><td></td><td></td> 2090 </tr> 2091 </table> 2092</div> 2093<div class="memdoc"> 2094 2095<p> 2096Extract the authorization data type of type from the ticket. Store the field in data. This function is to use for kerberos applications.<p> 2097<dl compact><dt><b>Parameters:</b></dt><dd> 2098 <table border="0" cellspacing="2" cellpadding="0"> 2099 <tr><td valign="top"></td><td valign="top"><em>context</em> </td><td>a Kerberos 5 context </td></tr> 2100 <tr><td valign="top"></td><td valign="top"><em>ticket</em> </td><td>Kerberos ticket </td></tr> 2101 <tr><td valign="top"></td><td valign="top"><em>type</em> </td><td>type to fetch </td></tr> 2102 <tr><td valign="top"></td><td valign="top"><em>data</em> </td><td>returned data, free with <a class="el" href="group__krb5.html#gb4b80ac7a8bbab89fe947ae1c7828ea8">krb5_data_free()</a> </td></tr> 2103 </table> 2104</dl> 2105 2106</div> 2107</div><p> 2108<a class="anchor" name="g6cf23f11044d79441ea1456a01ebe7d7"></a><!-- doxytag: member="ticket.c::krb5_ticket_get_client" ref="g6cf23f11044d79441ea1456a01ebe7d7" args="(krb5_context context, const krb5_ticket *ticket, krb5_principal *client)" --> 2109<div class="memitem"> 2110<div class="memproto"> 2111 <table class="memname"> 2112 <tr> 2113 <td class="memname">KRB5_LIB_FUNCTION krb5_error_code KRB5_LIB_CALL krb5_ticket_get_client </td> 2114 <td>(</td> 2115 <td class="paramtype">krb5_context </td> 2116 <td class="paramname"> <em>context</em>, </td> 2117 </tr> 2118 <tr> 2119 <td class="paramkey"></td> 2120 <td></td> 2121 <td class="paramtype">const krb5_ticket * </td> 2122 <td class="paramname"> <em>ticket</em>, </td> 2123 </tr> 2124 <tr> 2125 <td class="paramkey"></td> 2126 <td></td> 2127 <td class="paramtype">krb5_principal * </td> 2128 <td class="paramname"> <em>client</em></td><td> </td> 2129 </tr> 2130 <tr> 2131 <td></td> 2132 <td>)</td> 2133 <td></td><td></td><td></td> 2134 </tr> 2135 </table> 2136</div> 2137<div class="memdoc"> 2138 2139<p> 2140Return client principal in ticket<p> 2141<dl compact><dt><b>Parameters:</b></dt><dd> 2142 <table border="0" cellspacing="2" cellpadding="0"> 2143 <tr><td valign="top"></td><td valign="top"><em>context</em> </td><td>a Kerberos 5 context </td></tr> 2144 <tr><td valign="top"></td><td valign="top"><em>ticket</em> </td><td>ticket to copy </td></tr> 2145 <tr><td valign="top"></td><td valign="top"><em>client</em> </td><td>client principal, free with <a class="el" href="group__krb5__principal.html#g5bd3f620ebe8cd4fe44b5c858ba17d22">krb5_free_principal()</a></td></tr> 2146 </table> 2147</dl> 2148<dl class="return" compact><dt><b>Returns:</b></dt><dd>Returns 0 to indicate success. Otherwise an kerberos et error code is returned, see krb5_get_error_message(). </dd></dl> 2149 2150</div> 2151</div><p> 2152<a class="anchor" name="g118b98784ccadd98cdaaa1ee5076c9fb"></a><!-- doxytag: member="ticket.c::krb5_ticket_get_endtime" ref="g118b98784ccadd98cdaaa1ee5076c9fb" args="(krb5_context context, const krb5_ticket *ticket)" --> 2153<div class="memitem"> 2154<div class="memproto"> 2155 <table class="memname"> 2156 <tr> 2157 <td class="memname">KRB5_LIB_FUNCTION time_t KRB5_LIB_CALL krb5_ticket_get_endtime </td> 2158 <td>(</td> 2159 <td class="paramtype">krb5_context </td> 2160 <td class="paramname"> <em>context</em>, </td> 2161 </tr> 2162 <tr> 2163 <td class="paramkey"></td> 2164 <td></td> 2165 <td class="paramtype">const krb5_ticket * </td> 2166 <td class="paramname"> <em>ticket</em></td><td> </td> 2167 </tr> 2168 <tr> 2169 <td></td> 2170 <td>)</td> 2171 <td></td><td></td><td></td> 2172 </tr> 2173 </table> 2174</div> 2175<div class="memdoc"> 2176 2177<p> 2178Return end time of ticket<p> 2179<dl compact><dt><b>Parameters:</b></dt><dd> 2180 <table border="0" cellspacing="2" cellpadding="0"> 2181 <tr><td valign="top"></td><td valign="top"><em>context</em> </td><td>a Kerberos 5 context </td></tr> 2182 <tr><td valign="top"></td><td valign="top"><em>ticket</em> </td><td>ticket to copy</td></tr> 2183 </table> 2184</dl> 2185<dl class="return" compact><dt><b>Returns:</b></dt><dd>end time of ticket </dd></dl> 2186 2187</div> 2188</div><p> 2189<a class="anchor" name="gd1f40ffc29f379b7dec60144eefdb553"></a><!-- doxytag: member="ticket.c::krb5_ticket_get_server" ref="gd1f40ffc29f379b7dec60144eefdb553" args="(krb5_context context, const krb5_ticket *ticket, krb5_principal *server)" --> 2190<div class="memitem"> 2191<div class="memproto"> 2192 <table class="memname"> 2193 <tr> 2194 <td class="memname">KRB5_LIB_FUNCTION krb5_error_code KRB5_LIB_CALL krb5_ticket_get_server </td> 2195 <td>(</td> 2196 <td class="paramtype">krb5_context </td> 2197 <td class="paramname"> <em>context</em>, </td> 2198 </tr> 2199 <tr> 2200 <td class="paramkey"></td> 2201 <td></td> 2202 <td class="paramtype">const krb5_ticket * </td> 2203 <td class="paramname"> <em>ticket</em>, </td> 2204 </tr> 2205 <tr> 2206 <td class="paramkey"></td> 2207 <td></td> 2208 <td class="paramtype">krb5_principal * </td> 2209 <td class="paramname"> <em>server</em></td><td> </td> 2210 </tr> 2211 <tr> 2212 <td></td> 2213 <td>)</td> 2214 <td></td><td></td><td></td> 2215 </tr> 2216 </table> 2217</div> 2218<div class="memdoc"> 2219 2220<p> 2221Return server principal in ticket<p> 2222<dl compact><dt><b>Parameters:</b></dt><dd> 2223 <table border="0" cellspacing="2" cellpadding="0"> 2224 <tr><td valign="top"></td><td valign="top"><em>context</em> </td><td>a Kerberos 5 context </td></tr> 2225 <tr><td valign="top"></td><td valign="top"><em>ticket</em> </td><td>ticket to copy </td></tr> 2226 <tr><td valign="top"></td><td valign="top"><em>server</em> </td><td>server principal, free with <a class="el" href="group__krb5__principal.html#g5bd3f620ebe8cd4fe44b5c858ba17d22">krb5_free_principal()</a></td></tr> 2227 </table> 2228</dl> 2229<dl class="return" compact><dt><b>Returns:</b></dt><dd>Returns 0 to indicate success. Otherwise an kerberos et error code is returned, see krb5_get_error_message(). </dd></dl> 2230 2231</div> 2232</div><p> 2233</div> 2234<hr size="1"><address style="text-align: right;"><small> 2235Generated on Wed Jan 11 14:07:47 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> 2236</body> 2237</html> 2238