diff options
author | Paul Fox <pgf@brightstareng.com> | 2006-03-29 23:01:33 +0000 |
---|---|---|
committer | Paul Fox <pgf@brightstareng.com> | 2006-03-29 23:01:33 +0000 |
commit | ef81ce620ced149ce72b5a8df1d5410e8f120ee8 (patch) | |
tree | e7d289b4713c770edf00f875f98540d197fdde45 /networking/zcip.c | |
parent | d409c3a2f787dd2276d242d70e03b25e33436cea (diff) | |
download | busybox-w32-ef81ce620ced149ce72b5a8df1d5410e8f120ee8.tar.gz busybox-w32-ef81ce620ced149ce72b5a8df1d5410e8f120ee8.tar.bz2 busybox-w32-ef81ce620ced149ce72b5a8df1d5410e8f120ee8.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.
>
Diffstat (limited to 'networking/zcip.c')
-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 |