42 lines
2.3 KiB
Diff
42 lines
2.3 KiB
Diff
diff -Naur iputils-s20121221.orig/ping.c iputils-s20121221/ping.c
|
|
--- iputils-s20121221.orig/ping.c 2013-12-08 13:41:47.077791445 -0800
|
|
+++ iputils-s20121221/ping.c 2013-12-08 13:43:25.238278205 -0800
|
|
@@ -654,17 +654,6 @@
|
|
|
|
acknowledge(ntohs(icmph.un.echo.sequence));
|
|
|
|
- if (!working_recverr) {
|
|
- struct icmp_filter filt;
|
|
- working_recverr = 1;
|
|
- /* OK, it works. Add stronger filter. */
|
|
- filt.data = ~((1<<ICMP_SOURCE_QUENCH)|
|
|
- (1<<ICMP_REDIRECT)|
|
|
- (1<<ICMP_ECHOREPLY));
|
|
- if (setsockopt(icmp_sock, SOL_RAW, ICMP_FILTER, (char*)&filt, sizeof(filt)) == -1)
|
|
- perror("\rWARNING: setsockopt(ICMP_FILTER)");
|
|
- }
|
|
-
|
|
net_errors++;
|
|
nerrors++;
|
|
if (options & F_QUIET)
|
|
@@ -820,19 +809,7 @@
|
|
icp->type != ICMP_SOURCE_QUENCH);
|
|
if (error_pkt) {
|
|
acknowledge(ntohs(icp1->un.echo.sequence));
|
|
- if (working_recverr) {
|
|
- return 0;
|
|
- } else {
|
|
- static int once;
|
|
- /* Sigh, IP_RECVERR for raw socket
|
|
- * was broken until 2.4.9. So, we ignore
|
|
- * the first error and warn on the second.
|
|
- */
|
|
- if (once++ == 1)
|
|
- fprintf(stderr, "\rWARNING: kernel is not very fresh, upgrade is recommended.\n");
|
|
- if (once == 1)
|
|
- return 0;
|
|
- }
|
|
+ return 0;
|
|
}
|
|
nerrors+=error_pkt;
|
|
if (options&F_QUIET)
|