aboutsummaryrefslogtreecommitdiffstats
path: root/recipes/iputils/files/debian/fix-arping-timeouts.diff
blob: b3d25059877847f13fa70ec610cb58daa94acb56 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
--- iputils-upstream/arping.c	2007-10-28 12:24:10.000000000 -0400
+++ iputils/arping.c	2007-10-28 12:19:17.000000000 -0400
@@ -168,12 +168,17 @@
 	if (start.tv_sec==0)
 		start = tv;
 
-	if (count-- == 0 || (timeout && MS_TDIFF(tv,start) > timeout*1000 + 500))
-		finish();
+	if (timeout && MS_TDIFF(tv,start) > timeout*1000 + 500)
+ 		finish();
 
-	if (last.tv_sec==0 || MS_TDIFF(tv,last) > 500) {
+	if ((!timeout) && (count == 0))
+		finish();
+ 
+	if ( count!=0  && (last.tv_sec==0 || MS_TDIFF(tv,last) > 500 ) ) {
 		send_pack(s, src, dst, &me, &he);
-		if (count == 0 && unsolicited)
+		if (count >= 0)
+			count--;
+		if (count==0 && unsolicited)
 			finish();
 	}
 	alarm(1);