From owner-freebsd-net Mon May 7 2:27:28 2001 Delivered-To: freebsd-net@freebsd.org Received: from fw.wintelcom.net (ns1.wintelcom.net [209.1.153.20]) by hub.freebsd.org (Postfix) with ESMTP id 2F47637B422 for ; Mon, 7 May 2001 02:27:27 -0700 (PDT) (envelope-from bright@fw.wintelcom.net) Received: (from bright@localhost) by fw.wintelcom.net (8.10.0/8.10.0) id f479RQb22383; Mon, 7 May 2001 02:27:26 -0700 (PDT) Date: Mon, 7 May 2001 02:27:26 -0700 From: Alfred Perlstein To: Jonathan Graehl Cc: freebsd-net@FreeBSD.ORG Subject: Re: Do I need to close after shutdown if I don't want to leak descriptors? (making sure TCP retransmits all my data) Message-ID: <20010507022726.P18676@fw.wintelcom.net> References: <000001c0d6d5$87607e80$6dfeac40@straylight.com> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline User-Agent: Mutt/1.2.5i In-Reply-To: <000001c0d6d5$87607e80$6dfeac40@straylight.com>; from jonathan@graehl.org on Mon, May 07, 2001 at 02:10:14AM -0700 X-all-your-base: are belong to us. Sender: owner-freebsd-net@FreeBSD.ORG Precedence: bulk X-Loop: FreeBSD.org * Jonathan Graehl [010507 02:10] wrote: > Scenario: I accept a (TCP) connection, write some data, close the > connection. > > Problem: close() does not perform an orderly shutdown, does not resend > unacknowledged data - responds with RST to data/acks sent to me > > Non-solution: SO_LINGER, makes close into a blocking call in order to > get orderly shutdown Here's a trick that may work. use setsockopt to set SO_SNDLOWAT == SO_SNDBUF, when you get a writeable event back you know the socket is clear. this is good because you should be able to go back to using poll/kevent to monitor them. -- -Alfred Perlstein - [alfred@freebsd.org] Instead of asking why a piece of software is using "1970s technology," start asking why software is ignoring 30 years of accumulated wisdom. To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe freebsd-net" in the body of the message