summaryrefslogtreecommitdiff
path: root/recipes/obsolete/iputils/files/remove-glibc-headers.patch
diff options
context:
space:
mode:
Diffstat (limited to 'recipes/obsolete/iputils/files/remove-glibc-headers.patch')
-rw-r--r--recipes/obsolete/iputils/files/remove-glibc-headers.patch944
1 files changed, 944 insertions, 0 deletions
diff --git a/recipes/obsolete/iputils/files/remove-glibc-headers.patch b/recipes/obsolete/iputils/files/remove-glibc-headers.patch
new file mode 100644
index 0000000000..0930acd656
--- /dev/null
+++ b/recipes/obsolete/iputils/files/remove-glibc-headers.patch
@@ -0,0 +1,944 @@
+We are not using the local glibc headers for now.
+Remove them to keep them out of the way.
+
+diff -durN orig/include-glibc/bits/socket.h new/include-glibc/bits/socket.h
+--- orig/include-glibc/bits/socket.h 2005-11-14 22:37:26.000000000 +1100
++++ new/include-glibc/bits/socket.h 1970-01-01 10:00:00.000000000 +1000
+@@ -1,280 +0,0 @@
+-/* System-specific socket constants and types. Linux version.
+- Copyright (C) 1991, 92, 94, 95, 96, 97, 98 Free Software Foundation, Inc.
+- This file is part of the GNU C Library.
+-
+- The GNU C Library is free software; you can redistribute it and/or
+- modify it under the terms of the GNU Library General Public License as
+- published by the Free Software Foundation; either version 2 of the
+- License, or (at your option) any later version.
+-
+- The GNU C Library is distributed in the hope that it will be useful,
+- but WITHOUT ANY WARRANTY; without even the implied warranty of
+- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+- Library General Public License for more details.
+-
+- You should have received a copy of the GNU Library General Public
+- License along with the GNU C Library; see the file COPYING.LIB. If not,
+- write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
+- Boston, MA 02111-1307, USA. */
+-
+-#ifndef _SOCKETBITS_H
+-
+-#define _SOCKETBITS_H 1
+-#include <features.h>
+-
+-#define __need_size_t
+-#define __need_NULL
+-#include <stddef.h>
+-
+-
+-__BEGIN_DECLS
+-
+-/* Type for length arguments in socket calls. */
+-#ifndef __socklen_t_defined
+-typedef unsigned int socklen_t;
+-# define __socklen_t_defined
+-#endif
+-
+-/* Types of sockets. */
+-enum __socket_type
+-{
+-#ifndef __mips__
+- SOCK_STREAM = 1, /* Sequenced, reliable, connection-based
+- byte streams. */
+-#define SOCK_STREAM SOCK_STREAM
+- SOCK_DGRAM = 2, /* Connectionless, unreliable datagrams
+- of fixed maximum length. */
+-#define SOCK_DGRAM SOCK_DGRAM
+-#else
+- SOCK_STREAM = 2, /* Sequenced, reliable, connection-based
+- byte streams. */
+-#define SOCK_STREAM SOCK_STREAM
+- SOCK_DGRAM = 1, /* Connectionless, unreliable datagrams
+- of fixed maximum length. */
+-#define SOCK_DGRAM SOCK_DGRAM
+-#endif
+- SOCK_RAW = 3, /* Raw protocol interface. */
+-#define SOCK_RAW SOCK_RAW
+- SOCK_RDM = 4, /* Reliably-delivered messages. */
+-#define SOCK_RDM SOCK_RDM
+- SOCK_SEQPACKET = 5, /* Sequenced, reliable, connection-based,
+- datagrams of fixed maximum length. */
+-#define SOCK_SEQPACKET SOCK_SEQPACKET
+- SOCK_PACKET = 10 /* Linux specific way of getting packets
+- at the dev level. For writing rarp and
+- other similar things on the user level. */
+-#define SOCK_PACKET SOCK_PACKET
+-};
+-
+-/* Protocol families. */
+-#define PF_UNSPEC 0 /* Unspecified. */
+-#define PF_LOCAL 1 /* Local to host (pipes and file-domain). */
+-#define PF_UNIX PF_LOCAL /* Old BSD name for PF_LOCAL. */
+-#define PF_FILE PF_LOCAL /* POSIX name for PF_LOCAL. */
+-#define PF_INET 2 /* IP protocol family. */
+-#define PF_AX25 3 /* Amateur Radio AX.25. */
+-#define PF_IPX 4 /* Novell Internet Protocol. */
+-#define PF_APPLETALK 5 /* Don't use this. */
+-#define PF_NETROM 6 /* Amateur radio NetROM. */
+-#define PF_BRIDGE 7 /* Multiprotocol bridge. */
+-#define PF_AAL5 8 /* Reserved for Werner's ATM. */
+-#define PF_X25 9 /* Reserved for X.25 project. */
+-#define PF_INET6 10 /* IP version 6. */
+-#define PF_ROSE 11 /* Amateur Radio X.25 PLP */
+-#define PF_DECnet 12 /* Reserved for DECnet project */
+-#define PF_NETBEUI 13 /* Reserved for 802.2LLC project*/
+-#define PF_SECURITY 14 /* Security callback pseudo AF */
+-#define PF_KEY 15 /* PF_KEY key management API */
+-#define PF_NETLINK 16
+-#define PF_ROUTE PF_NETLINK /* Alias to emulate 4.4BSD */
+-#define PF_PACKET 17 /* Packet family */
+-#define PF_MAX 32 /* For now.. */
+-
+-/* Address families. */
+-#define AF_UNSPEC PF_UNSPEC
+-#define AF_LOCAL PF_LOCAL
+-#define AF_UNIX PF_UNIX
+-#define AF_FILE PF_FILE
+-#define AF_INET PF_INET
+-#define AF_AX25 PF_AX25
+-#define AF_IPX PF_IPX
+-#define AF_APPLETALK PF_APPLETALK
+-#define AF_NETROM PF_NETROM
+-#define AF_BRIDGE PF_BRIDGE
+-#define AF_AAL5 PF_AAL5
+-#define AF_X25 PF_X25
+-#define AF_INET6 PF_INET6
+-#define AF_ROSE PF_ROSE
+-#define AF_DECnet PF_DECnet
+-#define AF_NETBEUI PF_NETBEUI
+-#define AF_SECURITY PF_SECURITY
+-#define pseudo_AF_KEY pseudo_PF_KEY
+-#define AF_NETLINK PF_NETLINK
+-#define AF_ROUTE PF_ROUTE
+-#define AF_PACKET PF_PACKET
+-#define AF_MAX PF_MAX
+-
+-/* Socket level values. Others are defined in the appropriate headers.
+-
+- XXX These definitions also should go into the appropriate headers as
+- far as they are available. */
+-#define SOL_IPV6 41
+-#define SOL_ICMPV6 58
+-#define SOL_RAW 255
+-#define SOL_AX25 257
+-#define SOL_ATALK 258
+-#define SOL_NETROM 259
+-#define SOL_ROSE 260
+-#define SOL_DECNET 261
+-#define SOL_X25 262
+-
+-/* Maximum queue length specifiable by listen. */
+-#define SOMAXCONN 128
+-
+-/* Get the definition of the macro to define the common sockaddr members. */
+-#if __GLIBC_MINOR__ >= 1
+-#include <bits/sockaddr.h>
+-#else
+-#include <sockaddrcom.h>
+-#endif
+-
+-/* Structure describing a generic socket address. */
+-struct sockaddr
+- {
+- __SOCKADDR_COMMON (sa_); /* Common data: address family and length. */
+- char sa_data[14]; /* Address data. */
+- };
+-
+-
+-/* Bits in the FLAGS argument to `send', `recv', et al. */
+-enum
+- {
+- MSG_OOB = 0x01, /* Process out-of-band data. */
+-#define MSG_OOB MSG_OOB
+- MSG_PEEK = 0x02, /* Peek at incoming messages. */
+-#define MSG_PEEK MSG_PEEK
+- MSG_DONTROUTE = 0x04, /* Don't use local routing. */
+-#define MSG_DONTROUTE MSG_DONTROUTE
+- MSG_CTRUNC = 0x08, /* Control data lost before delivery. */
+-#define MSG_CTRUNC MSG_CTRUNC
+- MSG_PROBE = 0x10,
+-#define MSG_PROBE MSG_PROBE
+- MSG_TRUNC = 0x20,
+-#define MSG_TRUNC MSG_TRUNC
+- MSG_DONTWAIT = 0x40,
+-#define MSG_DONTWAIT MSG_DONTWAIT
+- MSG_WAITALL = 0x100,
+-#define MSG_WAITALL MSG_WAITALL
+- MSG_CONFIRM = 0x800,
+-#define MSG_CONFIRM MSG_CONFIRM
+- MSG_ERRQUEUE = 0x2000,
+-#define MSG_ERRQUEUE MSG_ERRQUEUE
+- MSG_NOSIGNAL = 0x4000,
+-#define MSG_NOSIGNAL MSG_NOSIGNAL
+- };
+-
+-/* Structure describing messages sent by
+- `sendmsg' and received by `recvmsg'. */
+-struct msghdr
+- {
+- __ptr_t msg_name; /* Address to send to/receive from. */
+- socklen_t msg_namelen; /* Length of address data. */
+-
+- struct iovec *msg_iov; /* Vector of data to send/receive into. */
+- size_t msg_iovlen; /* Number of elements in the vector. */
+-
+- __ptr_t msg_control; /* Ancillary data (eg BSD filedesc passing). */
+- size_t msg_controllen; /* Ancillary data buffer length. */
+-
+- int msg_flags; /* Flags on received message. */
+- };
+-
+-/* Structure used for storage of ancillary data object information. */
+-struct cmsghdr
+- {
+- size_t cmsg_len; /* Length of data in cmsg_data plus length
+- of cmsghdr structure. */
+- int cmsg_level; /* Originating protocol. */
+- int cmsg_type; /* Protocol specific type. */
+-#if !defined __STRICT_ANSI__ && defined __GNUC__ && __GNUC__ >= 2
+- unsigned char __cmsg_data[0]; /* Ancillary data. */
+-#endif
+- };
+-
+-/* Ancillary data object manipulation macros. */
+-#if !defined __STRICT_ANSI__ && defined __GNUC__ && __GNUC__ >= 2
+-# define CMSG_DATA(cmsg) ((cmsg)->__cmsg_data)
+-#else
+-# define CMSG_DATA(cmsg) ((unsigned char *) ((struct cmsghdr *) (cmsg) + 1))
+-#endif
+-#define CMSG_NXTHDR(mhdr, cmsg) __cmsg_nxthdr (mhdr, cmsg)
+-#define CMSG_FIRSTHDR(mhdr) \
+- ((size_t) (mhdr)->msg_controllen >= sizeof (struct cmsghdr) \
+- ? (struct cmsghdr *) (mhdr)->msg_control : (struct cmsghdr *) NULL)
+-#define CMSG_ALIGN(len) ( ((len)+sizeof(long)-1) & ~(sizeof(long)-1) )
+-#define CMSG_SPACE(len) (CMSG_ALIGN(sizeof(struct cmsghdr)) + CMSG_ALIGN(len))
+-#define CMSG_LEN(len) (CMSG_ALIGN(sizeof(struct cmsghdr)) + (len))
+-
+-
+-#ifndef _EXTERN_INLINE
+-# define _EXTERN_INLINE extern __inline
+-#endif
+-extern struct cmsghdr *__cmsg_nxthdr __P ((struct msghdr *__mhdr,
+- struct cmsghdr *__cmsg));
+-_EXTERN_INLINE struct cmsghdr *
+-__cmsg_nxthdr (struct msghdr *__mhdr, struct cmsghdr *__cmsg)
+-{
+- if ((size_t) __cmsg->cmsg_len < sizeof (struct cmsghdr))
+- /* The kernel header does this so there may be a reason. */
+- return NULL;
+-
+- __cmsg = (struct cmsghdr *)
+- ((unsigned char *) __cmsg + CMSG_ALIGN(__cmsg->cmsg_len));
+-
+- if ( (unsigned char *) (__cmsg + 1) >=
+- (unsigned char *) __mhdr->msg_control + __mhdr->msg_controllen)
+- /* No more entries. */
+- return NULL;
+- return __cmsg;
+-}
+-
+-/* Socket level message types. This must match the definitions in
+- <linux/socket.h>. */
+-enum
+- {
+- SCM_RIGHTS = 0x01, /* Data array contains access rights. */
+-#define SCM_RIGHTS SCM_RIGHTS
+- SCM_CREDENTIALS = 0x02, /* Data array is `struct ucred'. */
+-#define SCM_CREDENTIALS SCM_CREDENTIALS
+- };
+-
+-
+-
+-/* Get socket manipulation related informations from kernel headers. */
+-#ifdef THIS_IS_CRAP
+-#ifndef _LINUX_TYPES_H
+-# define _LINUX_TYPES_H
+-#endif
+-#endif
+-
+-#include <asm/socket.h>
+-#include <asm/types.h>
+-
+-struct ucred
+-{
+- __u32 pid;
+- __u32 uid;
+- __u32 gid;
+-};
+-
+-
+-/* Structure used to manipulate the SO_LINGER option. */
+-struct linger
+- {
+- int l_onoff; /* Nonzero to linger on close. */
+- int l_linger; /* Time to linger. */
+- };
+-
+-__END_DECLS
+-
+-#endif /* socketbits.h */
+diff -durN orig/include-glibc/bits/sockunion.h new/include-glibc/bits/sockunion.h
+--- orig/include-glibc/bits/sockunion.h 2005-11-14 22:37:26.000000000 +1100
++++ new/include-glibc/bits/sockunion.h 1970-01-01 10:00:00.000000000 +1000
+@@ -1,25 +0,0 @@
+-
+-/* I cannot describe, how I laughed, when saw, that now sys/socket.h
+- includes ALL OF networking include files. 8)8)8)
+-
+- Bravo! Aah, they forgot sockaddr_ll, sockaddr_pkt and sockaddr_nl...
+- Not a big problem, we only start the way to single UNIVERSAL include file:
+-
+- #include <GNU-Gnu_is_Not_Unix.h>.
+-
+- Jokes apart, it is full crap. Removed.
+- --ANK
+-
+- */
+-
+-/* Union of all sockaddr types (required by IPv6 Basic API). This is
+- somewhat evil. */
+-/* 8)8) Well, ipngwg really does strange things sometimes, but
+- not in such extent! It is removed long ago --ANK
+- */
+-
+-union sockaddr_union
+- {
+- struct sockaddr sa;
+- char __maxsize[128];
+- };
+diff -durN orig/include-glibc/glibc-bugs.h new/include-glibc/glibc-bugs.h
+--- orig/include-glibc/glibc-bugs.h 2005-11-14 22:37:26.000000000 +1100
++++ new/include-glibc/glibc-bugs.h 1970-01-01 10:00:00.000000000 +1000
+@@ -1,20 +0,0 @@
+-#ifndef __GLIBC_BUGS_H__
+-#define __GLIBC_BUGS_H__ 1
+-
+-#include <features.h>
+-#include <sys/types.h>
+-
+-#if defined(__GLIBC__) && __GLIBC__ >= 2
+-
+-#ifndef __KERNEL_STRICT_NAMES
+-#define __KERNEL_STRICT_NAMES 1
+-#endif
+-
+-#include <linux/types.h>
+-
+-typedef __u16 in_port_t;
+-typedef __u32 in_addr_t;
+-
+-#endif
+-
+-#endif
+diff -durN orig/include-glibc/netinet/in.h new/include-glibc/netinet/in.h
+--- orig/include-glibc/netinet/in.h 2005-11-14 22:37:26.000000000 +1100
++++ new/include-glibc/netinet/in.h 1970-01-01 10:00:00.000000000 +1000
+@@ -1,11 +0,0 @@
+-#ifndef _NETINET_IN_H
+-#define _NETINET_IN_H 1
+-
+-#include "glibc-bugs.h"
+-#include <sys/socket.h>
+-#include <sys/types.h>
+-#include <linux/in.h>
+-
+-#define SOL_IP 0
+-
+-#endif /* netinet/in.h */
+diff -durN orig/include-glibc/netinet/ip.h new/include-glibc/netinet/ip.h
+--- orig/include-glibc/netinet/ip.h 2005-11-14 22:37:26.000000000 +1100
++++ new/include-glibc/netinet/ip.h 1970-01-01 10:00:00.000000000 +1000
+@@ -1,98 +0,0 @@
+-#ifndef __NETINET_IP_H
+-#define __NETINET_IP_H 1
+-
+-#include <glibc-bugs.h>
+-#include <netinet/in.h>
+-
+-#include <linux/ip.h>
+-
+-#ifdef __USE_BSD
+-/*
+- * Copyright (c) 1982, 1986, 1993
+- * The Regents of the University of California. All rights reserved.
+- *
+- * Redistribution and use in source and binary forms, with or without
+- * modification, are permitted provided that the following conditions
+- * are met:
+- * 1. Redistributions of source code must retain the above copyright
+- * notice, this list of conditions and the following disclaimer.
+- * 2. Redistributions in binary form must reproduce the above copyright
+- * notice, this list of conditions and the following disclaimer in the
+- * documentation and/or other materials provided with the distribution.
+- * 3. All advertising materials mentioning features or use of this software
+- * must display the following acknowledgement:
+- * This product includes software developed by the University of
+- * California, Berkeley and its contributors.
+- * 4. Neither the name of the University nor the names of its contributors
+- * may be used to endorse or promote products derived from this software
+- * without specific prior written permission.
+- *
+- * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
+- * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+- * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
+- * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+- * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+- * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+- * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+- * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+- * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+- * SUCH DAMAGE.
+- *
+- * @(#)ip.h 8.1 (Berkeley) 6/10/93
+- */
+-
+-/*
+- * Definitions for internet protocol version 4.
+- * Per RFC 791, September 1981.
+- */
+-
+-/*
+- * Structure of an internet header, naked of options.
+- */
+-struct ip
+- {
+-#if __BYTE_ORDER == __LITTLE_ENDIAN
+- u_int8_t ip_hl:4; /* header length */
+- u_int8_t ip_v:4; /* version */
+-#endif
+-#if __BYTE_ORDER == __BIG_ENDIAN
+- u_int8_t ip_v:4; /* version */
+- u_int8_t ip_hl:4; /* header length */
+-#endif
+- u_int8_t ip_tos; /* type of service */
+- u_short ip_len; /* total length */
+- u_short ip_id; /* identification */
+- u_short ip_off; /* fragment offset field */
+-#define IP_RF 0x8000 /* reserved fragment flag */
+-#define IP_DF 0x4000 /* dont fragment flag */
+-#define IP_MF 0x2000 /* more fragments flag */
+-#define IP_OFFMASK 0x1fff /* mask for fragmenting bits */
+- u_int8_t ip_ttl; /* time to live */
+- u_int8_t ip_p; /* protocol */
+- u_short ip_sum; /* checksum */
+- struct in_addr ip_src, ip_dst; /* source and dest address */
+- };
+-
+-/*
+- * Time stamp option structure.
+- */
+-struct ip_timestamp
+- {
+- u_int8_t ipt_code; /* IPOPT_TS */
+- u_int8_t ipt_len; /* size of structure (variable) */
+- u_int8_t ipt_ptr; /* index of current entry */
+-#if __BYTE_ORDER == __LITTLE_ENDIAN
+- u_int8_t ipt_flg:4; /* flags, see below */
+- u_int8_t ipt_oflw:4; /* overflow counter */
+-#endif
+-#if __BYTE_ORDER == __BIG_ENDIAN
+- u_int8_t ipt_oflw:4; /* overflow counter */
+- u_int8_t ipt_flg:4; /* flags, see below */
+-#endif
+- u_int32_t data[9];
+- };
+-#endif /* __USE_BSD */
+-
+-
+-#endif /* netinet/ip.h */
+diff -durN orig/include-glibc/netinet/ip_icmp.h new/include-glibc/netinet/ip_icmp.h
+--- orig/include-glibc/netinet/ip_icmp.h 2005-11-14 22:37:26.000000000 +1100
++++ new/include-glibc/netinet/ip_icmp.h 1970-01-01 10:00:00.000000000 +1000
+@@ -1,199 +0,0 @@
+-#ifndef __NETINET_IP_ICMP_H
+-#define __NETINET_IP_ICMP_H 1
+-
+-
+-#include <asm/types.h>
+-#include <linux/icmp.h>
+-
+-#ifdef __USE_BSD
+-/*
+- * Copyright (c) 1982, 1986, 1993
+- * The Regents of the University of California. All rights reserved.
+- *
+- * Redistribution and use in source and binary forms, with or without
+- * modification, are permitted provided that the following conditions
+- * are met:
+- * 1. Redistributions of source code must retain the above copyright
+- * notice, this list of conditions and the following disclaimer.
+- * 2. Redistributions in binary form must reproduce the above copyright
+- * notice, this list of conditions and the following disclaimer in the
+- * documentation and/or other materials provided with the distribution.
+- * 3. All advertising materials mentioning features or use of this software
+- * must display the following acknowledgement:
+- * This product includes software developed by the University of
+- * California, Berkeley and its contributors.
+- * 4. Neither the name of the University nor the names of its contributors
+- * may be used to endorse or promote products derived from this software
+- * without specific prior written permission.
+- *
+- * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
+- * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+- * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
+- * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+- * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+- * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+- * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+- * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+- * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+- * SUCH DAMAGE.
+- *
+- * @(#)ip_icmp.h 8.1 (Berkeley) 6/10/93
+- */
+-
+-#include <netinet/in.h>
+-#include <netinet/ip.h>
+-
+-/*
+- * Internal of an ICMP Router Advertisement
+- */
+-struct icmp_ra_addr
+-{
+- u_int32_t ira_addr;
+- u_int32_t ira_preference;
+-};
+-
+-struct icmp
+-{
+- u_int8_t icmp_type; /* type of message, see below */
+- u_int8_t icmp_code; /* type sub code */
+- u_int16_t icmp_cksum; /* ones complement checksum of struct */
+- union
+- {
+- u_char ih_pptr; /* ICMP_PARAMPROB */
+- struct in_addr ih_gwaddr; /* gateway address */
+- struct ih_idseq /* echo datagram */
+- {
+- u_int16_t icd_id;
+- u_int16_t icd_seq;
+- } ih_idseq;
+- u_int32_t ih_void;
+-
+- /* ICMP_UNREACH_NEEDFRAG -- Path MTU Discovery (RFC1191) */
+- struct ih_pmtu
+- {
+- u_int16_t ipm_void;
+- u_int16_t ipm_nextmtu;
+- } ih_pmtu;
+-
+- struct ih_rtradv
+- {
+- u_int8_t irt_num_addrs;
+- u_int8_t irt_wpa;
+- u_int16_t irt_lifetime;
+- } ih_rtradv;
+- } icmp_hun;
+-#define icmp_pptr icmp_hun.ih_pptr
+-#define icmp_gwaddr icmp_hun.ih_gwaddr
+-#define icmp_id icmp_hun.ih_idseq.icd_id
+-#define icmp_seq icmp_hun.ih_idseq.icd_seq
+-#define icmp_void icmp_hun.ih_void
+-#define icmp_pmvoid icmp_hun.ih_pmtu.ipm_void
+-#define icmp_nextmtu icmp_hun.ih_pmtu.ipm_nextmtu
+-#define icmp_num_addrs icmp_hun.ih_rtradv.irt_num_addrs
+-#define icmp_wpa icmp_hun.ih_rtradv.irt_wpa
+-#define icmp_lifetime icmp_hun.ih_rtradv.irt_lifetime
+- union
+- {
+- struct
+- {
+- u_int32_t its_otime;
+- u_int32_t its_rtime;
+- u_int32_t its_ttime;
+- } id_ts;
+- struct
+- {
+- struct ip idi_ip;
+- /* options and then 64 bits of data */
+- } id_ip;
+- struct icmp_ra_addr id_radv;
+- u_int32_t id_mask;
+- u_int8_t id_data[1];
+- } icmp_dun;
+-#define icmp_otime icmp_dun.id_ts.its_otime
+-#define icmp_rtime icmp_dun.id_ts.its_rtime
+-#define icmp_ttime icmp_dun.id_ts.its_ttime
+-#define icmp_ip icmp_dun.id_ip.idi_ip
+-#define icmp_radv icmp_dun.id_radv
+-#define icmp_mask icmp_dun.id_mask
+-#define icmp_data icmp_dun.id_data
+-};
+-
+-/*
+- * Lower bounds on packet lengths for various types.
+- * For the error advice packets must first insure that the
+- * packet is large enough to contain the returned ip header.
+- * Only then can we do the check to see if 64 bits of packet
+- * data have been returned, since we need to check the returned
+- * ip header length.
+- */
+-#define ICMP_MINLEN 8 /* abs minimum */
+-#define ICMP_TSLEN (8 + 3 * sizeof (n_time)) /* timestamp */
+-#define ICMP_MASKLEN 12 /* address mask */
+-#define ICMP_ADVLENMIN (8 + sizeof (struct ip) + 8) /* min */
+-#ifndef _IP_VHL
+-#define ICMP_ADVLEN(p) (8 + ((p)->icmp_ip.ip_hl << 2) + 8)
+- /* N.B.: must separately check that ip_hl >= 5 */
+-#else
+-#define ICMP_ADVLEN(p) (8 + (IP_VHL_HL((p)->icmp_ip.ip_vhl) << 2) + 8)
+- /* N.B.: must separately check that header length >= 5 */
+-#endif
+-
+-/* Definition of type and code fields. */
+-/* defined above: ICMP_ECHOREPLY, ICMP_REDIRECT, ICMP_ECHO */
+-#define ICMP_UNREACH 3 /* dest unreachable, codes: */
+-#define ICMP_SOURCEQUENCH 4 /* packet lost, slow down */
+-#define ICMP_ROUTERADVERT 9 /* router advertisement */
+-#define ICMP_ROUTERSOLICIT 10 /* router solicitation */
+-#define ICMP_TIMXCEED 11 /* time exceeded, code: */
+-#define ICMP_PARAMPROB 12 /* ip header bad */
+-#define ICMP_TSTAMP 13 /* timestamp request */
+-#define ICMP_TSTAMPREPLY 14 /* timestamp reply */
+-#define ICMP_IREQ 15 /* information request */
+-#define ICMP_IREQREPLY 16 /* information reply */
+-#define ICMP_MASKREQ 17 /* address mask request */
+-#define ICMP_MASKREPLY 18 /* address mask reply */
+-
+-#define ICMP_MAXTYPE 18
+-
+-/* UNREACH codes */
+-#define ICMP_UNREACH_NET 0 /* bad net */
+-#define ICMP_UNREACH_HOST 1 /* bad host */
+-#define ICMP_UNREACH_PROTOCOL 2 /* bad protocol */
+-#define ICMP_UNREACH_PORT 3 /* bad port */
+-#define ICMP_UNREACH_NEEDFRAG 4 /* IP_DF caused drop */
+-#define ICMP_UNREACH_SRCFAIL 5 /* src route failed */
+-#define ICMP_UNREACH_NET_UNKNOWN 6 /* unknown net */
+-#define ICMP_UNREACH_HOST_UNKNOWN 7 /* unknown host */
+-#define ICMP_UNREACH_ISOLATED 8 /* src host isolated */
+-#define ICMP_UNREACH_NET_PROHIB 9 /* net denied */
+-#define ICMP_UNREACH_HOST_PROHIB 10 /* host denied */
+-#define ICMP_UNREACH_TOSNET 11 /* bad tos for net */
+-#define ICMP_UNREACH_TOSHOST 12 /* bad tos for host */
+-#define ICMP_UNREACH_FILTER_PROHIB 13 /* admin prohib */
+-#define ICMP_UNREACH_HOST_PRECEDENCE 14 /* host prec vio. */
+-#define ICMP_UNREACH_PRECEDENCE_CUTOFF 15 /* prec cutoff */
+-
+-/* REDIRECT codes */
+-#define ICMP_REDIRECT_NET 0 /* for network */
+-#define ICMP_REDIRECT_HOST 1 /* for host */
+-#define ICMP_REDIRECT_TOSNET 2 /* for tos and net */
+-#define ICMP_REDIRECT_TOSHOST 3 /* for tos and host */
+-
+-/* TIMEXCEED codes */
+-#define ICMP_TIMXCEED_INTRANS 0 /* ttl==0 in transit */
+-#define ICMP_TIMXCEED_REASS 1 /* ttl==0 in reass */
+-
+-/* PARAMPROB code */
+-#define ICMP_PARAMPROB_OPTABSENT 1 /* req. opt. absent */
+-
+-#define ICMP_INFOTYPE(type) \
+- ((type) == ICMP_ECHOREPLY || (type) == ICMP_ECHO || \
+- (type) == ICMP_ROUTERADVERT || (type) == ICMP_ROUTERSOLICIT || \
+- (type) == ICMP_TSTAMP || (type) == ICMP_TSTAMPREPLY || \
+- (type) == ICMP_IREQ || (type) == ICMP_IREQREPLY || \
+- (type) == ICMP_MASKREQ || (type) == ICMP_MASKREPLY)
+-
+-#endif /* __USE_BSD */
+-
+-#endif /* netinet/ip_icmp.h */
+diff -durN orig/include-glibc/socketbits.h new/include-glibc/socketbits.h
+--- orig/include-glibc/socketbits.h 2005-11-14 22:37:26.000000000 +1100
++++ new/include-glibc/socketbits.h 1970-01-01 10:00:00.000000000 +1000
+@@ -1,280 +0,0 @@
+-/* System-specific socket constants and types. Linux version.
+- Copyright (C) 1991, 92, 94, 95, 96, 97, 98 Free Software Foundation, Inc.
+- This file is part of the GNU C Library.
+-
+- The GNU C Library is free software; you can redistribute it and/or
+- modify it under the terms of the GNU Library General Public License as
+- published by the Free Software Foundation; either version 2 of the
+- License, or (at your option) any later version.
+-
+- The GNU C Library is distributed in the hope that it will be useful,
+- but WITHOUT ANY WARRANTY; without even the implied warranty of
+- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+- Library General Public License for more details.
+-
+- You should have received a copy of the GNU Library General Public
+- License along with the GNU C Library; see the file COPYING.LIB. If not,
+- write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
+- Boston, MA 02111-1307, USA. */
+-
+-#ifndef _SOCKETBITS_H
+-
+-#define _SOCKETBITS_H 1
+-#include <features.h>
+-
+-#define __need_size_t
+-#define __need_NULL
+-#include <stddef.h>
+-
+-
+-__BEGIN_DECLS
+-
+-/* Type for length arguments in socket calls. */
+-#ifndef __socklen_t_defined
+-typedef unsigned int socklen_t;
+-# define __socklen_t_defined
+-#endif
+-
+-/* Types of sockets. */
+-enum __socket_type
+-{
+-#ifndef __mips__
+- SOCK_STREAM = 1, /* Sequenced, reliable, connection-based
+- byte streams. */
+-#define SOCK_STREAM SOCK_STREAM
+- SOCK_DGRAM = 2, /* Connectionless, unreliable datagrams
+- of fixed maximum length. */
+-#define SOCK_DGRAM SOCK_DGRAM
+-#else
+- SOCK_STREAM = 2, /* Sequenced, reliable, connection-based
+- byte streams. */
+-#define SOCK_STREAM SOCK_STREAM
+- SOCK_DGRAM = 1, /* Connectionless, unreliable datagrams
+- of fixed maximum length. */
+-#define SOCK_DGRAM SOCK_DGRAM
+-#endif
+- SOCK_RAW = 3, /* Raw protocol interface. */
+-#define SOCK_RAW SOCK_RAW
+- SOCK_RDM = 4, /* Reliably-delivered messages. */
+-#define SOCK_RDM SOCK_RDM
+- SOCK_SEQPACKET = 5, /* Sequenced, reliable, connection-based,
+- datagrams of fixed maximum length. */
+-#define SOCK_SEQPACKET SOCK_SEQPACKET
+- SOCK_PACKET = 10 /* Linux specific way of getting packets
+- at the dev level. For writing rarp and
+- other similar things on the user level. */
+-#define SOCK_PACKET SOCK_PACKET
+-};
+-
+-/* Protocol families. */
+-#define PF_UNSPEC 0 /* Unspecified. */
+-#define PF_LOCAL 1 /* Local to host (pipes and file-domain). */
+-#define PF_UNIX PF_LOCAL /* Old BSD name for PF_LOCAL. */
+-#define PF_FILE PF_LOCAL /* POSIX name for PF_LOCAL. */
+-#define PF_INET 2 /* IP protocol family. */
+-#define PF_AX25 3 /* Amateur Radio AX.25. */
+-#define PF_IPX 4 /* Novell Internet Protocol. */
+-#define PF_APPLETALK 5 /* Don't use this. */
+-#define PF_NETROM 6 /* Amateur radio NetROM. */
+-#define PF_BRIDGE 7 /* Multiprotocol bridge. */
+-#define PF_AAL5 8 /* Reserved for Werner's ATM. */
+-#define PF_X25 9 /* Reserved for X.25 project. */
+-#define PF_INET6 10 /* IP version 6. */
+-#define PF_ROSE 11 /* Amateur Radio X.25 PLP */
+-#define PF_DECnet 12 /* Reserved for DECnet project */
+-#define PF_NETBEUI 13 /* Reserved for 802.2LLC project*/
+-#define PF_SECURITY 14 /* Security callback pseudo AF */
+-#define PF_KEY 15 /* PF_KEY key management API */
+-#define PF_NETLINK 16
+-#define PF_ROUTE PF_NETLINK /* Alias to emulate 4.4BSD */
+-#define PF_PACKET 17 /* Packet family */
+-#define PF_MAX 32 /* For now.. */
+-
+-/* Address families. */
+-#define AF_UNSPEC PF_UNSPEC
+-#define AF_LOCAL PF_LOCAL
+-#define AF_UNIX PF_UNIX
+-#define AF_FILE PF_FILE
+-#define AF_INET PF_INET
+-#define AF_AX25 PF_AX25
+-#define AF_IPX PF_IPX
+-#define AF_APPLETALK PF_APPLETALK
+-#define AF_NETROM PF_NETROM
+-#define AF_BRIDGE PF_BRIDGE
+-#define AF_AAL5 PF_AAL5
+-#define AF_X25 PF_X25
+-#define AF_INET6 PF_INET6
+-#define AF_ROSE PF_ROSE
+-#define AF_DECnet PF_DECnet
+-#define AF_NETBEUI PF_NETBEUI
+-#define AF_SECURITY PF_SECURITY
+-#define pseudo_AF_KEY pseudo_PF_KEY
+-#define AF_NETLINK PF_NETLINK
+-#define AF_ROUTE PF_ROUTE
+-#define AF_PACKET PF_PACKET
+-#define AF_MAX PF_MAX
+-
+-/* Socket level values. Others are defined in the appropriate headers.
+-
+- XXX These definitions also should go into the appropriate headers as
+- far as they are available. */
+-#define SOL_IPV6 41
+-#define SOL_ICMPV6 58
+-#define SOL_RAW 255
+-#define SOL_AX25 257
+-#define SOL_ATALK 258
+-#define SOL_NETROM 259
+-#define SOL_ROSE 260
+-#define SOL_DECNET 261
+-#define SOL_X25 262
+-
+-/* Maximum queue length specifiable by listen. */
+-#define SOMAXCONN 128
+-
+-/* Get the definition of the macro to define the common sockaddr members. */
+-#if __GLIBC_MINOR__ >= 1
+-#include <bits/sockaddr.h>
+-#else
+-#include <sockaddrcom.h>
+-#endif
+-
+-/* Structure describing a generic socket address. */
+-struct sockaddr
+- {
+- __SOCKADDR_COMMON (sa_); /* Common data: address family and length. */
+- char sa_data[14]; /* Address data. */
+- };
+-
+-
+-/* Bits in the FLAGS argument to `send', `recv', et al. */
+-enum
+- {
+- MSG_OOB = 0x01, /* Process out-of-band data. */
+-#define MSG_OOB MSG_OOB
+- MSG_PEEK = 0x02, /* Peek at incoming messages. */
+-#define MSG_PEEK MSG_PEEK
+- MSG_DONTROUTE = 0x04, /* Don't use local routing. */
+-#define MSG_DONTROUTE MSG_DONTROUTE
+- MSG_CTRUNC = 0x08, /* Control data lost before delivery. */
+-#define MSG_CTRUNC MSG_CTRUNC
+- MSG_PROBE = 0x10,
+-#define MSG_PROBE MSG_PROBE
+- MSG_TRUNC = 0x20,
+-#define MSG_TRUNC MSG_TRUNC
+- MSG_DONTWAIT = 0x40,
+-#define MSG_DONTWAIT MSG_DONTWAIT
+- MSG_WAITALL = 0x100,
+-#define MSG_WAITALL MSG_WAITALL
+- MSG_CONFIRM = 0x800,
+-#define MSG_CONFIRM MSG_CONFIRM
+- MSG_ERRQUEUE = 0x2000,
+-#define MSG_ERRQUEUE MSG_ERRQUEUE
+- MSG_NOSIGNAL = 0x4000,
+-#define MSG_NOSIGNAL MSG_NOSIGNAL
+- };
+-
+-/* Structure describing messages sent by
+- `sendmsg' and received by `recvmsg'. */
+-struct msghdr
+- {
+- __ptr_t msg_name; /* Address to send to/receive from. */
+- socklen_t msg_namelen; /* Length of address data. */
+-
+- struct iovec *msg_iov; /* Vector of data to send/receive into. */
+- size_t msg_iovlen; /* Number of elements in the vector. */
+-
+- __ptr_t msg_control; /* Ancillary data (eg BSD filedesc passing). */
+- size_t msg_controllen; /* Ancillary data buffer length. */
+-
+- int msg_flags; /* Flags on received message. */
+- };
+-
+-/* Structure used for storage of ancillary data object information. */
+-struct cmsghdr
+- {
+- size_t cmsg_len; /* Length of data in cmsg_data plus length
+- of cmsghdr structure. */
+- int cmsg_level; /* Originating protocol. */
+- int cmsg_type; /* Protocol specific type. */
+-#if !defined __STRICT_ANSI__ && defined __GNUC__ && __GNUC__ >= 2
+- unsigned char __cmsg_data[0]; /* Ancillary data. */
+-#endif
+- };
+-
+-/* Ancillary data object manipulation macros. */
+-#if !defined __STRICT_ANSI__ && defined __GNUC__ && __GNUC__ >= 2
+-# define CMSG_DATA(cmsg) ((cmsg)->__cmsg_data)
+-#else
+-# define CMSG_DATA(cmsg) ((unsigned char *) ((struct cmsghdr *) (cmsg) + 1))
+-#endif
+-#define CMSG_NXTHDR(mhdr, cmsg) __cmsg_nxthdr (mhdr, cmsg)
+-#define CMSG_FIRSTHDR(mhdr) \
+- ((size_t) (mhdr)->msg_controllen >= sizeof (struct cmsghdr) \
+- ? (struct cmsghdr *) (mhdr)->msg_control : (struct cmsghdr *) NULL)
+-#define CMSG_ALIGN(len) ( ((len)+sizeof(long)-1) & ~(sizeof(long)-1) )
+-#define CMSG_SPACE(len) (CMSG_ALIGN(sizeof(struct cmsghdr)) + CMSG_ALIGN(len))
+-#define CMSG_LEN(len) (CMSG_ALIGN(sizeof(struct cmsghdr)) + (len))
+-
+-
+-#ifndef _EXTERN_INLINE
+-# define _EXTERN_INLINE extern __inline
+-#endif
+-extern struct cmsghdr *__cmsg_nxthdr __P ((struct msghdr *__mhdr,
+- struct cmsghdr *__cmsg));
+-_EXTERN_INLINE struct cmsghdr *
+-__cmsg_nxthdr (struct msghdr *__mhdr, struct cmsghdr *__cmsg)
+-{
+- if ((size_t) __cmsg->cmsg_len < sizeof (struct cmsghdr))
+- /* The kernel header does this so there may be a reason. */
+- return NULL;
+-
+- __cmsg = (struct cmsghdr *)
+- ((unsigned char *) __cmsg + CMSG_ALIGN(__cmsg->cmsg_len));
+-
+- if ( (unsigned char *) (__cmsg + 1) >=
+- (unsigned char *) __mhdr->msg_control + __mhdr->msg_controllen)
+- /* No more entries. */
+- return NULL;
+- return __cmsg;
+-}
+-
+-/* Socket level message types. This must match the definitions in
+- <linux/socket.h>. */
+-enum
+- {
+- SCM_RIGHTS = 0x01, /* Data array contains access rights. */
+-#define SCM_RIGHTS SCM_RIGHTS
+- SCM_CREDENTIALS = 0x02, /* Data array is `struct ucred'. */
+-#define SCM_CREDENTIALS SCM_CREDENTIALS
+- };
+-
+-
+-
+-/* Get socket manipulation related informations from kernel headers. */
+-#ifdef THIS_IS_CRAP
+-#ifndef _LINUX_TYPES_H
+-# define _LINUX_TYPES_H
+-#endif
+-#endif
+-
+-#include <asm/socket.h>
+-#include <asm/types.h>
+-
+-struct ucred
+-{
+- __u32 pid;
+- __u32 uid;
+- __u32 gid;
+-};
+-
+-
+-/* Structure used to manipulate the SO_LINGER option. */
+-struct linger
+- {
+- int l_onoff; /* Nonzero to linger on close. */
+- int l_linger; /* Time to linger. */
+- };
+-
+-__END_DECLS
+-
+-#endif /* socketbits.h */