1KNET_HANDLE_ENABLE_SOCK_NOKTrIoFnYo(s3n)et Programmer'KsNEMTa_nHuAaNlDLE_ENABLE_SOCK_NOTIFY(3)
2
3
4
6 knet_handle_enable_sock_notify - Register a callback to receive socket
7 events.
8
9
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
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
38 knet_handle_enable_sock_notify returns 0 on success -1 on error and er‐
39 rno is set.
40
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-2021 Red Hat, Inc. All rights reserved.
78
79
80
81kronosnet 2021-11-15 KNET_HANDLE_ENABLE_SOCK_NOTIFY(3)