it is highly unlikely that protocol # for ip/icmp to change. from deraadt.
This commit is contained in:
parent
772ba32c77
commit
1fd7b003fa
@ -1,4 +1,4 @@
|
|||||||
/* $NetBSD: traceroute.c,v 1.46 2002/05/26 14:45:43 itojun Exp $ */
|
/* $NetBSD: traceroute.c,v 1.47 2002/06/29 12:12:57 itojun Exp $ */
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Copyright (c) 1988, 1989, 1991, 1994, 1995, 1996, 1997
|
* Copyright (c) 1988, 1989, 1991, 1994, 1995, 1996, 1997
|
||||||
@ -29,7 +29,7 @@ static const char rcsid[] =
|
|||||||
#else
|
#else
|
||||||
__COPYRIGHT("@(#) Copyright (c) 1988, 1989, 1991, 1994, 1995, 1996, 1997\n\
|
__COPYRIGHT("@(#) Copyright (c) 1988, 1989, 1991, 1994, 1995, 1996, 1997\n\
|
||||||
The Regents of the University of California. All rights reserved.\n");
|
The Regents of the University of California. All rights reserved.\n");
|
||||||
__RCSID("$NetBSD: traceroute.c,v 1.46 2002/05/26 14:45:43 itojun Exp $");
|
__RCSID("$NetBSD: traceroute.c,v 1.47 2002/06/29 12:12:57 itojun Exp $");
|
||||||
#endif
|
#endif
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
@ -391,7 +391,6 @@ main(int argc, char **argv)
|
|||||||
register struct sockaddr_in *to = (struct sockaddr_in *)&whereto;
|
register struct sockaddr_in *to = (struct sockaddr_in *)&whereto;
|
||||||
register struct hostinfo *hi;
|
register struct hostinfo *hi;
|
||||||
int on = 1;
|
int on = 1;
|
||||||
register struct protoent *pe;
|
|
||||||
register int ttl, probe, i;
|
register int ttl, probe, i;
|
||||||
register int seq = 0;
|
register int seq = 0;
|
||||||
int tos = 0, settos = 0, ttl_flag = 0;
|
int tos = 0, settos = 0, ttl_flag = 0;
|
||||||
@ -637,12 +636,7 @@ main(int argc, char **argv)
|
|||||||
outmark = outudp + 1;
|
outmark = outudp + 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
cp = "icmp";
|
if ((s = socket(AF_INET, SOCK_RAW, IPPROTO_ICMP)) < 0) {
|
||||||
if ((pe = getprotobyname(cp)) == NULL) {
|
|
||||||
Fprintf(stderr, "%s: unknown protocol %s\n", prog, cp);
|
|
||||||
exit(1);
|
|
||||||
}
|
|
||||||
if ((s = socket(AF_INET, SOCK_RAW, pe->p_proto)) < 0) {
|
|
||||||
Fprintf(stderr, "%s: icmp socket: %s\n", prog, strerror(errno));
|
Fprintf(stderr, "%s: icmp socket: %s\n", prog, strerror(errno));
|
||||||
exit(1);
|
exit(1);
|
||||||
}
|
}
|
||||||
@ -736,12 +730,6 @@ main(int argc, char **argv)
|
|||||||
if (lsrr > 0) {
|
if (lsrr > 0) {
|
||||||
u_char optlist[MAX_IPOPTLEN];
|
u_char optlist[MAX_IPOPTLEN];
|
||||||
|
|
||||||
cp = "ip";
|
|
||||||
if ((pe = getprotobyname(cp)) == NULL) {
|
|
||||||
Fprintf(stderr, "%s: unknown protocol %s\n", prog, cp);
|
|
||||||
exit(1);
|
|
||||||
}
|
|
||||||
|
|
||||||
/* final hop */
|
/* final hop */
|
||||||
gwlist[lsrr] = to->sin_addr.s_addr;
|
gwlist[lsrr] = to->sin_addr.s_addr;
|
||||||
++lsrr;
|
++lsrr;
|
||||||
@ -756,7 +744,7 @@ main(int argc, char **argv)
|
|||||||
optlist[3] = IPOPT_MINOFF;
|
optlist[3] = IPOPT_MINOFF;
|
||||||
memcpy(optlist + 4, gwlist, i);
|
memcpy(optlist + 4, gwlist, i);
|
||||||
|
|
||||||
if ((setsockopt(sndsock, pe->p_proto, IP_OPTIONS, optlist,
|
if ((setsockopt(sndsock, IPPROTO_IP, IP_OPTIONS, optlist,
|
||||||
i + sizeof(gwlist[0]))) < 0) {
|
i + sizeof(gwlist[0]))) < 0) {
|
||||||
Fprintf(stderr, "%s: IP_OPTIONS: %s\n",
|
Fprintf(stderr, "%s: IP_OPTIONS: %s\n",
|
||||||
prog, strerror(errno));
|
prog, strerror(errno));
|
||||||
|
Loading…
Reference in New Issue
Block a user