KRB5_ADDRESS(3) BSD Library Functions Manual KRB5_ADDRESS(3)NAME
krb5_address, krb5_addresses, krb5_sockaddr2address, krb5_sockaddr2port,
krb5_addr2sockaddr, krb5_max_sockaddr_size, krb5_sockaddr_uninteresting,
krb5_h_addr2sockaddr, krb5_h_addr2addr, krb5_anyaddr, krb5_print_address,
krb5_parse_address, krb5_address_order, krb5_address_compare,
krb5_address_search, krb5_free_address, krb5_free_addresses,
krb5_copy_address, krb5_copy_addresses, krb5_append_addresses,
krb5_make_addrport — mange addresses in Kerberos
LIBRARY
Kerberos 5 Library (libkrb5, -lkrb5)
SYNOPSIS
#include <krb5.h>
krb5_error_code
krb5_sockaddr2address(krb5_context context, const struct sockaddr *sa,
krb5_address *addr);
krb5_error_code
krb5_sockaddr2port(krb5_context context, const struct sockaddr *sa,
int16_t *port);
krb5_error_code
krb5_addr2sockaddr(krb5_context context, const krb5_address *addr,
struct sockaddr *sa, krb5_socklen_t *sa_size, int port);
size_t
krb5_max_sockaddr_size(void);
krb5_boolean
krb5_sockaddr_uninteresting(const struct sockaddr *sa);
krb5_error_code
krb5_h_addr2sockaddr(krb5_context context, int af, const char *addr,
struct sockaddr *sa, krb5_socklen_t *sa_size, int port);
krb5_error_code
krb5_h_addr2addr(krb5_context context, int af, const char *haddr,
krb5_address *addr);
krb5_error_code
krb5_anyaddr(krb5_context context, int af, struct sockaddr *sa,
krb5_socklen_t *sa_size, int port);
krb5_error_code
krb5_print_address(const krb5_address *addr, char *str, size_t len,
size_t *ret_len);
krb5_error_code
krb5_parse_address(krb5_context context, const char *string,
krb5_addresses *addresses);
int
krb5_address_order(krb5_context context, const krb5_address *addr1,
const krb5_address *addr2);
krb5_boolean
krb5_address_compare(krb5_context context, const krb5_address *addr1,
const krb5_address *addr2);
krb5_boolean
krb5_address_search(krb5_context context, const krb5_address *addr,
const krb5_addresses *addrlist);
krb5_error_code
krb5_free_address(krb5_context context, krb5_address *address);
krb5_error_code
krb5_free_addresses(krb5_context context, krb5_addresses *addresses);
krb5_error_code
krb5_copy_address(krb5_context context, const krb5_address *inaddr,
krb5_address *outaddr);
krb5_error_code
krb5_copy_addresses(krb5_context context, const krb5_addresses *inaddr,
krb5_addresses *outaddr);
krb5_error_code
krb5_append_addresses(krb5_context context, krb5_addresses *dest,
const krb5_addresses *source);
krb5_error_code
krb5_make_addrport(krb5_context context, krb5_address **res,
const krb5_address *addr, int16_t port);
DESCRIPTION
The krb5_address structure holds a address that can be used in Kerberos
API calls. There are help functions to set and extract address informa‐
tion of the address.
The krb5_addresses structure holds a set of krb5_address:es.
krb5_sockaddr2address() stores a address a struct sockaddr sa in the
krb5_address addr.
krb5_sockaddr2port() extracts a port (if possible) from a struct sockaddr
sa.
krb5_addr2sockaddr() sets the struct sockaddr sockaddr from addr and
port. The argument sa_size should initially contain the size of the sa,
and after the call, it will contain the actual length of the address.
krb5_max_sockaddr_size() returns the max size of the struct sockaddr that
the Kerberos library will return.
krb5_sockaddr_uninteresting() returns TRUE for all sa that the kerberos
library thinks are uninteresting. One example are link local addresses.
krb5_h_addr2sockaddr() initializes a struct sockaddr sa from af and the
struct hostent (see gethostbyname(3)) h_addr_list component. The argu‐
ment sa_size should initially contain the size of the sa, and after the
call, it will contain the actual length of the address.
krb5_h_addr2addr() works like krb5_h_addr2sockaddr() with the exception
that it operates on a krb5_address instead of a struct sockaddr.
krb5_anyaddr() fills in a struct sockaddr sa that can be used to bind(2)
to. The argument sa_size should initially contain the size of the sa,
and after the call, it will contain the actual length of the address.
krb5_print_address() prints the address in addr to the string string that
have the length len. If ret_len is not NULL, it will be filled with the
length of the string if size were unlimited (not including the final
‘\0’).
krb5_parse_address() Returns the resolved hostname in string to the
krb5_addresses addresses.
krb5_address_order() compares the addresses addr1 and addr2 so that it
can be used for sorting addresses. If the addresses are the same address
krb5_address_order will return 0.
krb5_address_compare() compares the addresses addr1 and addr2. Returns
TRUE if the two addresses are the same.
krb5_address_search() checks if the address addr is a member of the
address set list addrlist.
krb5_free_address() frees the data stored in the address that is alloced
with any of the krb5_address functions.
krb5_free_addresses() frees the data stored in the addresses that is
alloced with any of the krb5_address functions.
krb5_copy_address() copies the content of address inaddr to outaddr.
krb5_copy_addresses() copies the content of the address list inaddr to
outaddr.
krb5_append_addresses() adds the set of addresses in source to dest.
While copying the addresses, duplicates are also sorted out.
krb5_make_addrport() allocates and creates an krb5_address in res of type
KRB5_ADDRESS_ADDRPORT from (addr, port).
SEE ALSOkrb5(3), krb5.conf(5), kerberos(8)HEIMDAL May 1, 2006 HEIMDAL