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

SYNOPSIS

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

DESCRIPTION

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

RETURN VALUE

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

SEE ALSO

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_handle_crypto_use_config(3),
44       knet_host_get_id_by_host_name(3), knet_host_get_status(3),
45       knet_link_add_acl(3), knet_link_get_pong_count(3),
46       knet_link_get_priority(3), knet_handle_free(3),
47       knet_handle_get_datafd(3), knet_recv(3), knet_link_get_ping_timers(3),
48       knet_log_get_subsystem_id(3), knet_host_remove(3),
49       knet_host_enable_status_change_notify(3), knet_strtoaddr(3),
50       knet_link_rm_acl(3), knet_send(3), 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_crypto_rx_clear_traffic(3), knet_handle_compress(3),
61       knet_link_get_status(3), 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_set_config(3),
70       knet_handle_crypto(3), 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-2020 Red Hat, Inc. All rights reserved.
77
78
79
80kronosnet                         2020-10-19 KNET_HANDLE_ENABLE_SOCK_NOTIFY(3)
Impressum