Date: Thu, 17 Jan 2002 09:20:05 -0800 (PST) From: Garrett Wollman <wollman@khavrinen.lcs.mit.edu> To: freebsd-bugs@FreeBSD.org Subject: Re: bin/33971: finger could check if T/TCP is disabled and imply -T Message-ID: <200201171720.g0HHK5s29541@freefall.freebsd.org>
next in thread | raw e-mail | index | archive | help
The following reply was made to PR bin/33971; it has been noted by GNATS. From: Garrett Wollman <wollman@khavrinen.lcs.mit.edu> To: "Tim J. Robbins" <tim@robbins.dropbear.id.au> 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) <<On Thu, 17 Jan 2002 16:45:56 +1100, "Tim J. Robbins" <tim@robbins.dropbear.id.au> 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 <mss 16344,nop,wscale 1,nop,nop,timestamp 20673461 0> (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 <mss 16344,nop,wscale 1,nop,nop,timestamp 20668422 0,nop,nop,cc 7541> (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
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200201171720.g0HHK5s29541>