1KNET_HANDLE_ENABLE_SOCK_NOKTrIoFnYo(s3n)et Programmer'KsNEMTa_nHuAaNlDLE_ENABLE_SOCK_NOTIFY(3)
2
3
4

NAME

6       knet_handle_enable_sock_notify  - Register a callback to receive socket
7       events.
8
9

SYNOPSIS

11       #include <libknet.h>
12
13       int knet_handle_enable_sock_notify(
14           knet_handle_t  knet_h,
15           void          *sock_notify_fn_private_data,
16           void(*)(void *private_data, int datafd, int8_t channel, uint8_t tx_rx, int error, int errorno)  sock_notify_fn
17       );
18

DESCRIPTION

20       knet_handle_enable_sock_notify
21
22       knet_h - pointer to knet_handle_t
23
24       sock_notify_fn_private_data void pointer to data that can  be  used  to
25       identify the callback.
26
27       sock_notify_fn  A callback function that is invoked every time a socket
28       in the datafd pool will report an error (-1) or an end of read (0) (see
29       socket.7).  This  function  MUST NEVER block or add substantial delays.
30       The callback is invoked in an internal unlocked area to allow calls  to
31       knet_handle_add_datafd/knet_handle_remove_datafd  to  swap/replace  the
32       bad fd. if both err and errno are 0, it means that the socket  has  re‐
33       ceived a 0 byte packet (EOF?). The callback function must either remove
34       the fd from knet (by calling knet_handle_remove_fd()) or dup a  new  fd
35       in its place. Failure to do this can cause problems.
36

RETURN VALUE

38       knet_handle_enable_sock_notify returns 0 on success -1 on error and er‐
39       rno is set.
40

SEE ALSO

42       knet_handle_remove_datafd(3), knet_handle_get_stats(3),
43       knet_host_add(3), knet_handle_pmtud_setfreq(3),
44       knet_handle_pmtud_get(3), knet_handle_crypto_use_config(3),
45       knet_host_get_id_by_host_name(3), knet_host_get_status(3),
46       knet_link_add_acl(3), knet_link_get_pong_count(3),
47       knet_link_get_priority(3), knet_handle_free(3),
48       knet_handle_get_datafd(3), knet_recv(3), knet_link_get_ping_timers(3),
49       knet_log_get_subsystem_id(3), knet_host_remove(3),
50       knet_host_enable_status_change_notify(3), knet_strtoaddr(3),
51       knet_link_rm_acl(3), knet_send(3), knet_handle_enable_pmtud_notify(3),
52       knet_handle_get_transport_reconnect_interval(3),
53       knet_link_get_enable(3), knet_link_set_priority(3),
54       knet_log_set_loglevel(3), knet_handle_get_channel(3),
55       knet_link_get_config(3), knet_link_get_link_list(3),
56       knet_get_transport_list(3), knet_get_transport_id_by_name(3),
57       knet_log_get_loglevel_id(3), knet_handle_new_ex(3),
58       knet_host_set_name(3), knet_addrtostr(3), knet_handle_setfwd(3),
59       knet_get_compress_list(3), knet_host_set_policy(3),
60       knet_get_transport_name_by_id(3), knet_handle_enable_filter(3),
61       knet_handle_crypto_rx_clear_traffic(3), knet_handle_compress(3),
62       knet_link_get_status(3), knet_handle_add_datafd(3), knet_send_sync(3),
63       knet_log_get_loglevel_name(3), knet_handle_enable_access_lists(3),
64       knet_host_get_host_list(3), knet_host_get_policy(3),
65       knet_link_set_enable(3), knet_link_set_pong_count(3),
66       knet_log_get_subsystem_name(3), knet_host_get_name_by_host_id(3),
67       knet_link_clear_config(3), knet_log_get_loglevel(3),
68       knet_handle_new(3), knet_handle_pmtud_getfreq(3),
69       knet_handle_pmtud_set(3), knet_handle_clear_stats(3),
70       knet_link_set_config(3), knet_handle_crypto_set_config(3),
71       knet_handle_crypto(3), knet_get_crypto_list(3),
72       knet_handle_set_transport_reconnect_interval(3),
73       knet_link_clear_acl(3), knet_link_set_ping_timers(3),
74       knet_link_insert_acl(3)
75
77       Copyright (C) 2010-2022 Red Hat, Inc. All rights reserved.
78
79
80
81kronosnet                         2022-05-30 KNET_HANDLE_ENABLE_SOCK_NOTIFY(3)
Impressum