summaryrefslogtreecommitdiffstats
path: root/contrib/traceroute
diff options
context:
space:
mode:
authoruqs <uqs@FreeBSD.org>2010-12-04 14:19:27 +0000
committeruqs <uqs@FreeBSD.org>2010-12-04 14:19:27 +0000
commit1651f4683006c28c940e31292274f20ff6fafc35 (patch)
treeddf8886868dce2f1e33a5aedc2e10459e20df95c /contrib/traceroute
parent27a502627f86e73e105457ee9aa6fe3a603b7e97 (diff)
downloadFreeBSD-src-1651f4683006c28c940e31292274f20ff6fafc35.zip
FreeBSD-src-1651f4683006c28c940e31292274f20ff6fafc35.tar.gz
traceroute(8): make WARNS=3 clean
Also fixes an operator precedence bug for TCP tracerouting
Diffstat (limited to 'contrib/traceroute')
-rw-r--r--contrib/traceroute/as.c3
-rw-r--r--contrib/traceroute/as.h2
-rw-r--r--contrib/traceroute/ifaddrlist.c8
-rw-r--r--contrib/traceroute/traceroute.c13
4 files changed, 12 insertions, 14 deletions
diff --git a/contrib/traceroute/as.c b/contrib/traceroute/as.c
index ed2c440..fd2f961 100644
--- a/contrib/traceroute/as.c
+++ b/contrib/traceroute/as.c
@@ -56,13 +56,14 @@ struct aslookup {
};
void *
-as_setup(char *server)
+as_setup(const char *server)
{
struct aslookup *asn;
struct addrinfo hints, *res0, *res;
FILE *f;
int s, error;
+ s = -1;
if (server == NULL)
server = getenv("RA_SERVER");
if (server == NULL)
diff --git a/contrib/traceroute/as.h b/contrib/traceroute/as.h
index f0e66da..ce10b4b 100644
--- a/contrib/traceroute/as.h
+++ b/contrib/traceroute/as.h
@@ -30,6 +30,6 @@
* POSSIBILITY OF SUCH DAMAGE.
*/
-void *as_setup(char *);
+void *as_setup(const char *);
unsigned int as_lookup(void *, char *, sa_family_t);
void as_shutdown(void *);
diff --git a/contrib/traceroute/ifaddrlist.c b/contrib/traceroute/ifaddrlist.c
index 99c5fc1..b1d41d3 100644
--- a/contrib/traceroute/ifaddrlist.c
+++ b/contrib/traceroute/ifaddrlist.c
@@ -71,14 +71,14 @@ ifaddrlist(register struct ifaddrlist **ipaddrp, register char *errbuf)
{
register int fd, nipaddr;
#ifdef HAVE_SOCKADDR_SA_LEN
- register int n;
+ size_t n;
#endif
register struct ifreq *ifrp, *ifend, *ifnext, *mp;
register struct sockaddr_in *sin;
register struct ifaddrlist *al;
struct ifconf ifc;
struct ifreq ibuf[(32 * 1024) / sizeof(struct ifreq)], ifr;
-#define MAX_IPADDR (sizeof(ibuf) / sizeof(ibuf[0]))
+#define MAX_IPADDR ((int)(sizeof(ibuf) / sizeof(ibuf[0])))
static struct ifaddrlist ifaddrlist[MAX_IPADDR];
char device[sizeof(ifr.ifr_name) + 1];
@@ -91,10 +91,10 @@ ifaddrlist(register struct ifaddrlist **ipaddrp, register char *errbuf)
ifc.ifc_buf = (caddr_t)ibuf;
if (ioctl(fd, SIOCGIFCONF, (char *)&ifc) < 0 ||
- ifc.ifc_len < sizeof(struct ifreq)) {
+ ifc.ifc_len < (int)sizeof(struct ifreq)) {
if (errno == EINVAL)
(void)sprintf(errbuf,
- "SIOCGIFCONF: ifreq struct too small (%d bytes)",
+ "SIOCGIFCONF: ifreq struct too small (%zu bytes)",
sizeof(ibuf));
else
(void)sprintf(errbuf, "SIOCGIFCONF: %s",
diff --git a/contrib/traceroute/traceroute.c b/contrib/traceroute/traceroute.c
index e910d1b..db4d075 100644
--- a/contrib/traceroute/traceroute.c
+++ b/contrib/traceroute/traceroute.c
@@ -220,7 +220,6 @@ static const char rcsid[] =
#include <netinet/ip_var.h>
#include <netinet/ip_icmp.h>
#include <netinet/udp.h>
-#include <netinet/udp_var.h>
#include <netinet/tcp.h>
#include <netinet/tcpip.h>
@@ -1424,7 +1423,7 @@ tcp_check(const u_char *data, int seq)
return (ntohs(tcp->th_sport) == ident
&& ntohs(tcp->th_dport) == port + (fixedPort ? 0 : seq))
- && tcp->th_seq == (ident << 16) | (port + seq);
+ && tcp->th_seq == (((tcp_seq)ident << 16) | (port + seq));
}
void
@@ -1497,19 +1496,17 @@ u_short
p_cksum(struct ip *ip, u_short *data, int len)
{
static struct ipovly ipo;
- u_short sumh, sumd;
- u_long sumt;
+ u_short sum[2];
ipo.ih_pr = ip->ip_p;
ipo.ih_len = htons(len);
ipo.ih_src = ip->ip_src;
ipo.ih_dst = ip->ip_dst;
- sumh = in_cksum((u_short*)&ipo, sizeof(ipo)); /* pseudo ip hdr cksum */
- sumd = in_cksum((u_short*)data, len); /* payload data cksum */
- sumt = (sumh << 16) | (sumd);
+ sum[1] = in_cksum((u_short*)&ipo, sizeof(ipo)); /* pseudo ip hdr cksum */
+ sum[0] = in_cksum(data, len); /* payload data cksum */
- return ~in_cksum((u_short*)&sumt, sizeof(sumt));
+ return ~in_cksum(sum, sizeof(sum));
}
/*
OpenPOWER on IntegriCloud