KNET_HOS...GE_NOTIFY(3)
π KNET_HOST_ENABLE_STATUS_CHANGE_NOTIFY π
okay bestie, gather round, because we're reading knet_host_enable_status_change_notify(3) from the Kronosnet Programmer's Manual and it's honestly such a vibe. this is the one that lets you install a lil callback so you get pinged the SECOND a host's status changes. it's giving main-character energy for your event loop. no cap. π¦
β¨ NAME β¨
knet_host_enable_status_change_notify β install a callback to get host status change events, periodt.
πΈ SYNOPSIS πΈ
#include <libknet.h>
int knet_host_enable_status_change_notify(
knet_handle_t knet_h,
void *host_status_change_notify_fn_private_data,
void(*)(void *private_data, knet_node_id_t host_id, uint8_t reachable, uint8_t remote, uint8_t external) host_status_change_notify_fn
);
like yes it's a chunky signature but she's iconic, we stan. π
π DESCRIPTION π
so, knet_host_enable_status_change_notify β that's the function, that's her name, love that for her.
knet_hβ pointer toknet_handle_t. your handle. your girl. π«Άhost_status_change_notify_fn_private_dataβ avoidpointer to data that can be used to identify the callback. literally just stash whatever you want in here so you know which callback is which, iykyk.host_status_change_notify_fnβ this is a callback function that gets invoked every time there is a change in the host status. and the host status is identified by:reachableβ meaning this host can send/receive data to/fromhost_id. π°οΈ
and the other two fields, let's break it down:
remoteβ0if thehost_idis connected locally, or1if there is one or more knet host(s) in between. NOTE: re-switching is NOT currently implemented, but this is ready for future and can avoid an API/ABI breakage later on. so it's the "for later" field, bestie, don't come for her. πexternalβ0if thehost_idis configured locally, or1if it has been added from remote nodes config. NOTE: dynamic topology is NOT currently implemented, but this is ready for future and can avoid an API/ABI breakage later on. same energy, same deal. β¨
β οΈ ok this part is IMPORTANT and I need you to hear me: This function MUST NEVER block or add substantial delays. like. do not be out here sleeping in the callback. do not be doing your little synchronous I/O. she must not block. periodt. ππ₯
π« RETURN VALUE π«
knet_host_status_change_notify returns 0 on success, -1 on error, and errno is set. classic. king behavior. π
π SEE ALSO π
okay this list is LONG and I love her for it, every single one of these is a real one, go read them, they're all so good:
knet_handle_remove_datafd(3)knet_handle_get_stats(3)knet_host_add(3)knet_handle_pmtud_setfreq(3)knet_handle_pmtud_get(3)knet_handle_crypto_use_config(3)knet_host_get_id_by_host_name(3)knet_host_get_status(3)knet_link_add_acl(3)knet_link_get_pong_count(3)knet_link_get_priority(3)knet_handle_free(3)knet_handle_enable_sock_notify(3)knet_handle_get_datafd(3)knet_recv(3)knet_link_get_ping_timers(3)knet_log_get_subsystem_id(3)knet_host_remove(3)knet_strtoaddr(3)knet_link_rm_acl(3)knet_send(3)knet_handle_enable_pmtud_notify(3)knet_get_crypto_cipher_list(3)knet_handle_get_transport_reconnect_interval(3)knet_link_get_enable(3)knet_link_set_priority(3)knet_log_set_loglevel(3)knet_handle_get_channel(3)knet_link_get_config(3)knet_link_get_link_list(3)knet_get_crypto_hash_list(3)knet_get_transport_list(3)knet_get_transport_id_by_name(3)knet_log_get_loglevel_id(3)knet_handle_new_ex(3)knet_host_set_name(3)knet_addrtostr(3)knet_handle_setfwd(3)knet_get_compress_list(3)knet_host_set_policy(3)knet_get_transport_name_by_id(3)knet_handle_enable_filter(3)knet_handle_crypto_rx_clear_traffic(3)knet_handle_compress(3)knet_link_get_status(3)knet_handle_add_datafd(3)knet_send_sync(3)knet_log_get_loglevel_name(3)knet_handle_enable_access_lists(3)knet_host_get_host_list(3)knet_host_get_policy(3)knet_link_set_enable(3)knet_link_set_pong_count(3)knet_log_get_subsystem_name(3)knet_host_get_name_by_host_id(3)knet_link_clear_config(3)knet_log_get_loglevel(3)knet_handle_new(3)knet_handle_pmtud_getfreq(3)knet_handle_pmtud_set(3)knet_handle_clear_stats(3)knet_link_set_config(3)knet_handle_crypto_set_config(3)knet_handle_crypto(3)knet_get_crypto_list(3)knet_handle_set_transport_reconnect_interval(3)knet_link_clear_acl(3)knet_link_set_ping_timers(3)knet_handle_setprio_dscp(3)knet_link_insert_acl(3)
π COPYRIGHT π
Copyright (C) 2010-2026 Red Hat, Inc. All rights reserved.
and that's the whole page, bestie!! π this was kronosnet manpage, dated 2026-07-20, filed under KNET_HOS...GE_NOTIFY(3) β yes the header is truncated with the ..., it's giving mysterious, it's giving β¨mysteryβ¨, we love a dramatic abbreviation. go forth and notify responsibly. mwah. ππ¦π
π¦ where this page comes from
- fedora 43: libknet1-devel 1.35-1.fc43 Β· LGPL-2.1-or-later
- fedora 43: libknet1-devel 1.35-1.fc43 Β· LGPL-2.1-or-later
- fedora 44: libknet1-devel 1.35-1.fc44 Β· LGPL-2.1-or-later
- fedora 44: libknet1-devel 1.35-1.fc44 Β· LGPL-2.1-or-later
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash on : a language model's rewrite of the original, under its terms