The following reply was made to PR kern/146845; it has been noted by GNATS.

From: Mikolaj Golub <to.my.troc...@gmail.com>
To: "Lavrentiev\, Anton \(NIH\/NLM\/NCBI\) \[C\]" <l...@ncbi.nlm.nih.gov>
Cc: "Robert N. M. Watson" <rwat...@freebsd.org>, freebsd-net@FreeBSD.org, 
bug-follo...@freebsd.org
Subject: Re: kern/146845: [libc] close(2) returns error 54 (connection reset by 
peer) wrongly
Date: Fri, 28 May 2010 12:26:33 +0300

 On Fri, 28 May 2010 04:40:03 GMT Lavrentiev, Anton (NIH/NLM/NCBI) [C] wrote:
 
  LA>  IMHO, it is not, unfortunately, a solution:  it seems to clear ECONNRESET
  LA>  blindly and w/o distinguishing the situation when the remote end closes 
the
  LA>  connection prematurely (i.e. before acknowledging all data written from 
the
  LA>  local end) -- and that qualifies for the true "connection reset by peer"
  LA>  from close()...
 
 I am not very familiar with the socket/tcp code but it looks for me that it
 might not make any difference.
 
 I can be wrong here but the situation you have described as true "connection
 reset by peer" seems to have the following path in the code:
 
 soclose() -> sodisconnect() -> tcp_usr_disconnect() -> tcp_disconnect()
 
 But tcp_disconnect() does not return error, so we will not have ECONNRESET
 error in any case.
 
 May be you have a good test suite to reproduce this situation? :-) 
 
 -- 
 Mikolaj Golub
_______________________________________________
freebsd-net@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-net
To unsubscribe, send any mail to "freebsd-net-unsubscr...@freebsd.org"

Reply via email to