Branch: refs/heads/master Home: https://github.com/kronosnet/kronosnet Commit: f9ec02bf78869b1a52b5b7a6d4f8c5aaa7619db4 https://github.com/kronosnet/kronosnet/commit/f9ec02bf78869b1a52b5b7a6d4f8c5... Author: Fabio M. Di Nitto fdinitto@redhat.com Date: 2020-01-31 (Fri, 31 Jan 2020)
Changed paths: M libknet/threads_rx.c
Log Message: ----------- [rx] send reply packets only when transport is connected
Signed-off-by: Fabio M. Di Nitto fdinitto@redhat.com
Commit: 042ceba7b1bd021b21da6be0e3ac5eaeaa766638 https://github.com/kronosnet/kronosnet/commit/042ceba7b1bd021b21da6be0e3ac5e... Author: Christine Caulfield ccaulfie@redhat.com Date: 2020-01-31 (Fri, 31 Jan 2020)
Changed paths: M libknet/transport_common.c M libknet/transport_sctp.c
Log Message: ----------- [rx] Don't return 512 EOF messages from _recvmmsg
If recvmsg() returns 0 for EOF then it's going to do so until the error is rectified or read with getsockopt(). But the _recvmmsg() wrapper keeps reading until the vector is full thus returning a block of 512 EOF messages all of which the caller has to plough through.
This patch causes _recvmmsg() to return as soon as it has got the first EOF so the the caller can deal with it in good time and not spin looking at the same thing over and over again.
I've also fixed a couple of typos in related comments
Commit: addc68224fc88a45fd131470f8fb9b2df3d90376 https://github.com/kronosnet/kronosnet/commit/addc68224fc88a45fd131470f8fb9b... Author: Christine Caulfield ccaulfie@redhat.com Date: 2020-01-31 (Fri, 31 Jan 2020)
Changed paths: M libknet/transport_common.c
Log Message: ----------- [tx] Don't Clear out msghdr for all transports.
When sending a message to multiple links, if one of those links is not connection-oriented then msg_name & msg_namelen would be cleared, thus breaking the send to any subsequent non-connection-oriented links.
So now, if we need to clear out msg_name & msg_namelen, we take a copy of the msghdr and edit that instead,
Commit: 14f9150eba022fb4d3f3e85803c57c4cc02798ab https://github.com/kronosnet/kronosnet/commit/14f9150eba022fb4d3f3e85803c57c... Author: Fabio M. Di Nitto fdinitto@redhat.com Date: 2020-01-31 (Fri, 31 Jan 2020)
Changed paths: M libknet/threads_rx.c M libknet/transport_udp.c M libknet/transports.h
Log Message: ----------- [rx] use defines to determine RX data types vs random numbers
also extend a bit to make ready for SCTP extra return codes
Signed-off-by: Fabio M. Di Nitto fdinitto@redhat.com
Commit: f529f6b384df21086269756b0da6c9f636ba39ca https://github.com/kronosnet/kronosnet/commit/f529f6b384df21086269756b0da6c9... Author: Fabio M. Di Nitto fdinitto@redhat.com Date: 2020-01-31 (Fri, 31 Jan 2020)
Changed paths: M README M libknet/transport_sctp.c
Log Message: ----------- [sctp] major surgery to use only SCTP events to determine socket status
- drop concept of on_connected_epoll to determine if socket is ready or not - provide much better debugging output at all levels - incorporate fix from Xin Long lxin@redhat.com to gather socket status at the right time - deal with a recent kernel change on SCTP socket that broke knet (from rhel7): [net] sctp: allow delivering notifications after receiving SHUTDOWN
Signed-off-by: Fabio M. Di Nitto fdinitto@redhat.com
Commit: d30bb29283e2044da22b1ab62fe8179118679ba5 https://github.com/kronosnet/kronosnet/commit/d30bb29283e2044da22b1ab62fe817... Author: Fabio M. Di Nitto fdinitto@redhat.com Date: 2020-01-31 (Fri, 31 Jan 2020)
Changed paths: M COPYRIGHT M Makefile.am M README M autogen.sh M build-aux/check.mk M build-aux/git-version-gen M build-aux/release.mk M configure.ac M init/Makefile.am M init/kronosnetd.default M init/kronosnetd.in M init/kronosnetd.service.in M kronosnet.spec.in M kronosnetd/Makefile.am M kronosnetd/cfg.c M kronosnetd/cfg.h M kronosnetd/etherfilter.c M kronosnetd/etherfilter.h M kronosnetd/keygen.c M kronosnetd/kronosnetd.logrotate.in M kronosnetd/logging.c M kronosnetd/logging.h M kronosnetd/main.c M kronosnetd/vty.c M kronosnetd/vty.h M kronosnetd/vty_auth.c M kronosnetd/vty_auth.h M kronosnetd/vty_cli.c M kronosnetd/vty_cli.h M kronosnetd/vty_cli_cmds.c M kronosnetd/vty_cli_cmds.h M kronosnetd/vty_utils.c M kronosnetd/vty_utils.h M libknet/Makefile.am M libknet/common.c M libknet/common.h M libknet/compat.c M libknet/compat.h M libknet/compress.c M libknet/compress.h M libknet/compress_bzip2.c M libknet/compress_lz4.c M libknet/compress_lz4hc.c M libknet/compress_lzma.c M libknet/compress_lzo2.c M libknet/compress_model.h M libknet/compress_zlib.c M libknet/compress_zstd.c M libknet/crypto.c M libknet/crypto.h M libknet/crypto_model.h M libknet/crypto_nss.c M libknet/crypto_openssl.c M libknet/handle.c M libknet/host.c M libknet/host.h M libknet/internals.h M libknet/libknet.h M libknet/libknet.pc.in M libknet/libknet_exported_syms M libknet/links.c M libknet/links.h M libknet/links_acl.c M libknet/links_acl.h M libknet/links_acl_ip.c M libknet/links_acl_ip.h M libknet/links_acl_loopback.c M libknet/links_acl_loopback.h M libknet/logging.c M libknet/logging.h M libknet/netutils.c M libknet/netutils.h M libknet/onwire.c M libknet/onwire.h M libknet/tests/Makefile.am M libknet/tests/api-check.mk M libknet/tests/api-test-coverage M libknet/tests/api_knet_addrtostr.c M libknet/tests/api_knet_get_compress_list.c M libknet/tests/api_knet_get_crypto_list.c M libknet/tests/api_knet_get_transport_id_by_name.c M libknet/tests/api_knet_get_transport_list.c M libknet/tests/api_knet_get_transport_name_by_id.c M libknet/tests/api_knet_handle_add_datafd.c M libknet/tests/api_knet_handle_clear_stats.c M libknet/tests/api_knet_handle_compress.c M libknet/tests/api_knet_handle_crypto.c M libknet/tests/api_knet_handle_enable_access_lists.c M libknet/tests/api_knet_handle_enable_filter.c M libknet/tests/api_knet_handle_enable_pmtud_notify.c M libknet/tests/api_knet_handle_enable_sock_notify.c M libknet/tests/api_knet_handle_free.c M libknet/tests/api_knet_handle_get_channel.c M libknet/tests/api_knet_handle_get_datafd.c M libknet/tests/api_knet_handle_get_stats.c M libknet/tests/api_knet_handle_get_threads_timer_res.c M libknet/tests/api_knet_handle_get_transport_reconnect_interval.c M libknet/tests/api_knet_handle_new.c M libknet/tests/api_knet_handle_new_limit.c M libknet/tests/api_knet_handle_pmtud_get.c M libknet/tests/api_knet_handle_pmtud_getfreq.c M libknet/tests/api_knet_handle_pmtud_set.c M libknet/tests/api_knet_handle_pmtud_setfreq.c M libknet/tests/api_knet_handle_remove_datafd.c M libknet/tests/api_knet_handle_set_threads_timer_res.c M libknet/tests/api_knet_handle_set_transport_reconnect_interval.c M libknet/tests/api_knet_handle_setfwd.c M libknet/tests/api_knet_host_add.c M libknet/tests/api_knet_host_enable_status_change_notify.c M libknet/tests/api_knet_host_get_host_list.c M libknet/tests/api_knet_host_get_id_by_host_name.c M libknet/tests/api_knet_host_get_name_by_host_id.c M libknet/tests/api_knet_host_get_policy.c M libknet/tests/api_knet_host_get_status.c M libknet/tests/api_knet_host_remove.c M libknet/tests/api_knet_host_set_name.c M libknet/tests/api_knet_host_set_policy.c M libknet/tests/api_knet_link_add_acl.c M libknet/tests/api_knet_link_clear_acl.c M libknet/tests/api_knet_link_clear_config.c M libknet/tests/api_knet_link_enable_status_change_notify.c M libknet/tests/api_knet_link_get_config.c M libknet/tests/api_knet_link_get_enable.c M libknet/tests/api_knet_link_get_link_list.c M libknet/tests/api_knet_link_get_ping_timers.c M libknet/tests/api_knet_link_get_pong_count.c M libknet/tests/api_knet_link_get_priority.c M libknet/tests/api_knet_link_get_status.c M libknet/tests/api_knet_link_insert_acl.c M libknet/tests/api_knet_link_rm_acl.c M libknet/tests/api_knet_link_set_config.c M libknet/tests/api_knet_link_set_enable.c M libknet/tests/api_knet_link_set_ping_timers.c M libknet/tests/api_knet_link_set_pong_count.c M libknet/tests/api_knet_link_set_priority.c M libknet/tests/api_knet_log_get_loglevel.c M libknet/tests/api_knet_log_get_loglevel_id.c M libknet/tests/api_knet_log_get_loglevel_name.c M libknet/tests/api_knet_log_get_subsystem_id.c M libknet/tests/api_knet_log_get_subsystem_name.c M libknet/tests/api_knet_log_set_loglevel.c M libknet/tests/api_knet_recv.c M libknet/tests/api_knet_send.c M libknet/tests/api_knet_send_compress.c M libknet/tests/api_knet_send_crypto.c M libknet/tests/api_knet_send_loopback.c M libknet/tests/api_knet_send_sync.c M libknet/tests/api_knet_strtoaddr.c M libknet/tests/fun_pmtud_crypto.c M libknet/tests/int_links_acl_ip.c M libknet/tests/int_timediff.c M libknet/tests/knet_bench.c M libknet/tests/pckt_test.c M libknet/tests/test-common.c M libknet/tests/test-common.h M libknet/threads_common.c M libknet/threads_common.h M libknet/threads_dsthandler.c M libknet/threads_dsthandler.h M libknet/threads_heartbeat.c M libknet/threads_heartbeat.h M libknet/threads_pmtud.c M libknet/threads_pmtud.h M libknet/threads_rx.c M libknet/threads_rx.h M libknet/threads_tx.c M libknet/threads_tx.h M libknet/transport_common.c M libknet/transport_common.h M libknet/transport_loopback.c M libknet/transport_loopback.h M libknet/transport_sctp.c M libknet/transport_sctp.h M libknet/transport_udp.c M libknet/transport_udp.h M libknet/transports.c M libknet/transports.h M libnozzle/Makefile.am M libnozzle/internals.c M libnozzle/internals.h M libnozzle/libnozzle.c M libnozzle/libnozzle.h M libnozzle/libnozzle.pc.in M libnozzle/libnozzle_exported_syms M libnozzle/tests/Makefile.am M libnozzle/tests/api-test-coverage M libnozzle/tests/api_nozzle_add_ip.c M libnozzle/tests/api_nozzle_close.c M libnozzle/tests/api_nozzle_del_ip.c M libnozzle/tests/api_nozzle_get_fd.c M libnozzle/tests/api_nozzle_get_handle_by_name.c M libnozzle/tests/api_nozzle_get_ips.c M libnozzle/tests/api_nozzle_get_mac.c M libnozzle/tests/api_nozzle_get_mtu.c M libnozzle/tests/api_nozzle_get_name_by_handle.c M libnozzle/tests/api_nozzle_open.c M libnozzle/tests/api_nozzle_run_updown.c M libnozzle/tests/api_nozzle_set_down.c M libnozzle/tests/api_nozzle_set_mac.c M libnozzle/tests/api_nozzle_set_mtu.c M libnozzle/tests/api_nozzle_set_up.c M libnozzle/tests/int_execute_bin_sh_command.c M libnozzle/tests/nozzle_run_updown_exit_false M libnozzle/tests/nozzle_run_updown_exit_true M libnozzle/tests/test-common.c M libnozzle/tests/test-common.h M man/Doxyfile-knet.in M man/Doxyfile-nozzle.in M man/Makefile.am M man/api-to-man-page-coverage M man/knet-keygen.8 M man/kronosnetd.8 M poc-code/Makefile.am M poc-code/iov-hash/Makefile.am M poc-code/iov-hash/main.c
Log Message: ----------- [global] Update copyright across the board
Signed-off-by: Fabio M. Di Nitto fdinitto@redhat.com
Commit: cc12097786d8dadd58b23a03820f80c34139be8f https://github.com/kronosnet/kronosnet/commit/cc12097786d8dadd58b23a03820f80... Author: Fabio M. Di Nitto fdinitto@redhat.com Date: 2020-01-31 (Fri, 31 Jan 2020)
Changed paths: M COPYRIGHT M Makefile.am M README M autogen.sh M build-aux/check.mk M build-aux/git-version-gen M build-aux/release.mk M configure.ac M init/Makefile.am M init/kronosnetd.default M init/kronosnetd.in M init/kronosnetd.service.in M kronosnet.spec.in M kronosnetd/Makefile.am M kronosnetd/cfg.c M kronosnetd/cfg.h M kronosnetd/etherfilter.c M kronosnetd/etherfilter.h M kronosnetd/keygen.c M kronosnetd/kronosnetd.logrotate.in M kronosnetd/logging.c M kronosnetd/logging.h M kronosnetd/main.c M kronosnetd/vty.c M kronosnetd/vty.h M kronosnetd/vty_auth.c M kronosnetd/vty_auth.h M kronosnetd/vty_cli.c M kronosnetd/vty_cli.h M kronosnetd/vty_cli_cmds.c M kronosnetd/vty_cli_cmds.h M kronosnetd/vty_utils.c M kronosnetd/vty_utils.h M libknet/Makefile.am M libknet/common.c M libknet/common.h M libknet/compat.c M libknet/compat.h M libknet/compress.c M libknet/compress.h M libknet/compress_bzip2.c M libknet/compress_lz4.c M libknet/compress_lz4hc.c M libknet/compress_lzma.c M libknet/compress_lzo2.c M libknet/compress_model.h M libknet/compress_zlib.c M libknet/compress_zstd.c M libknet/crypto.c M libknet/crypto.h M libknet/crypto_model.h M libknet/crypto_nss.c M libknet/crypto_openssl.c M libknet/handle.c M libknet/host.c M libknet/host.h M libknet/internals.h M libknet/libknet.h M libknet/libknet.pc.in M libknet/libknet_exported_syms M libknet/links.c M libknet/links.h M libknet/links_acl.c M libknet/links_acl.h M libknet/links_acl_ip.c M libknet/links_acl_ip.h M libknet/links_acl_loopback.c M libknet/links_acl_loopback.h M libknet/logging.c M libknet/logging.h M libknet/netutils.c M libknet/netutils.h M libknet/onwire.c M libknet/onwire.h M libknet/tests/Makefile.am M libknet/tests/api-check.mk M libknet/tests/api-test-coverage M libknet/tests/api_knet_addrtostr.c M libknet/tests/api_knet_get_compress_list.c M libknet/tests/api_knet_get_crypto_list.c M libknet/tests/api_knet_get_transport_id_by_name.c M libknet/tests/api_knet_get_transport_list.c M libknet/tests/api_knet_get_transport_name_by_id.c M libknet/tests/api_knet_handle_add_datafd.c M libknet/tests/api_knet_handle_clear_stats.c M libknet/tests/api_knet_handle_compress.c M libknet/tests/api_knet_handle_crypto.c M libknet/tests/api_knet_handle_enable_access_lists.c M libknet/tests/api_knet_handle_enable_filter.c M libknet/tests/api_knet_handle_enable_pmtud_notify.c M libknet/tests/api_knet_handle_enable_sock_notify.c M libknet/tests/api_knet_handle_free.c M libknet/tests/api_knet_handle_get_channel.c M libknet/tests/api_knet_handle_get_datafd.c M libknet/tests/api_knet_handle_get_stats.c M libknet/tests/api_knet_handle_get_threads_timer_res.c M libknet/tests/api_knet_handle_get_transport_reconnect_interval.c M libknet/tests/api_knet_handle_new.c M libknet/tests/api_knet_handle_new_limit.c M libknet/tests/api_knet_handle_pmtud_get.c M libknet/tests/api_knet_handle_pmtud_getfreq.c M libknet/tests/api_knet_handle_pmtud_set.c M libknet/tests/api_knet_handle_pmtud_setfreq.c M libknet/tests/api_knet_handle_remove_datafd.c M libknet/tests/api_knet_handle_set_threads_timer_res.c M libknet/tests/api_knet_handle_set_transport_reconnect_interval.c M libknet/tests/api_knet_handle_setfwd.c M libknet/tests/api_knet_host_add.c M libknet/tests/api_knet_host_enable_status_change_notify.c M libknet/tests/api_knet_host_get_host_list.c M libknet/tests/api_knet_host_get_id_by_host_name.c M libknet/tests/api_knet_host_get_name_by_host_id.c M libknet/tests/api_knet_host_get_policy.c M libknet/tests/api_knet_host_get_status.c M libknet/tests/api_knet_host_remove.c M libknet/tests/api_knet_host_set_name.c M libknet/tests/api_knet_host_set_policy.c M libknet/tests/api_knet_link_add_acl.c M libknet/tests/api_knet_link_clear_acl.c M libknet/tests/api_knet_link_clear_config.c M libknet/tests/api_knet_link_enable_status_change_notify.c M libknet/tests/api_knet_link_get_config.c M libknet/tests/api_knet_link_get_enable.c M libknet/tests/api_knet_link_get_link_list.c M libknet/tests/api_knet_link_get_ping_timers.c M libknet/tests/api_knet_link_get_pong_count.c M libknet/tests/api_knet_link_get_priority.c M libknet/tests/api_knet_link_get_status.c M libknet/tests/api_knet_link_insert_acl.c M libknet/tests/api_knet_link_rm_acl.c M libknet/tests/api_knet_link_set_config.c M libknet/tests/api_knet_link_set_enable.c M libknet/tests/api_knet_link_set_ping_timers.c M libknet/tests/api_knet_link_set_pong_count.c M libknet/tests/api_knet_link_set_priority.c M libknet/tests/api_knet_log_get_loglevel.c M libknet/tests/api_knet_log_get_loglevel_id.c M libknet/tests/api_knet_log_get_loglevel_name.c M libknet/tests/api_knet_log_get_subsystem_id.c M libknet/tests/api_knet_log_get_subsystem_name.c M libknet/tests/api_knet_log_set_loglevel.c M libknet/tests/api_knet_recv.c M libknet/tests/api_knet_send.c M libknet/tests/api_knet_send_compress.c M libknet/tests/api_knet_send_crypto.c M libknet/tests/api_knet_send_loopback.c M libknet/tests/api_knet_send_sync.c M libknet/tests/api_knet_strtoaddr.c M libknet/tests/fun_pmtud_crypto.c M libknet/tests/int_links_acl_ip.c M libknet/tests/int_timediff.c M libknet/tests/knet_bench.c M libknet/tests/pckt_test.c M libknet/tests/test-common.c M libknet/tests/test-common.h M libknet/threads_common.c M libknet/threads_common.h M libknet/threads_dsthandler.c M libknet/threads_dsthandler.h M libknet/threads_heartbeat.c M libknet/threads_heartbeat.h M libknet/threads_pmtud.c M libknet/threads_pmtud.h M libknet/threads_rx.c M libknet/threads_rx.h M libknet/threads_tx.c M libknet/threads_tx.h M libknet/transport_common.c M libknet/transport_common.h M libknet/transport_loopback.c M libknet/transport_loopback.h M libknet/transport_sctp.c M libknet/transport_sctp.h M libknet/transport_udp.c M libknet/transport_udp.h M libknet/transports.c M libknet/transports.h M libnozzle/Makefile.am M libnozzle/internals.c M libnozzle/internals.h M libnozzle/libnozzle.c M libnozzle/libnozzle.h M libnozzle/libnozzle.pc.in M libnozzle/libnozzle_exported_syms M libnozzle/tests/Makefile.am M libnozzle/tests/api-test-coverage M libnozzle/tests/api_nozzle_add_ip.c M libnozzle/tests/api_nozzle_close.c M libnozzle/tests/api_nozzle_del_ip.c M libnozzle/tests/api_nozzle_get_fd.c M libnozzle/tests/api_nozzle_get_handle_by_name.c M libnozzle/tests/api_nozzle_get_ips.c M libnozzle/tests/api_nozzle_get_mac.c M libnozzle/tests/api_nozzle_get_mtu.c M libnozzle/tests/api_nozzle_get_name_by_handle.c M libnozzle/tests/api_nozzle_open.c M libnozzle/tests/api_nozzle_run_updown.c M libnozzle/tests/api_nozzle_set_down.c M libnozzle/tests/api_nozzle_set_mac.c M libnozzle/tests/api_nozzle_set_mtu.c M libnozzle/tests/api_nozzle_set_up.c M libnozzle/tests/int_execute_bin_sh_command.c M libnozzle/tests/nozzle_run_updown_exit_false M libnozzle/tests/nozzle_run_updown_exit_true M libnozzle/tests/test-common.c M libnozzle/tests/test-common.h M man/Doxyfile-knet.in M man/Doxyfile-nozzle.in M man/Makefile.am M man/api-to-man-page-coverage M man/knet-keygen.8 M man/kronosnetd.8 M poc-code/Makefile.am M poc-code/iov-hash/Makefile.am M poc-code/iov-hash/main.c
Log Message: ----------- Merge pull request #284 from kronosnet/sctp-fixes
Sctp fixes
Compare: https://github.com/kronosnet/kronosnet/compare/65e818b30e38...cc12097786d8