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
10 #include <libknet.h>
11
12 int knet_handle_enable_sock_notify(
13 knet_handle_t knet_h,
14 void *sock_notify_fn_private_data,
15 void(*)(void *private_data, int datafd, int8_t channel, uint8_t tx_rx, int error, int errorno) sock_notify_fn
16 );
17
19 knet_handle_enable_sock_notify
20
21 knet_h - pointer to knet_handle_t
22
23 sock_notify_fn_private_data void pointer to data that can be used to
24 identify the callback.
25
26 sock_notify_fn A callback function that is invoked every time a socket
27 in the datafd pool will report an error (-1) or an end of read (0) (see
28 socket.7). This function MUST NEVER block or add substantial delays.
29 The callback is invoked in an internal unlocked area to allow calls to
30 knet_handle_add_datafd/knet_handle_remove_datafd to swap/replace the
31 bad fd. if both err and errno are 0, it means that the socket has
32 received a 0 byte packet (EOF?). The callback function must either
33 remove the fd from knet (by calling knet_handle_remove_fd()) or dup a
34 new fd in its place. Failure to do this can cause problems.
35
37 knet_handle_enable_sock_notify returns 0 on success -1 on error and
38 errno is set.
39
41 knet_handle_remove_datafd(3), knet_handle_get_stats(3),
42 knet_host_add(3), knet_handle_pmtud_setfreq(3),
43 knet_handle_pmtud_get(3), knet_host_get_id_by_host_name(3),
44 knet_host_get_status(3), knet_link_add_acl(3),
45 knet_link_get_pong_count(3), knet_link_get_priority(3),
46 knet_handle_free(3), knet_handle_get_datafd(3), knet_recv(3),
47 knet_link_get_ping_timers(3), knet_log_get_subsystem_id(3),
48 knet_host_remove(3), knet_host_enable_status_change_notify(3),
49 knet_strtoaddr(3), knet_link_rm_acl(3), knet_send(3),
50 knet_handle_enable_pmtud_notify(3),
51 knet_handle_get_transport_reconnect_interval(3),
52 knet_link_get_enable(3), knet_link_set_priority(3),
53 knet_log_set_loglevel(3), knet_handle_get_channel(3),
54 knet_link_get_config(3), knet_link_get_link_list(3),
55 knet_get_transport_list(3), knet_get_transport_id_by_name(3),
56 knet_log_get_loglevel_id(3), knet_handle_new_ex(3),
57 knet_host_set_name(3), knet_addrtostr(3), knet_handle_setfwd(3),
58 knet_get_compress_list(3), knet_host_set_policy(3),
59 knet_get_transport_name_by_id(3), knet_handle_enable_filter(3),
60 knet_handle_compress(3), knet_link_get_status(3),
61 knet_handle_add_datafd(3), knet_send_sync(3),
62 knet_log_get_loglevel_name(3), knet_handle_enable_access_lists(3),
63 knet_host_get_host_list(3), knet_host_get_policy(3),
64 knet_link_set_enable(3), knet_link_set_pong_count(3),
65 knet_log_get_subsystem_name(3), knet_host_get_name_by_host_id(3),
66 knet_link_clear_config(3), knet_log_get_loglevel(3),
67 knet_handle_new(3), knet_handle_pmtud_getfreq(3),
68 knet_handle_pmtud_set(3), knet_handle_clear_stats(3),
69 knet_link_set_config(3), knet_handle_crypto(3),
70 knet_get_crypto_list(3),
71 knet_handle_set_transport_reconnect_interval(3),
72 knet_link_clear_acl(3), knet_link_set_ping_timers(3),
73 knet_link_insert_acl(3)
74
76 Copyright (C) 2010-2019 Red Hat, Inc. All rights reserved.
77
78
79
80kronosnet 2019-10-16 knet_handle_enable_sock_notify(3)