📄 changelog
字号:
2008-09-15 Dmitry Butskoy <Dmitry@Butskoy.name> - 2.0.12 * Use common recv_reply() routine for all modules which do recvmsg(2) call. Method-specific things go to callbacks. Pass to init methods pointer to datalen instead of the value. * Implement ICMP Extension support (rfc4884), `-e' option. Parse MPLS info (rfc4950) to be more readable (Kaj Niemi) * Implement Path MTU Discovery (similar to tracepath(1)), with `--mtu' option. Changed mtu is printed once in a form of `F=NUM' at the first probe of a hop which requires such mtu to be reached. (Actually, the correspond "frag needed" icmp message is normally sent by the previous hop). * Print the number of backward hops when it differs with forward, by `--back' option. The backward hops is guessed by a technique similar to tracepath(1), there is no reliable way to obtain such info though. * The optional second argument (packet_len) now is the full length of the packet, including IP headers. (It is obvious enough due to the nature of this feature, and this is the behaviour of the original traceroute). Particular trace methods can ignore this (fe. tcp), or increase it up to the minimal value (udp, icmp). The actual packet's size is alvays reported in the output header. * Add tracepath(1)/tracepath6(1) shell wrapper. * Allow DEF_AF to be redefined at cmdline (Teran McKinney) * Do not check the correctness of `sim_probes' value -- it is unneeded at all. This also fixes a bug when a value of sim_probes appears to be more than the total number of probes. Reported by Milos Malik. * Allow default UDP method to cross zero port boundary (Milos Malik). It is a strange corner case, but traditional traceroute behaves exactly so.2008-04-25 Dmitry Butskoy <Dmitry@Butskoy.name> - 2.0.11 * Use new pmtudisc value "probe" instead of "do" for `-F' option (available since the kernel 2.6.22). For kernels before 2.6.22, the `-F' (dontfragment) option seems completely useless for IPv6 and partially useful for IPv4 (when a user can flush routing caches some way). * Fix installation in build system (Mike Frysinger) * Don't compute checksum for ipv6 icmp packets ourselves, the kernel overwrites it anyway by the proper values. * Don't use explicit path to traceroute in wrapper scripts2008-04-17 Dmitry Butskoy <Dmitry@Butskoy.name> - 2.0.10 * raw_can_connect(): ipv6 connected raw sockets receive MSG_ERRQUEUE properly only for kernels >= 2.6.25 * remove useless "host" parameter for init methods * add probe_by_seq() and probe_by_sk() routines, don't pass whole probes' pointer to recv_probe method * collect all sends in do_send() routine * Interpret ENOBUFS errors for send(2) as "can retry later". Slow devices (like ppp) with small tx_queue_len can reject the sending of too many packets simultaneously. To handle this, do_send() now returns a negate value in a case of ENOBUFS and similar (instead of program exit). The send_probe method clears the probe and returns immediately in such cases. Then, if there is an amount of time to wait for something, the failed probe will be attempted again after that time expired. If nothing to wait more, the program is exited.2007-09-26 Dmitry Butskoy <Dmitry@Butskoy.name> - 2.0.9 * Complete manual page. * Edit manual page to sound more English, thanks to Chris Ward2007-09-04 Dmitry Butskoy <Dmitry@Butskoy.name> - 2.0.8 * Move all wrappers to special "wrappers/" dir. Add lft(8) shell wrapper. Add traceproto(8) shell wrapper. Add traceroute-nanog(8) shell wrapper. * Interpret first_hop as number, not index * Build system is re-worked to match more the modern requirements (Thanks to Mike Frysinger for testing). * Check for kernel version >= 2.6.22.2 in raw_can_connect() * Add generic "raw" method, "-P protonum" option. New "one_per_time" flag for tr_module.2007-07-31 Dmitry Butskoy <Dmitry@Butskoy.name> - 2.0.7 * Fix revents checking typo * Expect normal data reply from udp too. * Implement udp to port (-U) and udplite (-UL) methods. Both available for unprivileged users. Add "coverage" option for udplite. * Allow non-digit service names for `-p' and `--sport' * Drop period at the end of "SEE ALSO" section, and avoid specific distro names in the manual (Mike Frysinger) * Explicitly mention that this program is licensed as "GPL version 2 or any later version". (Similar for libsupp subdir: LGPL version 2.1 or any later). * Always check whether the dest and source port match in received packets. Can decrease an amount of (hypothetical) garbage received just after the bind() but before connect()2007-07-19 Dmitry Butskoy <Dmitry@Butskoy.name> - 2.0.6 * Rename tr_ops to tr_module * Implement module-specific options (-O opt,...) * Add TCP specific options (all the tcp header flags, ecn, sack, timestamps, window_scaling, mss, sysctl) Build tcp probe packet depending on them. * Add "--sport" option for explicit source port selection. Always cause "-N 1" when it is set. * Add new routine bind_socket(). Always (auto)bind sockets in tune_socket(). * Add tcptraceroute(8) shell wrapper2007-07-16 Dmitry Butskoy <Dmitry@Butskoy.name> - 2.0.5 * Use MSG_ERRQUEUE for raw sockets too. * raw_can_connect () work-around for kernel bug #8747 * random.c, csum.c: new separate files * New implementation of tcp method ("-T"), using half-open technique. The old implementation module renamed to "tcpconn" ("-M tcpconn"). * Common parse_cmsg() routine * put ee_info for parse_icmp_res() too, handle ICMP6_PACKET_TOO_BIG for IPv6, report "!F-num" when "frag needed" (legacy compatibility)2007-07-11 Dmitry Butskoy <Dmitry@Butskoy.name> - 2.0.4 * clear includes of unneeded headers * move poll stuff to separate poll.c * add module stuff (module.c), options etc. Adapt udp/icmp/tcp for this. * Add common routines use_recverr() and set_ttl()2007-02-28 Dmitry Butskoy <Dmitry@Butskoy.name> * fix variable type for getsockname (Mike Frysinger)2007-01-09 Dmitry Butskoy <Dmitry@Butskoy.name> - 2.0.3 * version 2.0.3 * allow option args without separator (add CLIF_MAY_JOIN_ARG flag), for compatibility (Benjamin LaHaise) * no more "tcptraceroute" symlink for rpm packages, because it conflicts with the same-name old package anyway (James Ralston) * fix compilation on glibc < 2.4 (Andy Shevchenko)2006-10-30 Dmitry Butskoy <Dmitry@Butskoy.name> - 2.0.2 * version 2.0.2 * More accurate check_expired() routine. * Some minor fixes. * Add NOTES section to manual2006-10-20 Dmitry Butskoy <Dmitry@Butskoy.name> - 2.0.1 * version 2.0.1 * Now ops methods write send_time (as well as recv_time) * Use SO_TIMESTAMP to obtain msecs precisely * Complete manual
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -