rc_get_srcaddr(3)

πŸ“¦
version 1.5.2 Β· 4 versions
, in alpine 3.24, epel 10, fedora 43, fedora 44, nixos 26.05, nixpkgs unstable, opensuse-leap 16.0

πŸ’– rc_get_srcaddr(3) πŸ’–

okay bestie, so this one lives in the Radius client library (that's the manual family it's filed under, mwah) and it's genuinely one of the cutest little utility functions in the whole set. no cap.


✨ NAME ✨

rc_get_srcaddr -

(no fr, that's literally all the NAME section says πŸ’€ the description field is just… empty. the void. we love a mysterious queen πŸ‘‘)


🌸 SYNOPSIS 🌸

#include <radcli/radcli.h>

int rc_get_srcaddr(
    struct sockaddr        *lia,
    const struct sockaddr  *ria
);

πŸ¦‹ DESCRIPTION πŸ¦‹

Find outbound interface address for a given destination πŸ›°οΈ

Okay so here's the vibe: you hand this function a remote address, and it figures out which local address your system would use as the source address when it sends datagrams to that remote address. it's giving "which of my faces am I showing to this person" energy, and honestly? iconic.


πŸŽ€ PARAMETERS πŸŽ€

  • lia β€” the local address. this is where the answer gets dropped off πŸ’Œ (local address, bestie, that's the one you want filled in)
  • ria β€” the remote address. the destination. the one you're asking about πŸ—ΊοΈ

πŸ”₯ RETURN VALUE πŸ”₯

  • OK_RC β€” slay, it worked ✨ success, periodt.
  • NETUNREACH_RC β€” if the network is unreachable, i.e. there's literally no route to the destination πŸš«πŸ›£οΈ
  • ERROR_RC β€” for all other failures 😭

and the actual address gets filled into the first argument (lia), so that's where you go looking. 🫢


πŸ‘‘ SEE ALSO πŸ‘‘

the whole girl squad, fr fr:

radcli.h(3), rc_aaa(3), rc_aaa_ctx(3), rc_aaa_ctx_free(3), rc_aaa_ctx_get_secret(3), rc_aaa_ctx_get_vector(3), rc_aaa_ctx_server(3), rc_acct(3), rc_acct_proxy(3), rc_add_config(3), rc_apply_config(3), rc_auth(3), rc_auth_proxy(3), rc_avpair_add(3), rc_avpair_assign(3), rc_avpair_copy(3), rc_avpair_free(3), rc_avpair_gen(3), rc_avpair_get(3), rc_avpair_get_attr(3), rc_avpair_get_in6(3), rc_avpair_get_raw(3), rc_avpair_get_uint32(3), rc_avpair_insert(3), rc_avpair_log(3), rc_avpair_new(3), rc_avpair_next(3), rc_avpair_parse(3), rc_avpair_remove(3), rc_avpair_tostr(3), rc_buildreq(3), rc_check(3), rc_check_tls(3), rc_conf_int(3), rc_conf_srv(3), rc_conf_str(3), rc_config_free(3), rc_config_init(3), rc_destroy(3), rc_dict_addattr(3), rc_dict_addval(3), rc_dict_addvend(3), rc_dict_findattr(3), rc_dict_findval(3), rc_dict_findvend(3), rc_dict_free(3), rc_dict_getattr(3), rc_dict_getval(3), rc_dict_getvend(3), rc_find_server_addr(3), rc_get_socket_type(3), rc_get_srcaddr(3), rc_getport(3), rc_mksid(3), rc_new(3), rc_openlog(3), rc_own_hostname(3), rc_read_config(3), rc_read_dictionary(3), rc_read_dictionary_from_buffer(3), rc_send_server(3), rc_setdebug(3), rc_test_config(3), rc_tls_fd(3)


k bye bestie, go route something πŸ’…βœ¨

this page came from the radcli source, and the version stamp on it is 2023-01-29 β€” so if you're reading this later, that's the tea πŸ“πŸ§šπŸ’œ

πŸ“¦ where this page comes from