OpenWrt – Rev 1

Subversion Repositories:
Rev:
diff --git a/ping6.c b/ping6.c
index c5ff881..ef2243f 100644
--- a/ping6.c
+++ b/ping6.c
@@ -71,9 +71,11 @@ char copyright[] =
 #include <linux/filter.h>
 #include <netinet/ip6.h>
 #include <netinet/icmp6.h>
+#ifndef __UCLIBC__
 #include <resolv.h>
 
 #include "ping6_niquery.h"
+#endif /* __UCLIBC__ */
 
 #ifndef SOL_IPV6
 #define SOL_IPV6 IPPROTO_IPV6
@@ -154,6 +156,7 @@ int pmtudisc=-1;
 
 static int icmp_sock;
 
+#ifndef __UCLIBC__
 #include <openssl/md5.h>
 
 /* Node Information query */
@@ -165,6 +168,7 @@ int ni_subject_type = 0;
 char *ni_group;
 
 __u8 ni_nonce[8];
+#endif /* __UCLIBC__ */
 
 static struct in6_addr in6_anyaddr;
 static __inline__ int ipv6_addr_any(struct in6_addr *addr)
@@ -223,6 +227,7 @@ unsigned int if_name2index(const char *ifname)
        return i;
 }
 
+#ifndef __UCLIBC__
 struct niquery_option {
        char *name;
        int namelen;
@@ -512,6 +517,7 @@ char *ni_groupaddr(const char *name)
                strcat(nigroup_buf, q);
        return nigroup_buf;
 }
+#endif /* __UCLIBC__ */
 
 int main(int argc, char *argv[])
 {
@@ -595,12 +601,14 @@ int main(int argc, char *argv[])
                case 'V':
                        printf("ping6 utility, iputils-ss%s\n", SNAPSHOT);
                        exit(0);
+#ifndef __UCLIBC__
                case 'N':
                        if (niquery_option_handler(optarg) < 0) {
                                usage();
                                break;
                        }
                        break;
+#endif /* __UCLIBC__ */
                COMMON_OPTIONS
                        common_options(ch);
                        break;
@@ -663,6 +671,7 @@ int main(int argc, char *argv[])
                argc--;
        }
 
+#ifndef __UCLIBC__
        if (ni_query >= 0) {
                int i;
                for (i = 0; i < 8; i++)
@@ -674,15 +683,20 @@ int main(int argc, char *argv[])
                        ni_subject_type = NI_SUBJ_IPV6;
                }
        }
+#endif /* __UCLIBC__ */
 
        if (argc > 1)
                usage();
        else if (argc == 1) {
                target = *argv;
        } else {
+#ifndef __UCLIBC__
                if (ni_query < 0 && ni_subject_type != NI_SUBJ_NAME)
+#endif /* __UCLIBC__ */
                        usage();
+#ifndef __UCLIBC__
                target = ni_group;
+#endif /* __UCLIBC__ */
        }
 
        memset(&hints, 0, sizeof(hints));
@@ -817,7 +831,11 @@ int main(int argc, char *argv[])
                exit(2);
        }
 
+#ifndef __UCLIBC__
        if (datalen >= sizeof(struct timeval) && (ni_query < 0)) {
+#else
+       if (datalen >= sizeof(struct timeval)) {
+#endif /* __UCLIBC__ */
                /* can we time transfer */
                timing = 1;
        }
@@ -866,9 +884,11 @@ int main(int argc, char *argv[])
                ICMP6_FILTER_SETPASS(ICMP6_PARAM_PROB, &filter);
        }
 
+#ifndef __UCLIBC__
        if (ni_query >= 0)
                ICMP6_FILTER_SETPASS(ICMPV6_NI_REPLY, &filter);
        else
+#endif /* __UCLIBC__ */
                ICMP6_FILTER_SETPASS(ICMP6_ECHO_REPLY, &filter);
 
        err = setsockopt(icmp_sock, IPPROTO_ICMPV6, ICMP6_FILTER, &filter,
@@ -1100,6 +1120,7 @@ int build_echo(__u8 *_icmph)
        return cc;
 }
 
+#ifndef __UCLIBC__
 int build_niquery(__u8 *_nih)
 {
        struct ni_hdr *nih;
@@ -1125,6 +1146,7 @@ int build_niquery(__u8 *_nih)
 
        return cc;
 }
+#endif /* __UCLIBC__ */
 
 int send_probe(void)
 {
@@ -1132,9 +1154,11 @@ int send_probe(void)
 
        CLR((ntransmitted+1) % mx_dup_ck);
 
+#ifndef __UCLIBC__
        if (ni_query >= 0)
                len = build_niquery(outpack);
        else
+#endif /* __UCLIBC__ */
                len = build_echo(outpack);
 
        if (cmsglen == 0) {
@@ -1176,6 +1200,7 @@ static void putchar_safe(char c)
                printf("\\%03o", c);
 }
 
+#ifndef __UCLIBC__
 void pr_niquery_reply_name(struct ni_hdr *nih, int len)
 {
        __u8 *h = (__u8 *)(nih + 1);
@@ -1304,6 +1329,7 @@ void pr_niquery_reply(__u8 *_nih, int len)
        }
        putchar(';');
 }
+#endif /* __UCLIBC__ */
 
 /*
  * parse_reply --
@@ -1353,6 +1379,7 @@ parse_reply(struct msghdr *msg, int cc, void *addr, struct timeval *tv)
                                      hops, 0, tv, pr_addr(&from->sin6_addr),
                                      pr_echo_reply))
                        return 0;
+#ifndef __UCLIBC__
        } else if (icmph->icmp6_type == ICMPV6_NI_REPLY) {
                struct ni_hdr *nih = (struct ni_hdr *)icmph;
                __u16 seq = ntohs(*(__u16 *)nih->ni_nonce);
@@ -1363,6 +1390,7 @@ parse_reply(struct msghdr *msg, int cc, void *addr, struct timeval *tv)
                                      hops, 0, tv, pr_addr(&from->sin6_addr),
                                      pr_niquery_reply))
                        return 0;
+#endif /* __UCLIBC__ */
        } else {
                int nexthdr;
                struct ip6_hdr *iph1 = (struct ip6_hdr*)(icmph+1);
@@ -1557,7 +1585,9 @@ void usage(void)
 "Usage: ping6 [-LUdfnqrvVaAD] [-c count] [-i interval] [-w deadline]\n"
 "             [-p pattern] [-s packetsize] [-t ttl] [-I interface]\n"
 "             [-M pmtudisc-hint] [-S sndbuf] [-F flowlabel] [-Q tclass]\n"
+#ifndef __UCLIBC__
 "             [[-N nodeinfo-option] ...]\n"
+#endif /* __UCLIBC__ */
 "             [hop1 ...] destination\n");
        exit(2);
 }
diff --git a/ping6_niquery.h b/ping6_niquery.h
index 61a5cfa..34c31f8 100644
--- a/ping6_niquery.h
+++ b/ping6_niquery.h
@@ -1,3 +1,4 @@
+#ifndef __UCLIBC__
 #include <asm/byteorder.h>
 
 /* Node Information Query */
@@ -45,3 +46,4 @@ struct ni_hdr {
 #define NI_IPV4ADDR_F_TRUNCATE         NI_IPV6ADDR_F_TRUNCATE
 #define NI_IPV4ADDR_F_ALL              NI_IPV6ADDR_F_ALL
 
+#endif /* __UCLIBC__ */

Generated by GNU Enscript 1.6.5.90.