Skip site navigation (1)Skip section navigation (2)
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>