mirror of
https://github.com/tun2proxy/tun2proxy.git
synced 2025-04-22 23:09:09 +00:00
update for smoltcp
This commit is contained in:
parent
44122f3c68
commit
3fc112fc2c
2 changed files with 18 additions and 9 deletions
5
.cargo/config.toml
Normal file
5
.cargo/config.toml
Normal file
|
@ -0,0 +1,5 @@
|
||||||
|
[registries.cratees-io]
|
||||||
|
protocol = "sparse"
|
||||||
|
|
||||||
|
[build]
|
||||||
|
target = ["x86_64-unknown-linux-gnu"]
|
|
@ -132,8 +132,8 @@ fn get_transport_info(
|
||||||
transport_offset: usize,
|
transport_offset: usize,
|
||||||
packet: &[u8],
|
packet: &[u8],
|
||||||
) -> Option<((u16, u16), bool, usize, usize)> {
|
) -> Option<((u16, u16), bool, usize, usize)> {
|
||||||
if proto == IpProtocol::Udp {
|
match proto {
|
||||||
match UdpPacket::new_checked(packet) {
|
IpProtocol::Udp => match UdpPacket::new_checked(packet) {
|
||||||
Ok(result) => Some((
|
Ok(result) => Some((
|
||||||
(result.src_port(), result.dst_port()),
|
(result.src_port(), result.dst_port()),
|
||||||
false,
|
false,
|
||||||
|
@ -141,9 +141,8 @@ fn get_transport_info(
|
||||||
packet.len() - 8,
|
packet.len() - 8,
|
||||||
)),
|
)),
|
||||||
Err(_) => None,
|
Err(_) => None,
|
||||||
}
|
},
|
||||||
} else if proto == IpProtocol::Tcp {
|
IpProtocol::Tcp => match TcpPacket::new_checked(packet) {
|
||||||
match TcpPacket::new_checked(packet) {
|
|
||||||
Ok(result) => Some((
|
Ok(result) => Some((
|
||||||
(result.src_port(), result.dst_port()),
|
(result.src_port(), result.dst_port()),
|
||||||
result.syn() && !result.ack(),
|
result.syn() && !result.ack(),
|
||||||
|
@ -151,9 +150,8 @@ fn get_transport_info(
|
||||||
packet.len(),
|
packet.len(),
|
||||||
)),
|
)),
|
||||||
Err(_) => None,
|
Err(_) => None,
|
||||||
}
|
},
|
||||||
} else {
|
_ => None,
|
||||||
None
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -271,7 +269,13 @@ impl<'a> TunToProxy<'a> {
|
||||||
Interest::READABLE,
|
Interest::READABLE,
|
||||||
)?;
|
)?;
|
||||||
|
|
||||||
let config = Config::new();
|
let config = match tun.capabilities().medium {
|
||||||
|
Medium::Ethernet => Config::new(
|
||||||
|
smoltcp::wire::EthernetAddress([0x02, 0x00, 0x00, 0x00, 0x00, 0x01]).into(),
|
||||||
|
),
|
||||||
|
Medium::Ip => Config::new(smoltcp::wire::HardwareAddress::Ip),
|
||||||
|
Medium::Ieee802154 => todo!(),
|
||||||
|
};
|
||||||
let mut virt = VirtualTunDevice::new(tun.capabilities());
|
let mut virt = VirtualTunDevice::new(tun.capabilities());
|
||||||
let gateway4: Ipv4Addr = Ipv4Addr::from_str("0.0.0.1")?;
|
let gateway4: Ipv4Addr = Ipv4Addr::from_str("0.0.0.1")?;
|
||||||
let gateway6: Ipv6Addr = Ipv6Addr::from_str("::1")?;
|
let gateway6: Ipv6Addr = Ipv6Addr::from_str("::1")?;
|
||||||
|
|
Loading…
Add table
Reference in a new issue