aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorpgf <pgf@69ca8d6d-28ef-0310-b511-8ec308f3f277>2006-03-29 23:01:33 +0000
committerpgf <pgf@69ca8d6d-28ef-0310-b511-8ec308f3f277>2006-03-29 23:01:33 +0000
commitc0503195d05e92fda33970c7ffcb4b385acacf01 (patch)
treee7d289b4713c770edf00f875f98540d197fdde45
parenta861bc8168145bf86cf9a28eac0da25cc2f89fe8 (diff)
downloadbusybox-w32-c0503195d05e92fda33970c7ffcb4b385acacf01.tar.gz
busybox-w32-c0503195d05e92fda33970c7ffcb4b385acacf01.tar.bz2
busybox-w32-c0503195d05e92fda33970c7ffcb4b385acacf01.zip
fix from David Daney, on busybox mailing list:
> The problem is that if the zcip protocol times out at about the same > time another ARP packet is being received, the newly calculated timeout > may be set to wait forever. This prevents the protocol from progressing > through its various states. > > The Fix is to set the timeout to zero if it used to be a positive > number, but it has already expired. This causes the next protocol state > to be entered immediately instead of never. > > If OK please commit. > > Also note that if you may have to apply the patch on this page: > > http://www.science.uva.nl/research/air/wiki/LinkLocalARPMeasurements > > To the linux kernel to get proper zcip behavior. > git-svn-id: svn://busybox.net/trunk/busybox@14698 69ca8d6d-28ef-0310-b511-8ec308f3f277
-rw-r--r--networking/zcip.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/networking/zcip.c b/networking/zcip.c
index 716c4a5e1..ed30bb33a 100644
--- a/networking/zcip.c
+++ b/networking/zcip.c
@@ -437,7 +437,7 @@ fail:
437 437
438 gettimeofday(&tv2, NULL); 438 gettimeofday(&tv2, NULL);
439 if (timercmp(&tv1, &tv2, <)) { 439 if (timercmp(&tv1, &tv2, <)) {
440 timeout = -1; 440 timeout = 0;
441 } else { 441 } else {
442 timersub(&tv1, &tv2, &tv1); 442 timersub(&tv1, &tv2, &tv1);
443 timeout = 1000 * tv1.tv_sec 443 timeout = 1000 * tv1.tv_sec