diff options
author | pgf <pgf@69ca8d6d-28ef-0310-b511-8ec308f3f277> | 2006-03-29 23:01:33 +0000 |
---|---|---|
committer | pgf <pgf@69ca8d6d-28ef-0310-b511-8ec308f3f277> | 2006-03-29 23:01:33 +0000 |
commit | c0503195d05e92fda33970c7ffcb4b385acacf01 (patch) | |
tree | e7d289b4713c770edf00f875f98540d197fdde45 | |
parent | a861bc8168145bf86cf9a28eac0da25cc2f89fe8 (diff) | |
download | busybox-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.c | 2 |
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 |