In Bug 78, shortkey points out:
[oweals/busybox.git] / networking / traceroute.c
index be9ea1d952fc11c0d4a3d6ee0a68d4212d081fa6..44ffdf07e34704ad3ee50abc69f29baa5f6b52fb 100644 (file)
 #include <netinet/ip.h>
 #include <netinet/ip_icmp.h>
 
- /* It turns out that libc5 doesn't have proper icmp support
- * built into it header files, so we have to supplement it */
-#if __GNU_LIBRARY__ < 5
-static const int ICMP_MINLEN = 8;                              /* abs minimum */
-
-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
-};
-
-#define        ICMP_MINLEN     8                               /* abs minimum */
-#define        ICMP_UNREACH            3               /* dest unreachable, codes: */
-#define        ICMP_TIMXCEED           11              /* time exceeded, code: */
-#define        ICMP_TIMXCEED_INTRANS   0               /* ttl==0 in transit */
-#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 */
-#endif
-
 
 #define MAXPACKET       65535   /* max ip packet size */
 #ifndef MAXHOSTNAMELEN