HP-UX, SpamAssassin, and dccifd

Vernon Schryver vjs@calcite.rhyolite.com
Fri Apr 15 23:37:49 UTC 2005

I've found a problem with dccifd and SpamAssassin on HP-UX 11.0.  It
seems that the shutdown() system call has no effect on AF_UNIX STREAM
sockets.  This matters because the MTA-dccifd protocol consists of

   1. MTA (e.g. SpamAssassin) writes the mail envelope and
       message to dccifd via AF_UNIX or TCP/IP socket
   2. MTA uses shutdown() to say it will neer send any more data
   3. dccifd reads the envelope and message until it encounters EOF
   4. dccifd writes results back to MTA

On HP-UX 11.0, that works fine if dccifd is configured to use a TCP/IP
socket.  With an AF_UNIX socket, dccifd never awakens from the select()
or poll() system call (I tried both) after the MTA uses select.

My questions are:

 - Is this problem only on HP-UX 11.0?  Do new versions have the
    bug fixed?

 - What should I do?
    -- If all versions of HP-UX have the problem, then dccifd should
        refuse to try to use a AF_UNIX pipe on all versions.
	Is anyone using dccifd on a new version of HP-UX?

    -- Would it feasible to change the MTA-dccifd protocol so that
	if /var/dcc/dccifd is a plain file instead of an AF_UNIX socket,
	treat the contents of the file as an IP address and TCP port
	number at which dccifd will be listening.

	It looks to me as if SpamAssassin 3.0 now refuses to try dccifd
	if the file is plain instead of a pipe.

Vernon Schryver    vjs@rhyolite.com

More information about the DCC mailing list

Contact vjs@rhyolite.com by mail or use the form.