jammy (3) knet_handle_enable_sock_notify.3.gz

Provided by: libknet-doc_1.23-2build1_all bug

NAME

       knet_handle_enable_sock_notify - Register a callback to receive socket events.

SYNOPSIS

       #include <libknet.h>

       int knet_handle_enable_sock_notify(
           knet_handle_t  knet_h,
           void          *sock_notify_fn_private_data,
           void(*)(void *private_data, int datafd, int8_t channel, uint8_t tx_rx, int error, int errorno)  sock_notify_fn
       );

DESCRIPTION

       knet_handle_enable_sock_notify

       knet_h - pointer to knet_handle_t

       sock_notify_fn_private_data void pointer to data that can be used to identify the callback.

       sock_notify_fn  A callback function that is invoked every time a socket in the datafd pool will report an
       error (-1) or an end of read (0) (see socket.7). This  function  MUST  NEVER  block  or  add  substantial
       delays.    The   callback   is   invoked   in   an   internal   unlocked   area   to   allow   calls   to
       knet_handle_add_datafd/knet_handle_remove_datafd to swap/replace the bad fd. if both err and errno are 0,
       it  means  that  the socket has received a 0 byte packet (EOF?). The callback function must either remove
       the fd from knet (by calling knet_handle_remove_fd()) or dup a new fd in its place. Failure  to  do  this
       can cause problems.

RETURN VALUE

       knet_handle_enable_sock_notify returns 0 on success -1 on error and errno is set.

SEE ALSO

       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_get_datafd(3), knet_recv(3), knet_link_get_ping_timers(3),
       knet_log_get_subsystem_id(3), knet_host_remove(3), knet_host_enable_status_change_notify(3),
       knet_strtoaddr(3), knet_link_rm_acl(3), knet_send(3), knet_handle_enable_pmtud_notify(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_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_link_insert_acl(3)

       Copyright (C) 2010-2021 Red Hat, Inc. All rights reserved.