Hello! I patched netcat to support 1to1-SCTP sockets. Netcat uses the poll() system call to wait for new data in the socket buffer. The problem is that poll() does not return when the kernel has closed the SCTP association. Select() has the same problem. I digged around in the SCTP sources and created a patched to remove that bug. The patch is a one-liner: <patch> --- sctp_pcb.c.orig 2007-10-03 13:27:12.000000000 +0200 +++ sctp_pcb.c 2007-10-03 15:51:55.286987000 +0200 _at__at_ -4234,6 +4234,7 _at__at_ SS_ISCONFIRMING | SS_ISCONNECTED); } + socantrcvmore(so); SOCK_UNLOCK(so); sctp_sowwakeup(inp, so); sctp_sorwakeup(inp, so); </patch> Now I have no problems with the system calls select()/poll() anymore. Is this patch OK or have I missed anything? Regards, Martin -- PGP Key: http://www.stud.uni-hamburg.de/~kulas/mkulas_pubkey.asc
This archive was generated by hypermail 2.4.0 : Wed May 19 2021 - 11:39:18 UTC