Re: [Exim] PSH flag problems

Top Page
Delete this message
Reply to this message
Author: Phil Pennock
Date:  
To: Exim Users Mailing List
Subject: Re: [Exim] PSH flag problems
On 2002-04-03 at 09:05 -0500, John Dalbec wrote:
> Red Hat claims that the RFCs do not require it to send a PUSH bit on the
> last packet of a write() to a socket.


Stevens tells us that the PSH flag is set if the packet being set
empties the send buffer.

TCP/IP Illustrated, Volume 2, Section 26.7.

As for standards, RFC 1122 "Requirements for Internet Hosts --
Communication Layers", part of STD 3. Section 4.2.2.2,
"Use of Push: RFC-793 Section 2.8":

-----------------------------< cut here >-------------------------------
            A TCP MAY implement PUSH flags on SEND calls.  If PUSH flags
            are not implemented, then the sending TCP: (1) must not
            buffer data indefinitely, and (2) MUST set the PSH bit in
            the last buffered segment (i.e., when there is no more
            queued data to be sent).
-----------------------------< cut here >-------------------------------


And then in "4.2.5 TCP REQUIREMENT SUMMARY"

  SEND call can specify PUSH                   MAY
    If cannot: sender buffer indefinitely      MUST NOT
    If cannot: PSH last segment                MUST



BSD systems do not document a way for send(2) to set the PSH flag
explicitly. On a Debian box running Linux 2.4.10, the man page for
send(2) does not document such a method. I appear to not currently have
remote access to a RedHat box.

If RedHat have decided to be different, and have documented a method for
ensuring that PSH is sent, then perhaps they'd be so kind as to actively
promote this fact to developers. I for one have no intention of wasting
my time trying to navigate their site to useful information -- tried
that before. Gaah! If given an explicit URL, fine.
--
Anyone who cannot cope with mathematics is not fully human. At best he is a
tolerable subhuman who has learned to wear shoes, bathe, and not make messes
in the house -- Robert A Heinlein, Time Enough for Love.