Commit Graph

42 Commits

Author SHA1 Message Date
David Malone
e4ad3d8dd8 Make traceroute decode all the ICMP unreachable messages defined
in http://www.iana.org/assignments/icmp-parameters. Thankfully
IANA's list aggrees with <netinet/ip_icmp.h>.

I've tried to do this in a way which is mostly consistent with
tcptraceroute and Debian's version of traceroute. However, sometimes
a letter is used twice by these versions, so I've gone with:

                                LBL     tcptr   Debian          (chosen)
ICMP_UNREACH_NET                !N      !N      !N              !N
ICMP_UNREACH_HOST               !H      !H      !H              !H
ICMP_UNREACH_PROTOCOL           !P      !P      !P              !P
ICMP_UNREACH_PORT               !       !p      !               !
ICMP_UNREACH_NEEDFRAG           !F-%d   !F      !F-<%d>         !F-<%d>
ICMP_UNREACH_SRCFAIL            !S      !S      !S              !S
ICMP_UNREACH_NET_UNKNOWN        !<%d>   !U      !<%d>           !U
ICMP_UNREACH_HOST_UNKNOWN       !<%d>   !U      !<%d>           !W
ICMP_UNREACH_ISOLATED           !<%d>   !I      !I              !I
ICMP_UNREACH_NET_PROHIB         !<%d>   !A      !A              !A
ICMP_UNREACH_HOST_PROHIB        !<%d>   !C      !C              !Z
ICMP_UNREACH_TOSNET             !<%d>   !T      !T              !Q
ICMP_UNREACH_TOSHOST            !<%d>   !T      !T              !T
ICMP_UNREACH_FILTER_PROHIB      !X      !A      !A              !X
ICMP_UNREACH_HOST_PRECEDENCE    !V      !<%d>   !V              !V
ICMP_UNREACH_PRECEDENCE_CUTOFF  !C      !<%d>   !C              !C

Graham Wilson is planning to use the same codes in Debian's version.

MFC after:	3 weeks
2006-06-13 14:59:07 +00:00
Maxim Konovalov
75c0641ed4 o It's lilac-dmc.Berkeley.EDU, not lbl-csam.arpa.
Obtained from:	NetBSD
2006-06-07 21:37:42 +00:00
Crist J. Clark
a719d3b931 Option for setting a fixed destination port. This is useful for tracing
to a host behind a firewall where only specific services are allowed.
For example, to trace the hops to an HTTP server behind a firewall,

  $ traceroute -e -P tcp -p 80 www-firewalled.example.com

MFC after:	1 week
2006-05-11 06:30:18 +00:00
Pav Lucistnik
811c0f2ed0 - Update pretty print of multipath routes to better handle timeout of first
probe

  Before:
   5  *
    freebsd (195.250.137.134)  19.086 ms  24.694 ms

  After:
   5  * freebsd (195.250.137.134)  19.086 ms  24.694 ms

Fixes:		bin/90098
Reported by:	Jeremy Chadwick <freebsd@jdc.parodius.com>
Approved by:	andre
MFC after:	1 day
2006-01-10 16:48:52 +00:00
Andre Oppermann
9e24bd90fe Pretty print multipath routes.
Before (backslash in c syntax meaning):
 6  p16-2-0-0.r21.sttlwa01.us.bb.verio.net (129.250.2.180)  71.027 ms \
p16-1-1-3.r20.sttlwa01.us.bb.verio.net (129.250.2.6)  66.730 ms  66.535 ms
 7  xe-0-2-0.r20.sttlwa01.us.bb.verio.net (129.250.4.16)  71.092 ms \
xe-3-1.r00.sttlwa01.us.bb.verio.net (129.250.2.205)  66.598 ms \
xe-0-2-0.r20.sttlwa01.us.bb.verio.net (129.250.4.16)  71.024 ms

