diff options
author | Kelvin Zhang <zhangxp1998@gmail.com> | 2020-01-16 17:56:55 -0500 |
---|---|---|
committer | Kelvin Zhang <zhangxp1998@gmail.com> | 2020-01-16 18:54:12 -0500 |
commit | 347a615824752bccf31b426503d9fba76df403ae (patch) | |
tree | 13556fed2f22ebd700d66d675a1214d582bed3e7 | |
parent | dd14b9a073d7d2d04539c99f8820ec318793efc6 (diff) |
Fix VPN traffice not displayed bug
-rw-r--r-- | src/network/sniffer.rs | 6 |
1 files changed, 5 insertions, 1 deletions
diff --git a/src/network/sniffer.rs b/src/network/sniffer.rs index 4426438..bd16cc4 100644 --- a/src/network/sniffer.rs +++ b/src/network/sniffer.rs @@ -95,7 +95,11 @@ impl Sniffer { pub fn next(&mut self) -> Option<Segment> { let bytes = self.network_frames.next().ok()?; // See https://github.com/libpnet/libpnet/blob/master/examples/packetdump.rs - let payload_offset = if self.network_interface.is_loopback() && cfg!(target_os = "macos") { + // VPN interfaces (such as utun0, utun1, etc) have POINT_TO_POINT bit set to 1 + let payload_offset = if (self.network_interface.is_loopback() + || self.network_interface.is_point_to_point()) + && cfg!(target_os = "macos") + { // The pnet code for BPF loopback adds a zero'd out Ethernet header 14 } else { |