April 24, 2005 KRB5_SET_DEFAULT_REALM 3

### NAME

krb5_copy_host_realm, krb5_free_host_realm, krb5_get_default_realm, krb5_get_default_realms, krb5_get_host_realm, krb5_set_default_realm - default and host realm read and manipulation routines

### LIBRARY

Kerberos 5 Library (libkrb5, -lkrb5)

### SYNOPSIS

```krb5_error_code` krb5_copy_host_realm(`` ```krb5_context context` ```const krb5_realm *from` ```krb5_realm **to` )
```krb5_error_code` krb5_free_host_realm(`` ```krb5_context context` ```krb5_realm *realmlist` )
```krb5_error_code` krb5_get_default_realm(`` ```krb5_context context` ```krb5_realm *realm` )
```krb5_error_code` krb5_get_default_realms(`` ```krb5_context context` ```krb5_realm **realm` )
```krb5_error_code` krb5_get_host_realm(`` ```krb5_context context` ```const char *host` ```krb5_realm **realms` )
```krb5_error_code` krb5_set_default_realm(`` ```krb5_context context` ```const char *realm` )

### DESCRIPTION

krb5_copy_host_realm(``) copies the list of realms from ```from` to ```to`. ```to` should be freed by the caller using ```krb5_free_host_realm`.

krb5_free_host_realm(``) frees all memory allocated by ```realmlist`.

krb5_get_default_realm(``) returns the first default realm for this host. The realm returned should be freed with free(``).

krb5_get_default_realms(``) returns a ```NULL` terminated list of default realms for this context. Realms returned by krb5_get_default_realms(``) should be freed with krb5_free_host_realm(``).

krb5_get_host_realm(``) returns a ```NULL` terminated list of realms for ```host` by looking up the information in the ```[domain_realm]` in ```krb5.conf` or in ```DNS`. If the mapping in ```[domain_realm]` results in the string ```dns_locate`, DNS is used to lookup the realm.

When using ```DNS` to a resolve the domain for the host a.b.c, krb5_get_host_realm(``) looks for a ```TXT` resource record named ```_kerberos.a.b.c`, and if not found, it strips off the first component and tries a again (_kerberos.b.c) until it reaches the root.

If there is no configuration or DNS information found, krb5_get_host_realm(``) assumes it can use the domain part of the ```host` to form a realm. Caller must free ```realmlist` with krb5_free_host_realm(``).

krb5_set_default_realm(``) sets the default realm for the ```context`. If ```NULL` is used as a ```realm`, the ```[libdefaults]default_realm` stanza in ```krb5.conf` is used. If there is no such stanza in the configuration file, the krb5_get_host_realm(``) function is used to form a default realm.

### SEE ALSO

free(3), krb5.conf(5)