After:
 6  p16-2-0-0.r21.sttlwa01.us.bb.verio.net (129.250.2.180)  71.027 ms
    p16-1-1-3.r20.sttlwa01.us.bb.verio.net (129.250.2.6)  66.730 ms  66.535 ms
 7  xe-0-2-0.r20.sttlwa01.us.bb.verio.net (129.250.4.16)  71.092 ms
    xe-3-1.r00.sttlwa01.us.bb.verio.net (129.250.2.205)  66.598 ms
    xe-0-2-0.r20.sttlwa01.us.bb.verio.net (129.250.4.16)  71.024 ms

Submitted by:	Richard A Steenbergen <ras at e-gerbil.net>
MFC after:	3 days
2005-08-26 18:08:24 +00:00
Thomas Quinot
be9ede4a45 Fix minor discrepancy between documentation and implementation: the
destination port is incremented for each packet sent to the same hop.

MFC after:	1 week
2005-04-12 15:16:32 +00:00
Maxime Henrion
b61cbc55fe Remove an empty default: case to please GCC 3.4.2. 2004-07-28 14:21:25 +00:00
Pierre Beyssac
bc5cfff933 Check -s option source address for validity.
PR:		bin/29026
MFC after:	1 week
2004-04-17 18:44:23 +00:00
Colin Percival
1939168416 Fix traceroute where [number of hops] * [number of packets per hop] > 255.
PR:		misc/61336
Submitted by:	Mike Hibler <mike@cs.utah.edu>
Approved by:	rwatson (mentor)
2004-01-23 06:55:15 +00:00
Bill Fenner
83d000df26 Fix misspelling.
PR:		docs/44930
Submitted by:	Michael McGoldrick <mmcgoldrick@linuxdriven.net>
2002-12-13 22:26:10 +00:00
Bill Fenner
d3125a3e10 Routing socket messages are padded to sizeof(long), not just
sizeof(u_int32_t).
2002-07-30 04:49:13 +00:00
Bill Fenner
edfe5cffff Calculate checksums correctly when LSRR is in effect by passing the
IP header and protocol header seperately.
Also calculate TCP checksums.

Submitted by:	orion
2002-07-28 02:34:39 +00:00
Bill Fenner
0952bc9f4b Merge 1.4a12 2002-07-28 02:26:31 +00:00
Bill Fenner
35d3ea799b This commit was generated by cvs2svn to compensate for changes in r100784,
which included commits to RCS files with non-trunk default branches.
2002-07-28 02:24:33 +00:00
Bill Fenner
5f3a73ba3a Virgin import of LBL traceroute v1.4a12 2002-07-28 02:24:33 +00:00
Daniel C. Sobral
8f32fe91de s/ifdef/ifndef/.
Fenner got this inverted through a misunderstanding between us.
2002-07-23 12:25:34 +00:00
Bill Fenner
c898fd637d Add '+FreeBSD' to the version string, to reflect that this program
bears little relationship to the one from LBL with the same
 name and version number.
2002-07-23 00:56:52 +00:00
Bill Fenner
290006640b Add an ICMP protocol handler, partly based on LBL's traceroute 1.4 .
Submitted by:	dcs
2002-07-22 23:01:11 +00:00
Bill Fenner
dbee325068 Actually use gen_prep() and gen_check(), instead of udp_prep() and
udp_check(), for unknown protocols.
2002-07-22 22:07:23 +00:00
Robert Drehmel
eac66622a0 Allocate and clear the correct number of bytes for a
struct fd_set that should be able to hold sock + 1 bits.
Before, it was apparently assumed that an fd_mask has
the same size as type char.

PR:		bin/39617
Reported by:	Peter N Lewis <peter@stairways.com.au>
2002-06-23 21:54:18 +00:00
Ruslan Ermilov
3c5021685e Fetch the default maximum TTL value from the net.inet.ip.ttl MIB.
PR:		bin/19598
MFC after:	1 week
2001-06-06 16:12:59 +00:00
David E. O'Brien
a918f16a94 Defining usage() "__dead" is just ridiculous. It also won't compile with
a June 2000 GCC 2.96 snapshot.

Reviewed by:	bde
2000-10-27 05:51:59 +00:00
Kris Kennaway
c9f7579521 Don't write past the end of our fd_set
Obtained from:	OpenBSD, via KAME
2000-10-08 07:58:32 +00:00
Kris Kennaway
d35c03b40d Format string paranoia. 2000-10-08 07:54:43 +00:00
Guy Helmer
671dd36817 Document the -S flag (added in rev. 1.4) in the usage() function.
PR:		bin/18153
Prompted by:	Nathan Ahlstrom <nrahlstr@winternet.com>
2000-07-07 19:44:36 +00:00
Yoshinobu Inoue
a3e1dbab8b Correct FreeBSD id place. Also correct vendor rcsid.
Specified by: bde

Reviewed by: bde
2000-03-30 15:23:44 +00:00
Yoshinobu Inoue
497f9e5a33 Bypass IPsec for traceroute invoked by root.
PR: bin/17606
Submitted by: Louis Mamakos <louie@TransSys.COM
2000-03-30 01:33:39 +00:00
Alexey Zelkin
0dba17bd72 s/tcpdump/traceroute
PR:		docs/14523
Submitted by:	Adam Morrison <adam@xpert.com>
1999-12-20 16:07:53 +00:00
David E. O'Brien
ca5065cd1f Fully document -q.
Restore original $Header$.
1999-10-05 15:20:45 +00:00
Archie Cobbs
ad0caac41f Fix bug (introduced by me) where UDP port numbers were starting at 1 instead
of 33435 like before.

Reported by:	John Polstra <jdp@polstra.com>
1999-06-25 21:48:40 +00:00
Archie Cobbs
255065aa3b Add a min TTL flag to go along with the max TTL flag. That is, this flag
allows you to start tracing at a hop number other than 1.

Submitted by:	Stefan `Sec` Zehl <sec@42.org>
1999-05-12 17:28:31 +00:00
Archie Cobbs
f5004fb09b Add the capability for traceroute(8) to send packets of any IP protocol
instead of just UDP; an alternate protocol is specified by '-P proto'.
This is useful for finding routers that are blocking packets based on
IP protocol.  New handlers can be added fairly easily to do protocol-
specific things.
1999-05-06 03:23:24 +00:00
Dag-Erling Smørgrav
424a49ef3f Better fix for the traceroute flood bug.
Submitted by:	bde
1999-02-16 14:19:50 +00:00
Dag-Erling Smørgrav
5ade368c37 If the user provided a large enough argument to the -w option, the sum
would overflow and you'd end up doing select() with a negative timeout.
1999-02-15 08:11:44 +00:00
John Birrell
fa05a94c42 Fix an alignment problem on alpha by doing a bytewise copy. 1998-06-06 23:33:28 +00:00
Steve Price
1e940cecad Fix an anomaly in the option descriptions.
PR:		5469
Submitted by:	NOKUBI Hirotaka <h-nokubi@yyy.or.jp>
1998-01-09 18:46:53 +00:00
Sean Eric Fagan
9ec72be8de Fix a typo. Oops.
Submitted by:	asami
1996-10-08 19:16:24 +00:00
Sean Eric Fagan
b223204418 Paul objected to my previous change. This adds the same functionality
(implemented better, admittedly) with a new option, '-S'.  If the
maintainers of traceroute (Van?) add a -S option, we will then be in
conflict.

Also added a too-brief description of the option in the man page.  Someone
with a better command of English than I at the moment should probably look
over it and rephrase it.

Reviewed by:	pst, jkh
1996-10-08 02:44:26 +00:00
Sean Eric Fagan
8b76fb6a8d Print out a summary of the loss percentages for each hop. No manual changes
just yet, I know, evil of me.

Reviewed by:	jkh
1996-10-05 01:43:13 +00:00
Bill Fenner
232fb09b08 Instructions on upgrading traceroute 1996-10-01 06:17:16 +00:00
Bill Fenner
c2b02248f9 Add FreeBSD modifications
- Move setuid(getuid()) much earlier
- Add "SANE_PRECISION" time printing code
1996-09-30 19:39:25 +00:00
Bill Fenner
38a623ef96 Virgin import of LBL traceroute version 1.3.2.
Obtained from: ftp://ftp.ee.lbl.gov/traceroute.tar.Z on 30-Sep-1996.
1996-09-30 19:09:55 +00:00