void-packages/srcpkgs/iputils/patches/net-misc_iputils_files_iputils-20131208-remove-working_recverr-checks.patch
2015-05-02 17:33:36 +02:00

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)