.\" File automatically generated by doxy2man0.2 .\" Generation date: Thu Nov 23 2017 .TH knet_handle_enable_sock_notify 3 2017-11-23 "kronosnet" "Kronosnet Programmer's Manual" .SH "NAME" knet_handle_enable_sock_notify \- Register a callback to receive socket events. .SH SYNOPSIS .nf .B #include .sp \fBint knet_handle_enable_sock_notify\fP( \fBknet_handle_t \fP\fIknet_h\fP, \fBvoid *\fP\fIsock_notify_fn_private_data\fP, \fBvoid(*)(void *private_data, int datafd, int8_t channel, uint8_t tx_rx, int error, int errorno) \fP\fIsock_notify_fn\fP ); .fi .SH DESCRIPTION .PP knet_handle_enable_sock_notify knet_h - pointer to knet_handle_t .PP sock_notify_fn_private_data void pointer to data that can be used to identify the callback. .PP 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. .SH RETURN VALUE .PP knet_handle_enable_sock_notify returns 0 on success -1 on error and errno is set. .SH SEE ALSO .PP .nh .ad l \fIlibknet.h\fP(3), \fIknet_addrtostr\fP(3), \fIknet_get_compress_list\fP(3), \fIknet_get_crypto_list\fP(3), \fIknet_get_transport_id_by_name\fP(3), \fIknet_get_transport_list\fP(3), \fIknet_get_transport_name_by_id\fP(3), \fIknet_handle_add_datafd\fP(3), \fIknet_handle_clear_stats\fP(3), \fIknet_handle_compress\fP(3), \fIknet_handle_crypto\fP(3), \fIknet_handle_enable_filter\fP(3), \fIknet_handle_enable_pmtud_notify\fP(3), \fIknet_handle_enable_sock_notify\fP(3), \fIknet_handle_free\fP(3), \fIknet_handle_get_channel\fP(3), \fIknet_handle_get_datafd\fP(3), \fIknet_handle_get_stats\fP(3), \fIknet_handle_get_transport_reconnect_interval\fP(3), \fIknet_handle_new\fP(3), \fIknet_handle_pmtud_get\fP(3), \fIknet_handle_pmtud_getfreq\fP(3), \fIknet_handle_pmtud_setfreq\fP(3), \fIknet_handle_remove_datafd\fP(3), \fIknet_handle_set_transport_reconnect_interval\fP(3), \fIknet_handle_setfwd\fP(3), \fIknet_host_add\fP(3), \fIknet_host_enable_status_change_notify\fP(3), \fIknet_host_get_host_list\fP(3), \fIknet_host_get_id_by_host_name\fP(3), \fIknet_host_get_name_by_host_id\fP(3), \fIknet_host_get_policy\fP(3), \fIknet_host_get_status\fP(3), \fIknet_host_remove\fP(3), \fIknet_host_set_name\fP(3), \fIknet_host_set_policy\fP(3), \fIknet_link_clear_config\fP(3), \fIknet_link_get_config\fP(3), \fIknet_link_get_enable\fP(3), \fIknet_link_get_link_list\fP(3), \fIknet_link_get_ping_timers\fP(3), \fIknet_link_get_pong_count\fP(3), \fIknet_link_get_priority\fP(3), \fIknet_link_get_status\fP(3), \fIknet_link_set_config\fP(3), \fIknet_link_set_enable\fP(3), \fIknet_link_set_ping_timers\fP(3), \fIknet_link_set_pong_count\fP(3), \fIknet_link_set_priority\fP(3), \fIknet_log_get_loglevel\fP(3), \fIknet_log_get_loglevel_id\fP(3), \fIknet_log_get_loglevel_name\fP(3), \fIknet_log_get_subsystem_id\fP(3), \fIknet_log_get_subsystem_name\fP(3), \fIknet_log_set_loglevel\fP(3), \fIknet_recv\fP(3), \fIknet_send\fP(3), \fIknet_send_sync\fP(3), \fIknet_strtoaddr\fP(3) .ad .hy .SH COPYRIGHT .PP Copyright (C) 2010-2017 Red Hat, Inc. All rights reserved.