KRB5\_SET\_DEFAULT\_REALM(3) Library Functions Manual KRB5\_SET\_DEFAULT\_REALM(3)

# [NAME](#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](#LIBRARY)

Kerberos 5 Library (libkrb5, -lkrb5)

# [SYNOPSIS](#SYNOPSIS)

`#include <krb5.h>`

`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](#DESCRIPTION)

[`krb5_copy_host_realm`](#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`](#krb5_free_host_realm)() frees all memory allocated by `realmlist`.

[`krb5_get_default_realm`](#krb5_get_default_realm)() returns the first default realm for this host. The realm returned should be freed with [`krb5_xfree`](#krb5_xfree)().

[`krb5_get_default_realms`](#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`](#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`](#krb5_get_host_realm~2)() 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`](#krb5_get_host_realm~3)() 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`](#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](#SEE_ALSO)

[free(3)](/man/os/heimdal/free.3), [krb5.conf(5)](/man/os/heimdal/krb5.conf.5)

April 24, 2005 HEIMDAL

---

Document: krb5_copy_host_realm(3) from heimdal 7.8.0-r54 (Chainguard OS)
Source: https://github.com/heimdal/heimdal
