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<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)