[patch] -- Re: Kernel and PF disagree on TCP RST handling

2016-02-12 Thread Tor Perkins
Please refer to my previous message for a detailed explanation. What follows is a brief rationale and a patch... The kernel should handle TCP RST packets using the same criteria as PF. PF accepts the exact SEQ and the SEQ +1/-1 case, as seen here: vi /usr/src/sys/net/pf.c +/'match on resets'

Kernel and PF disagree on TCP RST handling

2016-02-09 Thread Tor Perkins
Hello tech@, Spamd does not always detect when a connection is closed by a legit (non-spoofed) RST packet (i.e.: read() does not return -1). PF accepts the RST and clears state, but the kernel drops it and the error condition of ECONNRESET is not set for the socket. So... PF and the kernel hand