Branch: refs/heads/sctp-fixes Home: https://github.com/kronosnet/kronosnet Commit: d021444af6ec5842be5b8a19e169b95292a92847 https://github.com/kronosnet/kronosnet/commit/d021444af6ec5842be5b8a19e169b9... Author: Fabio M. Di Nitto fdinitto@redhat.com Date: 2020-01-22 (Wed, 22 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: f23b3833e726619848ddf9265a3e36916ed4101c https://github.com/kronosnet/kronosnet/commit/f23b3833e726619848ddf9265a3e36... Author: Fabio M. Di Nitto fdinitto@redhat.com Date: 2020-01-22 (Wed, 22 Jan 2020)
Changed paths: M libknet/transport_sctp.c
Log Message: ----------- [sctp] improve debugging output for sctp connect sockets
Signed-off-by: Fabio M. Di Nitto fdinitto@redhat.com
Commit: 7dcd25184fb5cffef9449e4697ecd9b8a98ee6fc https://github.com/kronosnet/kronosnet/commit/7dcd25184fb5cffef9449e4697ecd9... Author: Fabio M. Di Nitto fdinitto@redhat.com Date: 2020-01-22 (Wed, 22 Jan 2020)
Changed paths: M libknet/transport_sctp.c
Log Message: ----------- [sctp] check socket errors only after socket re-create process
For some unknown reasons (yet), this code used to work with older kernels, but it recently broke.
Regardless of the kernel change, it is incorrect to get the socket status before re-creating the socket and rely on the old status for the new socket behavior.
By moving the check after the socket re-creation, then knet behaves correctly.
This patch will be merged once we have a full explanation of what changed in kernel.
Original-Patch-by: Xin Long lxin@redhat.com Signed-off-by: Fabio M. Di Nitto fdinitto@redhat.com
Commit: 4dba78cd352e384b4e80d1611d7c3e8c838af0e8 https://github.com/kronosnet/kronosnet/commit/4dba78cd352e384b4e80d1611d7c3e... Author: Fabio M. Di Nitto fdinitto@redhat.com Date: 2020-01-22 (Wed, 22 Jan 2020)
Changed paths: M libknet/transport_sctp.c
Log Message: ----------- [sctp] make sctp great again on BSD
Signed-off-by: Fabio M. Di Nitto fdinitto@redhat.com
Commit: e5f390b57a8d6be8003df8c56f7f8d7a413f588c https://github.com/kronosnet/kronosnet/commit/e5f390b57a8d6be8003df8c56f7f8d... Author: Fabio M. Di Nitto fdinitto@redhat.com Date: 2020-01-22 (Wed, 22 Jan 2020)
Changed paths: M libknet/threads_rx.c M libknet/transport_sctp.c
Log Message: ----------- [sctp] change code to use only events to detect transport status
Signed-off-by: Fabio M. Di Nitto fdinitto@redhat.com
Commit: 546583e651d9eeb43024c01d9b9b3406e396f670 https://github.com/kronosnet/kronosnet/commit/546583e651d9eeb43024c01d9b9b34... Author: Christine Caulfield ccaulfie@redhat.com Date: 2020-01-22 (Wed, 22 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
Compare: https://github.com/kronosnet/kronosnet/compare/83865a0a9ebf...546583e651d9