Skip to content

Latest commit

 

History

History
83 lines (80 loc) · 5.42 KB

File metadata and controls

83 lines (80 loc) · 5.42 KB

12 21:54:51 nsproxy[272523]: 2023-12-12T13:54:51.988370Z INFO nsproxy: Waiting for device FD 12 21:54:52 nsproxy[272523]: 2023-12-12T13:54:52.003157Z INFO nsproxy: Got FD 12 21:54:52 nsproxy[272523]: 2023-12-12T13:54:52.004019Z INFO nsproxy: IArgs { proxy: ArgProxy { proxy_type: Socks5, addr: 127.0.0.1:9902, credentials: None }, ipv6_enabled: true, dns: Handled, dns_addr: 127.0.0.1, bypass: [] } 12 21:54:52 nsproxy[272523]: 2023-12-12T13:54:52.006571Z WARN ipstack: parse error UnsupportedTransportProtocol 12 21:54:55 nsproxy[272523]: 2023-12-12T13:54:55.100266Z TRACE tun2socks5: Session count 1 12 21:54:55 nsproxy[272523]: 2023-12-12T13:54:55.100676Z INFO tun2socks5::dns: Allocate VirtDNS Name example.com. 12 21:54:55 nsproxy[272523]: 2023-12-12T13:54:55.101215Z INFO tun2socks5::dns: Allocate VirtDNS Name example.com. 12 21:54:55 nsproxy[272523]: 2023-12-12T13:54:55.102506Z TRACE tun2socks5: Session count 2 12 21:54:55 nsproxy[272523]: 2023-12-12T13:54:55.103011Z INFO tun2socks5: Beginning #1 TCP 100.64.0.2:47438 -> example.com.:80 12 21:54:55 nsproxy[272523]: [ipstack/src/stream/tcp.rs:243] self.tcb.get_state() = SynReceived( 12 21:54:55 nsproxy[272523]: true, 12 21:54:55 nsproxy[272523]: ) 12 21:54:55 nsproxy[272523]: [ipstack/src/stream/tcp.rs:243] self.tcb.get_state() = Established 12 21:54:55 nsproxy[272523]: [ipstack/src/stream/tcp.rs:243] self.tcb.get_state() = Established 12 21:54:55 nsproxy[272523]: [ipstack/src/stream/tcb.rs:157] received_ack_distance > current_ack_distance = false 12 21:54:55 nsproxy[272523]: [ipstack/src/stream/tcb.rs:158] incoming_packet.inner().acknowledgment_number != self.seq = true 12 21:54:55 nsproxy[272523]: [ipstack/src/stream/tcb.rs:159] incoming_packet.inner().acknowledgment_number.saturating_sub(self.seq) == 0 = true 12 21:54:55 nsproxy[272523]: 2023-12-12T13:54:55.999647Z WARN ipstack::stream::tcb: tcp packet invalid, dist 12 21:54:55 nsproxy[272523]: [ipstack/src/stream/tcp.rs:243] self.tcb.get_state() = Established 12 21:54:56 nsproxy[272523]: [ipstack/src/stream/tcp.rs:243] self.tcb.get_state() = Established 12 21:54:56 nsproxy[272523]: [ipstack/src/stream/tcp.rs:243] self.tcb.get_state() = FinWait2 12 21:54:56 nsproxy[272523]: [ipstack/src/stream/tcb.rs:157] received_ack_distance > current_ack_distance = true 12 21:54:56 nsproxy[272523]: [ipstack/src/stream/tcb.rs:158] incoming_packet.inner().acknowledgment_number != self.seq = true 12 21:54:56 nsproxy[272523]: [ipstack/src/stream/tcb.rs:159] incoming_packet.inner().acknowledgment_number.saturating_sub(self.seq) == 0 = false 12 21:54:56 nsproxy[272523]: 2023-12-12T13:54:56.000828Z WARN ipstack::stream::tcb: tcp packet invalid, dist 12 21:54:56 nsproxy[272523]: 2023-12-12T13:54:56.312005Z WARN ipstack: parse error UnsupportedTransportProtocol 12 21:55:01 nsproxy[272523]: 2023-12-12T13:55:01.001655Z WARN ipstack::stream::tcp: Timeout reached for 198.18.0.0:80 12 21:55:01 nsproxy[272523]: 2023-12-12T13:55:01.001843Z INFO tun2socks5: Ending #1 TCP 100.64.0.2:47438 -> example.com.:80 with Err(Kind(TimedOut)) 12 21:55:01 nsproxy[272523]: 2023-12-12T13:55:01.002159Z TRACE tun2socks5: Session count 1 12 21:55:01 nsproxy[272523]: 2023-12-12T13:55:01.002514Z WARN ipstack: ttl 0 remove stream NetworkTuple { src: 100.64.0.2:47438, dst: 198.18.0.0:80, tcp: true } 12 21:55:04 nsproxy[272523]: 2023-12-12T13:55:04.418757Z WARN ipstack: parse error UnsupportedTransportProtocol 12 21:55:21 nsproxy[272523]: 2023-12-12T13:55:21.275141Z WARN ipstack: parse error UnsupportedTransportProtocol 12 21:55:53 nsproxy[272523]: 2023-12-12T13:55:53.698672Z WARN ipstack: parse error UnsupportedTransportProtocol 12 21:56:55 nsproxy[272523]: 2023-12-12T13:56:55.141758Z WARN ipstack: parse error UnsupportedTransportProtocol

// FIXME
    pub(super) fn check_pkt_type(&self, incoming_packet: &TcpPacket, p: &[u8]) -> PacketStatus {
        let received_ack_distance = self
            .seq
            .wrapping_sub(incoming_packet.inner().acknowledgment_number);

        let current_ack_distance = self.seq.wrapping_sub(self.last_ack);
        if received_ack_distance > current_ack_distance
            || (incoming_packet.inner().acknowledgment_number != self.seq
                && incoming_packet
                    .inner()
                    .acknowledgment_number
                    .saturating_sub(self.seq)
                    == 0)
        {
            dbg!(received_ack_distance > current_ack_distance);
            dbg!(incoming_packet.inner().acknowledgment_number != self.seq);
            dbg!(incoming_packet
                .inner()
                .acknowledgment_number
                .saturating_sub(self.seq)
                == 0);
            warn!("tcp packet invalid, dist");
            PacketStatus::Invalid
        } else if self.last_ack == incoming_packet.inner().acknowledgment_number {
            if !p.is_empty() {
                PacketStatus::NewPacket
            } else if self.send_window == incoming_packet.inner().window_size
                && self.seq != self.last_ack
            {
                PacketStatus::RetransmissionRequest
            } else {
                PacketStatus::WindowUpdate
            }
        } else if self.last_ack < incoming_packet.inner().acknowledgment_number {
            if !p.is_empty() {
                PacketStatus::NewPacket
            } else {
                PacketStatus::Ack
            }
        } else {
            warn!("tcp packet invalid");
            PacketStatus::Invalid
        }
    }