From owner-freebsd-net@FreeBSD.ORG Sun Apr 4 15:46:26 2004 Return-Path: Delivered-To: freebsd-net@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 797EB16A4CE for ; Sun, 4 Apr 2004 15:46:26 -0700 (PDT) Received: from out012.verizon.net (out012pub.verizon.net [206.46.170.137]) by mx1.FreeBSD.org (Postfix) with ESMTP id 15F9D43D46 for ; Sun, 4 Apr 2004 15:46:26 -0700 (PDT) (envelope-from cswiger@mac.com) Received: from mac.com ([68.160.247.127]) by out012.verizon.net (InterMail vM.5.01.06.06 201-253-122-130-106-20030910) with ESMTP id <20040404224625.USWB18295.out012.verizon.net@mac.com>; Sun, 4 Apr 2004 17:46:25 -0500 Message-ID: <40709033.9010301@mac.com> Date: Sun, 04 Apr 2004 18:46:11 -0400 From: Chuck Swiger Organization: The Courts of Chaos User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.7b) Gecko/20040316 X-Accept-Language: en-us, en MIME-Version: 1.0 To: Brandon Erhart References: <6.0.2.0.2.20040404152043.01c83320@mx1.erhartgroup.com> <4070860F.6030701@mac.com> <6.0.2.0.2.20040404160622.01c84428@mx1.erhartgroup.com> <40708B96.4050905@mac.com> <6.0.2.0.2.20040404163034.01c82c80@mx1.erhartgroup.com> In-Reply-To: <6.0.2.0.2.20040404163034.01c82c80@mx1.erhartgroup.com> Content-Type: text/plain; charset=us-ascii; format=flowed Content-Transfer-Encoding: 7bit X-Authentication-Info: Submitted using SMTP AUTH at out012.verizon.net from [68.160.247.127] at Sun, 4 Apr 2004 17:46:25 -0500 cc: freebsd-net@freebsd.org Subject: Re: FIN_WAIT_[1,2] and LAST_ACK X-BeenThere: freebsd-net@freebsd.org X-Mailman-Version: 2.1.1 Precedence: list List-Id: Networking and TCP/IP with FreeBSD List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 04 Apr 2004 22:46:26 -0000 Brandon Erhart wrote: > I want to explicitly get it out of those states, without any help from > the other end. What must I modify to achieve this? See tcp_usrclosed() in /usr/src/sys/netinet/tcp_usrreq.c. Replace that code with something like (untested): tp->t_state = TCPS_CLOSED; tp = tcp_close(tp); return tp; ...and you'll break your TCP/IP stack in the fashion you've asked for. If other things break too, you can keep all of the pieces. :-) -- -Chuck