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 + +/* Get machine dependent optimized versions of byte swapping functions. */ +#include + +#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");