[15] in linux-net channel archive
Re: 1.1.73, UAR, and packet lossage - UDP done the dirty deed!
daemon@ATHENA.MIT.EDU (Alan Cox)
Fri Dec 30 11:05:45 1994
From: iialan@iifeak.swan.ac.uk (Alan Cox)
To: dplatt@3do.com (Dave Platt)
Date: Fri, 30 Dec 1994 15:18:38 +0000 (GMT)
Cc: linux-atalk@netspace.students.brown.edu, linux-net@vger.rutgers.edu,
Alan.Cox@linux.org, djh@cs.mu.oz.au
In-Reply-To: <9412230321.AA01840@rhett.3do.com> from "Dave Platt" at Dec 22, 94 07:21:59 pm
> The error is not, however, returned as a result of the sendto() call
> which sent the undeliverable datagram. I'm not sure, from looking at
> the code, whether the error could can always be expected to have been
> delivered by the time the sendto() call is about to return... I _think_
> it is, for datagrams sent via the loopback device, but I'm not entirely
> certain.
It would probably be the case.
> The workaround: modify UAR to cope with the problem. In cap.c, keep a
> retry counter; if sendto() returns with an error condition, simply
> retry the operation a few times. I've set the retry limit to 3, and
> haven't seen any dropped packet require more than 1 retry.
Why not use getsockopt with SOL_SOCKET SO_ERROR before the sendto to check
for errors and discard boring ones.
Alan