krb5_address(3)
π krb5_address β Heimdal Kerberos 5 address functions π
okay so bestie, welcome to krb5_address(3), straight outta the Heimdal Kerberos 5 library β¨ this is the page where we deal with addresses β the whole sockaddr-to-krb5-address pipeline and back again. she's long, she's thorough, and she's lowkey iconic. let's get into it π«Ά
π SYNOPSIS π
β¨ Functions β¨
here's the whole roster, no cap β every single one of them, in order, exactly as the library declares them:
KRB5_LIB_FUNCTION krb5_error_code KRB5_LIB_CALL krb5_sockaddr2address (krb5_context context, const struct sockaddr *sa, krb5_address *addr)
KRB5_LIB_FUNCTION krb5_error_code KRB5_LIB_CALL krb5_sockaddr2port (krb5_context context, const struct sockaddr *sa, int16_t *port)
KRB5_LIB_FUNCTION krb5_error_code KRB5_LIB_CALL krb5_addr2sockaddr (krb5_context context, const krb5_address *addr, struct sockaddr *sa, krb5_socklen_t *sa_size, int port)
KRB5_LIB_FUNCTION size_t KRB5_LIB_CALL krb5_max_sockaddr_size (void)
KRB5_LIB_FUNCTION krb5_boolean KRB5_LIB_CALL krb5_sockaddr_uninteresting (const struct sockaddr *sa)
KRB5_LIB_FUNCTION krb5_error_code KRB5_LIB_CALL krb5_h_addr2sockaddr (krb5_context context, int af, const char *addr, struct sockaddr *sa, krb5_socklen_t *sa_size, int port)
KRB5_LIB_FUNCTION krb5_error_code KRB5_LIB_CALL krb5_h_addr2addr (krb5_context context, int af, const char *haddr, krb5_address *addr)
KRB5_LIB_FUNCTION krb5_error_code KRB5_LIB_CALL krb5_anyaddr (krb5_context context, int af, struct sockaddr *sa, krb5_socklen_t *sa_size, int port)
KRB5_LIB_FUNCTION krb5_error_code KRB5_LIB_CALL krb5_print_address (const krb5_address *addr, char *str, size_t len, size_t *ret_len)
KRB5_LIB_FUNCTION krb5_error_code KRB5_LIB_CALL krb5_parse_address (krb5_context context, const char *string, krb5_addresses *addresses)
KRB5_LIB_FUNCTION int KRB5_LIB_CALL krb5_address_order (krb5_context context, const krb5_address *addr1, const krb5_address *addr2)
KRB5_LIB_FUNCTION krb5_boolean KRB5_LIB_CALL krb5_address_compare (krb5_context context, const krb5_address *addr1, const krb5_address *addr2)
KRB5_LIB_FUNCTION krb5_boolean KRB5_LIB_CALL krb5_address_search (krb5_context context, const krb5_address *addr, const krb5_addresses *addrlist)
KRB5_LIB_FUNCTION krb5_error_code KRB5_LIB_CALL krb5_free_address (krb5_context context, krb5_address *address)
KRB5_LIB_FUNCTION krb5_error_code KRB5_LIB_CALL krb5_free_addresses (krb5_context context, krb5_addresses *addresses)
KRB5_LIB_FUNCTION krb5_error_code KRB5_LIB_CALL krb5_copy_address (krb5_context context, const krb5_address *inaddr, krb5_address *outaddr)
KRB5_LIB_FUNCTION krb5_error_code KRB5_LIB_CALL krb5_copy_addresses (krb5_context context, const krb5_addresses *inaddr, krb5_addresses *outaddr)
KRB5_LIB_FUNCTION krb5_error_code KRB5_LIB_CALL krb5_append_addresses (krb5_context context, krb5_addresses *dest, const krb5_addresses *source)
KRB5_LIB_FUNCTION krb5_error_code KRB5_LIB_CALL krb5_make_addrport (krb5_context context, krb5_address **res, const krb5_address *addr, int16_t port)
KRB5_LIB_FUNCTION krb5_error_code KRB5_LIB_CALL krb5_address_prefixlen_boundary (krb5_context context, const krb5_address *inaddr, unsigned long prefixlen, krb5_address *low, krb5_address *high)
twenty functions. twenty. she said "here's my whole personality" and honestly? respect π
pro tip bestie: notice they all wear the same outfit βKRB5_LIB_FUNCTIONandKRB5_LIB_CALLon the outside, and mostlykrb5_error_codeon the return. a couple of them switch it up though π keep an eye out.
πΈ Detailed Description πΈ
(the plot thickensβ¦ and yes, this page keeps going, so hold that thought π¦)
β¨ FUNCTION DOCUMENTATION β¨
Okay bestie, buckle up because this is the function-by-function tea β. Every single one, no skips. π
πΈ krb5_addr2sockaddr πΈ
KRB5_LIB_FUNCTION krb5_error_code KRB5_LIB_CALL
krb5_addr2sockaddr (krb5_context context, const krb5_address * addr,
struct sockaddr * sa, krb5_socklen_t * sa_size, int port)
krb5_addr2sockaddr sets the struct sockaddr sa 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. In case the sa is too small to fit the whole address, up to *sa_size will be stored, and then *sa_size will be set to the required length. π₯
Parameters
contextβ a Kerberos context πaddrβ the address to copy fromsaβ thestruct sockaddrthat will be filled insa_sizeβ pointer to length ofsa, and after the call, it will contain the actual length of the addressportβ set port insa
Returns
Return an error code or 0. Will return KRB5_PROG_ATYPE_NOSUPP in case address type is not supported. π
krb5_address_compare
KRB5_LIB_FUNCTION krb5_boolean KRB5_LIB_CALL
krb5_address_compare (krb5_context context, const krb5_address * addr1,
const krb5_address * addr2)
krb5_address_compare compares the addresses addr1 and addr2. Returns TRUE if the two addresses are the same. π
Parameters
contextβ a Kerberos contextaddr1β address to compareaddr2β address to compare
Returns
Return TRUE if the addresses are the same, FALSE if not.
krb5_address_order
KRB5_LIB_FUNCTION int KRB5_LIB_CALL
krb5_address_order (krb5_context context, const krb5_address * addr1,
const krb5_address * addr2)
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. Behaves like memcmp(2). π¦
Parameters
contextβ a Kerberos contextaddr1βkrb5_addressto compareaddr2βkrb5_addressto compare
Returns
< 0 if address addr1 is 'less' than addr2. 0 if addr1 and addr2 are the same address, > 0 if addr2 is 'less' than addr1.
krb5_address_prefixlen_boundary
KRB5_LIB_FUNCTION krb5_error_code KRB5_LIB_CALL
krb5_address_prefixlen_boundary (krb5_context context,
const krb5_address * inaddr,
unsigned long prefixlen,
krb5_address * low, krb5_address * high)
Calculate the boundary addresses of inaddr/prefixlen and store them in low and high. β¨
Parameters
contextβ a Kerberos contextinaddrβ address inprefixlenthat the boundary searchedprefixlenβ width of boundarylowβ lowest addresshighβ highest address
Returns
Return an error code or 0.
krb5_address_search
KRB5_LIB_FUNCTION krb5_boolean KRB5_LIB_CALL
krb5_address_search (krb5_context context, const krb5_address * addr,
const krb5_addresses * addrlist)
krb5_address_search checks if the address addr is a member of the address set list addrlist. π
Parameters
contextβ a Kerberos context.addrβ address to search for.addrlistβ list of addresses to look in foraddr.
Returns
Return an error code or 0.
krb5_anyaddr
KRB5_LIB_FUNCTION krb5_error_code KRB5_LIB_CALL
krb5_anyaddr (krb5_context context, int af, struct sockaddr * sa,
krb5_socklen_t * sa_size, int port)
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. π
Parameters
contextβ a Kerberos contextafβ address familysaβ sockaddrsa_sizeβ length ofsa.portβ for to fill intosa.
Returns
Return an error code or 0.
krb5_append_addresses
KRB5_LIB_FUNCTION krb5_error_code KRB5_LIB_CALL
krb5_append_addresses (krb5_context context, krb5_addresses * dest,
const krb5_addresses * source)
krb5_append_addresses adds the set of addresses in source to dest. While copying the addresses, duplicates are also sorted out. π
Parameters
contextβ a Kerberos contextdestβ destination of copy operationsourceβ addresses that are going to be added todest
Returns
Return an error code or 0.
krb5_copy_address
KRB5_LIB_FUNCTION krb5_error_code KRB5_LIB_CALL
krb5_copy_address (krb5_context context, const krb5_address * inaddr,
krb5_address * outaddr)
krb5_copy_address copies the content of address inaddr to outaddr. πΈ
Parameters
contextβ a Kerberos contextinaddrβ pointer to source addressoutaddrβ pointer to destination address
Returns
Return an error code or 0.
krb5_copy_addresses
KRB5_LIB_FUNCTION krb5_error_code KRB5_LIB_CALL
krb5_copy_addresses (krb5_context context, const krb5_addresses * inaddr,
krb5_addresses * outaddr)
krb5_copy_addresses copies the content of addresses inaddr to outaddr. π
Parameters
contextβ a Kerberos contextinaddrβ pointer to source addressesoutaddrβ pointer to destination addresses
Returns
Return an error code or 0.
krb5_free_address
KRB5_LIB_FUNCTION krb5_error_code KRB5_LIB_CALL
krb5_free_address (krb5_context context, krb5_address * address)
krb5_free_address frees the data stored in the address that is allocated with any of the krb5_address functions. π§
Parameters
contextβ a Kerberos contextaddressβ address to be freed.
Returns
Return an error code or 0.
krb5_free_addresses
KRB5_LIB_FUNCTION krb5_error_code KRB5_LIB_CALL
krb5_free_addresses (krb5_context context, krb5_addresses * addresses)
krb5_free_addresses frees the data stored in the address that is allocated with any of the krb5_address functions. π
Parameters
contextβ a Kerberos contextaddressesβ addresses to be freed.
Returns
Return an error code or 0.
krb5_h_addr2addr
KRB5_LIB_FUNCTION krb5_error_code KRB5_LIB_CALL
krb5_h_addr2addr (krb5_context context, int af, const char * haddr,
krb5_address * addr)
krb5_h_addr2addr works like krb5_h_addr2sockaddr with the exception that it operates on a krb5_address instead of a struct sockaddr. π
Parameters
contextβ a Kerberos contextafβ address familyhaddrβ host address fromstruct hostent.addrβ returnedkrb5_address.
Returns
Return an error code or 0.
krb5_h_addr2sockaddr
KRB5_LIB_FUNCTION krb5_error_code KRB5_LIB_CALL
krb5_h_addr2sockaddr (krb5_context context, int af, const char * addr,
struct sockaddr * sa, krb5_socklen_t * sa_size,
int port)
krb5_h_addr2sockaddr initializes a struct sockaddr sa from af and the struct hostent (see gethostbyname(3)) h_addr_list component. 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. π₯
Parameters
contextβ a Kerberos contextafβ addressesaddrβ addresssaβ returnedstruct sockaddrsa_sizeβ size ofsaportβ port to set insa.
Returns
Return an error code or 0.
krb5_make_addrport
KRB5_LIB_FUNCTION krb5_error_code KRB5_LIB_CALL
krb5_make_addrport (krb5_context context, krb5_address ** res,
const krb5_address * addr, int16_t port)
Create an address of type KRB5_ADDRESS_ADDRPORT from (addr, port). π
Parameters
contextβ a Kerberos contextresβ built address fromaddr/portaddrβ address to useportβ port to use
Returns
Return an error code or 0.
krb5_max_sockaddr_size
KRB5_LIB_FUNCTION size_t KRB5_LIB_CALL
krb5_max_sockaddr_size (void)
krb5_max_sockaddr_size returns the max size of the struct sockaddr that the Kerberos library will return. π
Returns
Return a size_t of the maximum struct sockaddr.
krb5_parse_address
KRB5_LIB_FUNCTION krb5_error_code KRB5_LIB_CALL
krb5_parse_address (krb5_context context, const char * string,
krb5_addresses * addresses)
krb5_parse_address returns the resolved hostname in string to the krb5_addresses addresses. π
Parameters
contextβ a Kerberos contextstringaddresses
Returns
Return an error code or 0.
krb5_print_address
KRB5_LIB_FUNCTION krb5_error_code KRB5_LIB_CALL
krb5_print_address (const krb5_address * addr, char * str, size_t len,
size_t * ret_len)
krb5_print_address prints the address in addr to the string str that has 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 NUL). π¨οΈ
Parameters
addrβ address to be printedstrβ pointer string to print the address intolenβ length that will fit into area pointed to bystr.ret_lenβ return length thestr.
Returns
Return an error code or 0.
krb5_sockaddr2address
KRB5_LIB_FUNCTION krb5_error_code KRB5_LIB_CALL
krb5_sockaddr2address (krb5_context context, const struct sockaddr * sa,
krb5_address * addr)
krb5_sockaddr2address stores an address a struct sockaddr sa in the krb5_address addr. π¦
Parameters
contextβ a Kerberos contextsaβ astruct sockaddrto extract the address fromaddrβ a Kerberos 5 address to store the address in.
Returns
Return an error code or 0.
krb5_sockaddr2port
KRB5_LIB_FUNCTION krb5_error_code KRB5_LIB_CALL
krb5_sockaddr2port (krb5_context context, const struct sockaddr * sa,
int16_t * port)
krb5_sockaddr2port extracts a port (if possible) from a struct sockaddr. π
Parameters
contextβ a Kerberos contextsaβ astruct sockaddrto extract the port fromportβ a pointer to anint16_tto store the port in.
Returns
Return an error code or 0. Will return KRB5_PROG_ATYPE_NOSUPP in case address type is not supported. π
krb5_sockaddr_uninteresting
KRB5_LIB_FUNCTION krb5_boolean KRB5_LIB_CALL
krb5_sockaddr_uninteresting (const struct sockaddr * sa)
krb5_sockaddr_uninteresting returns TRUE for all sa that the Kerberos library thinks are uninteresting. One example are link local addresses. π
Parameters
saβ pointer tostruct sockaddrthat might be interesting.
Returns
Return a non-zero for uninteresting addresses.
π AUTHOR π
Generated automatically by Doxygen for Heimdal Kerberos 5 library from the source code. β¨
π That's the whole vibe, bestie! This iconic page is from Version 7.8.0, dated Tue Nov 15 2022, and it's literally krb5_address(3). Bye! π
π¦ where this page comes from
- alpine 3.22: heimdal-doc 7.8.0-r4 Β· BSD-3-Clause
- alpine 3.23: heimdal-doc 7.8.0-r5 Β· BSD-3-Clause
- alpine 3.24: heimdal-doc 7.8.0-r5 Β· BSD-3-Clause
- epel 10: heimdal-devel 7.8.0-26.el10_2 Β· BSD-2-Clause AND BSD-3-Clause AND HPND-export-US AND HPND-export2-US AND LicenseRef-Fedora-Public-Domain
- epel 9: heimdal-devel 7.8.0-5.el9 Β· BSD and MIT
- fedora 43: heimdal-devel 7.8.0-26.fc43 Β· BSD-2-Clause AND BSD-3-Clause AND HPND-export-US AND HPND-export2-US AND LicenseRef-Fedora-Public-Domain
- fedora 43: heimdal-devel 7.8.0-26.fc43 Β· BSD-2-Clause AND BSD-3-Clause AND HPND-export-US AND HPND-export2-US AND LicenseRef-Fedora-Public-Domain
- fedora 44: heimdal-devel 7.8.0-26.fc43 Β· BSD-2-Clause AND BSD-3-Clause AND HPND-export-US AND HPND-export2-US AND LicenseRef-Fedora-Public-Domain
- fedora 44: heimdal-devel 7.8.0-26.fc43 Β· BSD-2-Clause AND BSD-3-Clause AND HPND-export-US AND HPND-export2-US AND LicenseRef-Fedora-Public-Domain
- fedora 44: heimdal-devel 7.8.0-28.fc44 Β· BSD-2-Clause AND BSD-3-Clause AND HPND-export-US AND HPND-export2-US AND LicenseRef-Fedora-Public-Domain
- fedora 44: heimdal-devel 7.8.0-28.fc44 Β· BSD-2-Clause AND BSD-3-Clause AND HPND-export-US AND HPND-export2-US AND LicenseRef-Fedora-Public-Domain
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash on : a language model's rewrite of the original, under its terms