http://bugzilla.spamassassin.org/show_bug.cgi?id=3917
------- Additional Comments From [EMAIL PROTECTED] 2004-11-21 00:25 ------- Ok, I read the thread over more carefully and did some experiments. It doesn't seem to have anything to do with our problem. I already early in this whole issue eliminated my Symantec firewall as a cause by uninstalling it... I had hoped when I read the excerpt that I quoted here which mentioned registry entries that he had found some change to the registry that was not undone by an uninstall. But no, he just talked about forcing NIS not to load at boot time, which is certainly taken care of by an uninstall. Also, tracking back to the beginning of the thread it turns out that he was seeing a problem with shutdown() killing the connection immediately even with small messages. What we are dealing with does seem like Windows behavior that happens when more than 50k bytes are sent out before the shutdown. I still find it really strange that I have found no mention of this anywhere through Google. I guess it is unusual for a protocol to have one side send a very long data stream without then waiting for some kind of acknowledgement from the other side? Here's something that might work with minimal impact on the use of spamd/spamc on other platforms. The only problem is that it requires a small change to spamc and a change to spamd under Cygwin that causes it to only work with the newer spamc. But old spamc will continue to work with spamd on non-Windows platforms. Right now spamc writes the raw message to the spamd socket, does a shutdown of the write direction (SHUT_WR), then reads the filtered message from the spamd socket, then does a shutdown of the read direction (SHUT_RD) and a closesocket. What I propose is that it add a command line option to spamc to not do the first shutdown. The second shutdown will always be SHUT_RDWR. That way, if spamc is being used with a Windows spamd, the option will allow spamd to check for the socket having been shut down by the client before it calls shutdown. Spamd can do that check only if it is running under Cygwin. The check can be with a timeout so the worst case it is equivalent to sleeping before the call to shutdown. The behavior of spamd under Cygwin with an old spamc would be the same as it is now, but no worse. I'll test out the idea and put up a patch for spamd.raw and libspamc.c unless someone has objections to that approach. ------- You are receiving this mail because: ------- You are the assignee for the bug, or are watching the assignee.
