Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 08 Mar 2001 12:52:31 +0900
From:      itojun@iijlab.net
To:        wietse@porcupine.org (Wietse Venema)
Cc:        Jonathan Lemon <jlemon@flugsvamp.com>, Arjan.deVet@adv.iae.nl, net@freebsd.org, postfix-users@postfix.org
Subject:   Re: [itojun@iijlab.net: accept(2) behavior with tcp RST right after handshake]
Message-ID:  <6251.984023551@coconut.itojun.org>
In-Reply-To: wietse's message of Wed, 07 Mar 2001 16:20:35 EST. <20010307212035.8170EBC070@spike.porcupine.org>

next in thread | previous in thread | raw e-mail | index | archive | help

>Several parts of Postfix do: connect() write() close(), where the
>close() may happen before the server has accept()ed the connection.
>Due to an incompatible change in FreeBSD 4.2-STABLE, this causes
>accept() after close() to fail. The already written data is lost.
>This is a bad incompatible change.

	see SUSv2 and XNET 5.2 spec for accept(), and Stevens (unix network
	programming vol 1 2nd ed) section 5.11.
	http://www.opengroup.org/onlinepubs/007908799/xns/accept.html

	4.3BSD behavior was very wrong (described in Stevens).

	old freebsd behavior (return 0-length sockaddr) was also wrong,
	it kills a set of applications including sendmail and BIND910.

	new freebsd behavior (ECONNABORTED) is at least SUSv2 conformant,
	and I expect it to be the behavior of other stacks.

itojun

To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-net" in the body of the message




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?6251.984023551>