From owner-freebsd-bugs Thu Jan 17 9:20:38 2002 Delivered-To: freebsd-bugs@hub.freebsd.org Received: from freefall.freebsd.org (freefall.FreeBSD.org [216.136.204.21]) by hub.freebsd.org (Postfix) with ESMTP id C235B37B47E for ; Thu, 17 Jan 2002 09:20:05 -0800 (PST) Received: (from gnats@localhost) by freefall.freebsd.org (8.11.6/8.11.6) id g0HHK5s29541; Thu, 17 Jan 2002 09:20:05 -0800 (PST) (envelope-from gnats) Date: Thu, 17 Jan 2002 09:20:05 -0800 (PST) Message-Id: <200201171720.g0HHK5s29541@freefall.freebsd.org> To: freebsd-bugs@FreeBSD.org Cc: From: Garrett Wollman Subject: Re: bin/33971: finger could check if T/TCP is disabled and imply -T Reply-To: Garrett Wollman Sender: owner-freebsd-bugs@FreeBSD.ORG Precedence: bulk List-ID: List-Archive: (Web Archive) List-Help: (List Instructions) List-Subscribe: List-Unsubscribe: X-Loop: FreeBSD.org The following reply was made to PR bin/33971; it has been noted by GNATS. From: Garrett Wollman To: "Tim J. Robbins" Cc: freebsd-gnats-submit@FreeBSD.ORG Subject: Re: bin/33971: finger could check if T/TCP is disabled and imply -T Date: Thu, 17 Jan 2002 12:19:06 -0500 (EST) < said: > The kernel does T/TCP because finger does not connect() before it > calls sendmsg() (unless, of course, the -T option is used). No, that is not Transaction TCP; that's implicit open/close -- an API feature that is independent of the protocol. > 16:29:39.703826 localhost.4459 > localhost.finger: S [tcp sum ok] 3639801831:3639801831(0) win 65535 (DF) (ttl 64, id 33391, len 60) No FIN flag, no CC{,.new,.echo} options, ergo no TCP accelerated open, thus no Transaction TCP. In fact, it's not even sending data on that SYN (which is IMO a bug -- if there is data in the socket buffer, every opportunity allowed by flow control should be taken to send it). > net.inet.tcp.rfc1644=1, finger tim@127.0.0.1: > 16:28:49.322276 localhost.4458 > localhost.finger: SP [tcp sum ok] 3668140434:3668140439(5) win 57344 (DF) (ttl 64, id 17585, len 73) Yes, when you turn on T/TCP support, the stack is capable of using it automatically -- that's the whole point of having such an option. > I give up. I just thought it'd be nice if finger detected hosts that > weren't listening on the finger port faster and a less confusing error msg. There must be something else wrong with your system or network. I do not see any delays such as you note with either -current or -stable: wollman@mintaka(132)$ time finger -l foo@www.lcs.mit.edu [www.lcs.mit.edu] finger: read: Connection refused 0.00 real 0.00 user 0.00 sys Your point about the error message is well-taken. The -current version of finger(1) says: wollman@khavrinen(633)$ time finger -l foo@www.lcs.mit.edu [www.lcs.mit.edu] finger: reading from network: Connection refused 0.03 real 0.00 user 0.02 sys ktrace demonstrates that it is in fact doing the implicit open: 98990 finger CALL socket(0x2,0x1,0) 98990 finger RET socket 4 [...] 98990 finger CALL sendmsg(0x4,0xbfbfedcc,0) 98990 finger GIO fd 4 wrote 8 bytes "/W foo\r " 98990 finger RET sendmsg 8 [...] 98990 finger CALL read(0x4,0x805b000,0x4074) 98990 finger RET read -1 errno 61 Connection refused -GAWollman To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe freebsd-bugs" in the body of the message