December 8, 2004 KRB5_CONTEXT 3

### NAME

krb5_add_et_list, krb5_add_extra_addresses, krb5_add_ignore_addresses, krb5_context, krb5_free_config_files, krb5_free_context, krb5_get_default_config_files, krb5_get_dns_canonize_hostname, krb5_get_extra_addresses, krb5_get_fcache_version, krb5_get_ignore_addresses, krb5_get_kdc_sec_offset, krb5_get_max_time_skew, krb5_get_use_admin_kdc krb5_init_context, krb5_init_ets, krb5_prepend_config_files, krb5_prepend_config_files_default, krb5_set_config_files, krb5_set_dns_canonize_hostname, krb5_set_extra_addresses, krb5_set_fcache_version, krb5_set_ignore_addresses, krb5_set_max_time_skew, krb5_set_use_admin_kdc, - create, modify and delete krb5_context structures

### LIBRARY

Kerberos 5 Library (libkrb5, -lkrb5)

### SYNOPSIS

```struct krb5_context;`

```krb5_error_code` krb5_init_context(`` ```krb5_context *context` )
```void` krb5_free_context(`` ```krb5_context context` )
```void` krb5_init_ets(`` ```krb5_context context` )
```krb5_error_code` krb5_add_et_list(`` ```krb5_context context` ```void (*func)(struct et_list **)` )
```krb5_error_code` krb5_add_extra_addresses(`` ```krb5_context context` ```krb5_addresses *addresses` )
```krb5_error_code` krb5_set_extra_addresses(`` ```krb5_context context` ```const krb5_addresses *addresses` )
```krb5_error_code` krb5_get_extra_addresses(`` ```krb5_context context` ```krb5_addresses *addresses` )
```krb5_error_code` krb5_add_ignore_addresses(`` ```krb5_context context` ```krb5_addresses *addresses` )
```krb5_error_code` krb5_set_ignore_addresses(`` ```krb5_context context` ```const krb5_addresses *addresses` )
```krb5_error_code` krb5_get_ignore_addresses(`` ```krb5_context context` ```krb5_addresses *addresses` )
```krb5_error_code` krb5_set_fcache_version(`` ```krb5_context context` ```int version` )
```krb5_error_code` krb5_get_fcache_version(`` ```krb5_context context` ```int *version` )
```void` krb5_set_dns_canonize_hostname(`` ```krb5_context context` ```krb5_boolean flag` )
```krb5_boolean` krb5_get_dns_canonize_hostname(`` ```krb5_context context` )
```krb5_error_code` krb5_get_kdc_sec_offset(`` ```krb5_context context` ```int32_t *sec` ```int32_t *usec` )
```krb5_error_code` krb5_set_config_files(`` ```krb5_context context` ```char **filenames` )
```krb5_error_code` krb5_prepend_config_files(`` ```const char *filelist` ```char **pq` ```char ***ret_pp` )
```krb5_error_code` krb5_prepend_config_files_default(`` ```const char *filelist` ```char ***pfilenames` )
```krb5_error_code` krb5_get_default_config_files(`` ```char ***pfilenames` )
```void` krb5_free_config_files(`` ```char **filenames` )
```void` krb5_set_use_admin_kdc(`` ```krb5_context context` ```krb5_boolean flag` )
```krb5_boolean` krb5_get_use_admin_kdc(`` ```krb5_context context` )
```time_t` krb5_get_max_time_skew(`` ```krb5_context context` )
```krb5_error_code` krb5_set_max_time_skew(`` ```krb5_context context` ```time_t time` )

### DESCRIPTION

The krb5_init_context(``) function initializes the ```context` structure and reads the configuration file ```/etc/krb5.conf`.

The structure should be freed by calling krb5_free_context(``) when it is no longer being used.

krb5_init_context(``) 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].

krb5_init_ets(``) adds all com_err(3) libs to ```context`. This is done by krb5_init_context(``).

krb5_add_et_list(``) adds a com_err(3) error-code handler ```func` to the specified ```context`. The error handler must generated by the the re-rentrant version of the compile_et(3) program. krb5_add_extra_addresses(``) add a list of addresses that should be added when requesting tickets.

krb5_add_ignore_addresses(``) add a list of addresses that should be ignored when requesting tickets.

krb5_get_extra_addresses(``) get the list of addresses that should be added when requesting tickets.

krb5_get_ignore_addresses(``) get the list of addresses that should be ignored when requesting tickets.

krb5_set_ignore_addresses(``) set the list of addresses that should be ignored when requesting tickets.

krb5_set_extra_addresses(``) set the list of addresses that should be added when requesting tickets.

krb5_set_fcache_version(``) sets the version of file credentials caches that should be used.

krb5_get_fcache_version(``) gets the version of file credentials caches that should be used.

krb5_set_dns_canonize_hostname(``) sets if the context is configured to canonicalize hostnames using DNS.

krb5_get_dns_canonize_hostname(``) returns if the context is configured to canonicalize hostnames using DNS.

krb5_get_kdc_sec_offset(``) returns the offset between the localtime and the KDC's time. ```sec` and ```usec` are both optional argument and ```NULL` can be passed in.

krb5_set_config_files(``) set the list of configuration files to use and re-initialize the configuration from the files.

krb5_prepend_config_files(``) parse the ```filelist` and prepend the result to the already existing list ```pq` The result is returned in ```ret_pp` and should be freed with krb5_free_config_files(``).

krb5_prepend_config_files_default(``) parse the ```filelist` and append that to the default list of configuration files.

krb5_get_default_config_files(``) get a list of default configuration files.

krb5_free_config_files(``) free a list of configuration files returned by krb5_get_default_config_files(``), krb5_prepend_config_files_default(``), or krb5_prepend_config_files(``).

krb5_set_use_admin_kdc(``) sets if all KDC requests should go admin KDC.

krb5_get_use_admin_kdc(``) gets if all KDC requests should go admin KDC.

krb5_get_max_time_skew(``) and krb5_set_max_time_skew(``) get and sets the maximum allowed time skew between client and server.

### SEE ALSO

errno(2), krb5(3), krb5_config(3), krb5_context(3), kerberos(8)