From owner-freebsd-current@FreeBSD.ORG Sat Apr 12 09:49:25 2003 Return-Path: Delivered-To: freebsd-current@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id C45F937B401; Sat, 12 Apr 2003 09:49:25 -0700 (PDT) Received: from calis.blacksun.org (calis.blacksun.org [216.254.108.150]) by mx1.FreeBSD.org (Postfix) with ESMTP id 2614243F3F; Sat, 12 Apr 2003 09:49:25 -0700 (PDT) (envelope-from don@calis.blacksun.org) Received: by calis.blacksun.org (Postfix, from userid 1001) id B8DCC17060; Sat, 12 Apr 2003 12:52:48 -0400 (EDT) Received: from localhost (localhost [127.0.0.1]) by calis.blacksun.org (Postfix) with ESMTP id B72341705E; Sat, 12 Apr 2003 12:52:48 -0400 (EDT) Date: Sat, 12 Apr 2003 12:52:48 -0400 (EDT) From: Don To: BelletJr@aol.com In-Reply-To: <134.1e1ff9dc.2bc95035@aol.com> Message-ID: <20030412123544.B4056@calis.blacksun.org> References: <134.1e1ff9dc.2bc95035@aol.com> MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII cc: current@freebsd.org cc: net@freebsd.org Subject: Re: connect(2) behavior with unreacheable hosts X-BeenThere: freebsd-current@freebsd.org X-Mailman-Version: 2.1.1 Precedence: list List-Id: Discussions about the use of FreeBSD-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 12 Apr 2003 16:49:26 -0000 > Thank you Terry for your instructive explanation (though Barney has found it > seems to be a real bug ;-). > The infinite loop that seems to exist when tracerouting happens while I try > to access an Internet host from my provider network without having > authenticate before. Not a usual set up, but it was just a test... > In this case, after a few hops, traceroute seems to show packets exchanged > indefinitely between 2 interfaces. It is not the responsibility of TCP/UDP to report a routing problem. When the TTL on a packet reaches 0, (Due, for example, to a routing loop) an ICMP message is generated to report a "TTL Expired in Transit" message: ICMP Type 11. If the host does not receive this message, then the only thing connect() can do is timeout. In that case connect() should return -1 and errno should return [ETIMEDOUT] or [ENETUNREACH] (I have no idea which one). If you are allowing the necessary ICMP traffic, well, then there is a problem. Forgive me if I have no idea what I am talking about. -Don