netdev
[Top] [All Lists]

Re: Fwd: Problem with recv syscall on socket when other side closed conn

To: dyp@xxxxxxxxxxxx
Subject: Re: Fwd: Problem with recv syscall on socket when other side closed connection
From: "David S. Miller" <davem@xxxxxxxxxx>
Date: Mon, 26 Jun 2000 18:31:08 -0700
Cc: kuznet@xxxxxxxxxxxxx, dyp@xxxxxxxxxxxx, ak@xxxxxx, netdev@xxxxxxxxxxx
In-reply-to: <0006270823180R.00485@dyp> (message from Denis Perchine on Tue, 27 Jun 2000 08:19:15 +0700)
References: <200006261515.TAA22206@ms2.inr.ac.ru> <0006270823180R.00485@dyp>
Sender: owner-netdev@xxxxxxxxxxx
   From: Denis Perchine <dyp@xxxxxxxxxxxx>
   Date:   Tue, 27 Jun 2000 08:19:15 +0700

   Usual way of handling connection reset when you do only read is to
   give all data available and then return 0, indicating EOF.  Or some
   OSes (HPUX if I'm not mistaken) gives you all data available and
   then ECONNRESET. But not other way around...

Connection reset effectively means that TCP's reliable data transport
has been completely compromised, and therefore any attempt to move
data across that socket should immediately indicate an error.

What I am also trying to say is that when one says "all the data
available", the rest of the connection has in effect dropped all
meaning to that phrase, you no longer know what "all the data" is
and between two different reset occurances "all the data" will be
different so why would you want to read any of it at all?

Later,
David S. Miller
davem@xxxxxxxxxx

<Prev in Thread] Current Thread [Next in Thread>