CHANGELOG
View Source[0.2.3] - 2026-01-11
- Use
rawICMP sockets on Linux because Linux does not send all ICMP packets to all open ICMP datagram sockets like macOS does.
[0.2.2] - 2026-01-09
- Fix IPv6 protocol selection on Linux. It had
:"IPV6-ICMP"hard-coded, but that's macOS only.
[0.2.1] - 2025-12-31
- Fix a race condition in
ICMPConnwhere the connection could terminate prematurely. This occurred when the last registered process terminated while another process was in the middle of registering (between callingICMPConn.get_or_start_conn/1andICMPConn.register/4).
[0.2.0] - 2025-12-31
- Completely rewrite how ICMP packets are received.
- Previously, every probe would start its own ICMP socket and ignore packets that were meant for other ICMP sockets based on the identifier of the received packet. However, not all ICMP sockets received all packets, so Traceroute would return many more
TimeExceededresponses than it should. Now, we start only a single ICMP socket (one forIPv4and one forIPv6) upon request and receive and send all packets through that singleton socket.
- Previously, every probe would start its own ICMP socket and ignore packets that were meant for other ICMP sockets based on the identifier of the received packet. However, not all ICMP sockets received all packets, so Traceroute would return many more
- Fix
DestinationReachedprobe count.- We previously ignored probes that did not receive a "destination reached" response but had the same TTL as probes that did. We now include such probes in the response because although they didn't receive the correct ICMP response, they most likely still reached the destination.
[0.1.2] - 2025-12-31
- Add
min_ttloption to start the traceroute at a higher time-to-live than1, which makes it easier to skip the first hops (e.g. your local router) - Return
Probe.source_domainas string instead of charlist.
[0.1.1] - 2025-12-15
- Return
{:error, :nxdoamain}if domain cannot be parsed into an IP - If an IP-tuple is provided, auto-select the correct
ip_protocol: :ipv4|:ipv6 - Add instructions for setting up an IPv6 tunnel
[0.1.0] - 2025-12-06
- Initial release