From 1a3b7c136050ecdf583dc34312d05b9157e772fe Mon Sep 17 00:00:00 2001 From: david Date: Thu, 6 Aug 2009 18:47:10 +0000 Subject: [PATCH] Bail out of traceroute if the initial TTL guess probe is not responded to. Currently continuing from there leads to pathological behavior where every hop up to 50 is tried, taking a very long time. --- traceroute.cc | 3 +++ 1 file changed, 3 insertions(+) diff --git a/traceroute.cc b/traceroute.cc index 806bf18bb..0e7b05aa4 100644 --- a/traceroute.cc +++ b/traceroute.cc @@ -1144,6 +1144,9 @@ TraceGroup::retransmissions (vector < TraceProbe * >&retrans) { if (it->second->probeType () == PROBE_TTL) { hopDistance = 1; noDistProbe = true; + /* Give up on this host. We should be able to do a trace against + an unresponsive target but for now it's too slow. */ + setState(G_DEAD_TTL); if (o.verbose) log_write (LOG_STDOUT, "%s: no reply to our hop distance probe!\n", IPStr ()); } else if (it->second->ttl > MAX_TTL) {