]> git.ipfire.org Git - people/pmueller/ipfire-2.x.git/blobdiff - src/patches/iputils-glibckernheaders.patch
Revert "~/src/patches/: Clean up orphaned patches, duplicates and application patches...
[people/pmueller/ipfire-2.x.git] / src / patches / iputils-glibckernheaders.patch
diff --git a/src/patches/iputils-glibckernheaders.patch b/src/patches/iputils-glibckernheaders.patch
new file mode 100644 (file)
index 0000000..88a54b1
--- /dev/null
@@ -0,0 +1,74 @@
+diff -ru iputils/include-glibc/netinet/in.h iputils-clean/include-glibc/netinet/in.h
+--- iputils/include-glibc/netinet/in.h 2000-06-18 14:57:25.000000000 -0400
++++ iputils-clean/include-glibc/netinet/in.h   2003-09-03 11:21:55.000000000 -0400
+@@ -8,4 +8,45 @@
+ #define SOL_IP        0
+-#endif        /* netinet/in.h */
++/* Functions to convert between host and network byte order.
++
++   Please note that these functions normally take `unsigned long int' or
++   `unsigned short int' values as arguments and also return them.  But
++   this was a short-sighted decision since on different systems the types
++   may have different representations but the values are always the same.  */
++
++extern u_int32_t ntohl (u_int32_t __netlong) __THROW __attribute__ ((__const__));
++extern u_int16_t ntohs (u_int16_t __netshort)
++     __THROW __attribute__ ((__const__));
++extern u_int32_t htonl (u_int32_t __hostlong)
++     __THROW __attribute__ ((__const__));
++extern u_int16_t htons (u_int16_t __hostshort)
++     __THROW __attribute__ ((__const__));
++
++#include <endian.h>
++
++/* Get machine dependent optimized versions of byte swapping functions.  */
++#include <bits/byteswap.h>
++
++#ifdef __OPTIMIZE__
++/* We can optimize calls to the conversion functions.  Either nothing has
++   to be done or we are using directly the byte-swapping functions which
++   often can be inlined.  */
++# if __BYTE_ORDER == __BIG_ENDIAN
++/* The host byte order is the same as network byte order,
++   so these functions are all just identity.  */
++# define ntohl(x)     (x)
++# define ntohs(x)     (x)
++# define htonl(x)     (x)
++# define htons(x)     (x)
++# else
++#  if __BYTE_ORDER == __LITTLE_ENDIAN
++#   define ntohl(x)   __bswap_32 (x)
++#   define ntohs(x)   __bswap_16 (x)
++#   define htonl(x)   __bswap_32 (x)
++#   define htons(x)   __bswap_16 (x)
++#  endif
++# endif
++#endif
++
++#endif /* netinet/in.h */
+diff -ru iputils/ping6.c iputils-clean/ping6.c
+--- iputils/ping6.c    2003-09-03 11:22:46.000000000 -0400
++++ iputils-clean/ping6.c      2003-09-03 11:15:42.000000000 -0400
+@@ -879,7 +879,7 @@
+       once = 1;
+       /* Patch bpflet for current identifier. */
+-      insns[1] = (struct sock_filter)BPF_JUMP(BPF_JMP|BPF_JEQ|BPF_K, __constant_htons(ident), 0, 1);
++      insns[1] = (struct sock_filter)BPF_JUMP(BPF_JMP|BPF_JEQ|BPF_K, htons(ident), 0, 1);
+       if (setsockopt(icmp_sock, SOL_SOCKET, SO_ATTACH_FILTER, &filter, sizeof(filter)))
+               perror("WARNING: failed to install socket filter\n");
+diff -ru iputils/ping.c iputils-clean/ping.c
+--- iputils/ping.c     2003-09-03 11:22:46.000000000 -0400
++++ iputils-clean/ping.c       2003-09-03 11:15:26.000000000 -0400
+@@ -1196,7 +1196,7 @@
+       once = 1;
+       /* Patch bpflet for current identifier. */
+-      insns[2] = (struct sock_filter)BPF_JUMP(BPF_JMP|BPF_JEQ|BPF_K, __constant_htons(ident), 0, 1);
++      insns[2] = (struct sock_filter)BPF_JUMP(BPF_JMP|BPF_JEQ|BPF_K, htons(ident), 0, 1);
+       if (setsockopt(icmp_sock, SOL_SOCKET, SO_ATTACH_FILTER, &filter, sizeof(filter)))
+               perror("WARNING: failed to install socket filter\n");