Skip to content

Commit ce324e5

Browse files
committed
Cleanup import mess.
1 parent b0401f8 commit ce324e5

File tree

1 file changed

+47
-53
lines changed

1 file changed

+47
-53
lines changed

src/translator.rs

Lines changed: 47 additions & 53 deletions
Original file line numberDiff line numberDiff line change
@@ -6,17 +6,13 @@ use std::collections::{HashMap, HashSet};
66
use std::net::{Ipv4Addr, Ipv6Addr};
77
use std::str::FromStr;
88

9-
use translator::pnet_packet::icmp::{IcmpCode, IcmpPacket, IcmpType, IcmpTypes, MutableIcmpPacket};
10-
use translator::pnet_packet::icmpv6::{
11-
Icmpv6Code, Icmpv6Packet, Icmpv6Type, Icmpv6Types, MutableIcmpv6Packet,
12-
};
13-
use translator::pnet_packet::ip::IpNextHeaderProtocol;
9+
use translator::pnet_packet::icmp::{IcmpPacket, IcmpTypes, MutableIcmpPacket};
10+
use translator::pnet_packet::icmpv6::{Icmpv6Packet, Icmpv6Types, MutableIcmpv6Packet};
11+
use translator::pnet_packet::ip::IpNextHeaderProtocols;
1412
use translator::pnet_packet::ipv4::{Ipv4Packet, MutableIpv4Packet};
1513
use translator::pnet_packet::ipv6::{Ipv6Packet, MutableIpv6Packet};
1614
use translator::pnet_packet::{MutablePacket, PacketSize};
17-
use translator::pnet_packet::tcp::{MutableTcpPacket};
18-
use translator::pnet_packet::udp::MutableUdpPacket;
19-
use translator::pnet_packet::{icmp, icmpv6, ip, ipv4, tcp, udp, Packet};
15+
use translator::pnet_packet::{icmp, icmpv6, ipv4, tcp, udp, Packet};
2016

2117
#[derive(Debug)]
2218
pub enum Xlat6to4Error {
@@ -121,8 +117,8 @@ impl HMNat64 {
121117
let inpt_len: usize = (pkt.get_total_length() - 20) as usize;
122118

123119
match pkt.get_next_level_protocol() {
124-
ip::IpNextHeaderProtocols::Icmp => {
125-
response.set_next_header(ip::IpNextHeaderProtocols::Icmpv6);
120+
IpNextHeaderProtocols::Icmp => {
121+
response.set_next_header(IpNextHeaderProtocols::Icmpv6);
126122
let old_payload = IcmpPacket::new(pkt.payload()).unwrap();
127123
let size = HMNat64::icmp4_to_icmp6(
128124
&v6src,
@@ -131,8 +127,8 @@ impl HMNat64 {
131127
&mut response.packet_mut()[data_offset as usize .. (data_offset + inpt_len)])?;
132128
response.set_payload_length(size);
133129
}
134-
ip::IpNextHeaderProtocols::Tcp => {
135-
response.set_next_header(ip::IpNextHeaderProtocols::Tcp);
130+
IpNextHeaderProtocols::Tcp => {
131+
response.set_next_header(IpNextHeaderProtocols::Tcp);
136132
let mut tcp_pkt = tcp::MutableTcpPacket::new(pkt.payload_mut()).unwrap();
137133
let sum = pnet_packet::tcp::ipv6_checksum_adv(
138134
&tcp_pkt.to_immutable(),
@@ -143,8 +139,8 @@ impl HMNat64 {
143139
response.set_payload_length(tcp_pkt.packet().len() as u16);
144140
response.set_payload(tcp_pkt.packet());
145141
}
146-
ip::IpNextHeaderProtocols::Udp => {
147-
response.set_next_header(ip::IpNextHeaderProtocols::Udp);
142+
IpNextHeaderProtocols::Udp => {
143+
response.set_next_header(IpNextHeaderProtocols::Udp);
148144
let mut udp_pkt = udp::MutableUdpPacket::new(pkt.payload_mut()).unwrap();
149145
let sum = pnet_packet::udp::ipv6_checksum_adv(
150146
&udp_pkt.to_immutable(),
@@ -195,13 +191,13 @@ impl HMNat64 {
195191
let ihl_v4: u16 = 20; // Offset to write data to in the output v4 packet.
196192

197193
match pkt.get_next_header() {
198-
ip::IpNextHeaderProtocols::Icmpv6 => {
199-
response.set_next_level_protocol(ip::IpNextHeaderProtocols::Icmp);
194+
IpNextHeaderProtocols::Icmpv6 => {
195+
response.set_next_level_protocol(IpNextHeaderProtocols::Icmp);
200196
let old_payload = Icmpv6Packet::new(pkt.payload()).unwrap();
201197
let size = HMNat64::icmp6_to_icmp4(&old_payload, &mut response.packet_mut()[ihl_v4 as usize ..])?;
202198
response.set_total_length((ihl_v4 as u16) + size);
203199
}
204-
ip::IpNextHeaderProtocols::Tcp => {
200+
IpNextHeaderProtocols::Tcp => {
205201
let mut tcp_pkt = tcp::MutableTcpPacket::new(pkt.payload_mut()).unwrap();
206202
let sum = pnet_packet::tcp::ipv4_checksum_adv(
207203
&tcp_pkt.to_immutable(),
@@ -212,9 +208,9 @@ impl HMNat64 {
212208
tcp_pkt.set_checksum(sum);
213209
response.set_total_length(ihl_v4 + tcp_pkt.packet().len() as u16);
214210
response.set_payload(tcp_pkt.packet());
215-
response.set_next_level_protocol(ip::IpNextHeaderProtocols::Tcp);
211+
response.set_next_level_protocol(IpNextHeaderProtocols::Tcp);
216212
}
217-
ip::IpNextHeaderProtocols::Udp => {
213+
IpNextHeaderProtocols::Udp => {
218214
let mut udp_pkt = udp::MutableUdpPacket::new(pkt.payload_mut()).unwrap();
219215
let sum = pnet_packet::udp::ipv4_checksum_adv(
220216
&udp_pkt.to_immutable(),
@@ -225,7 +221,7 @@ impl HMNat64 {
225221
udp_pkt.set_checksum(sum);
226222
response.set_total_length(ihl_v4 + udp_pkt.packet().len() as u16);
227223
response.set_payload(udp_pkt.packet());
228-
response.set_next_level_protocol(ip::IpNextHeaderProtocols::Udp)
224+
response.set_next_level_protocol(IpNextHeaderProtocols::Udp)
229225
}
230226
_ => {
231227
// If the protocol is unknown leave the inner payload alone and forward.
@@ -260,12 +256,7 @@ impl HMNat64 {
260256
Icmpv6Types::DestinationUnreachable => {
261257
HMNat64::handle_icmp_dest_unreach_6to4(pkt, &mut result)
262258
}
263-
t => {
264-
return Err(Xlat6to4Error::Other(format!(
265-
"unsupported ICMP type: {:?}",
266-
t
267-
)));
268-
}
259+
t => return Err(Xlat6to4Error::Other(format!("unsupported ICMP type: {:?}", t)));
269260
};
270261

271262
let sum = icmp::checksum(&result.to_immutable());
@@ -289,7 +280,6 @@ impl HMNat64 {
289280
}
290281
}
291282
let size = (result.packet_size() + pkt.payload().len()) as u16;
292-
println!("Size is: {:?}, {}", size, result.packet().len());
293283
let sum = icmpv6::checksum(&result.to_immutable(), src, dst);
294284
result.set_checksum(sum);
295285
Ok((result.packet_size() + pkt.payload().len()) as u16)
@@ -483,6 +473,10 @@ impl HMNat64 {
483473
mod tests {
484474
use super::*;
485475

476+
use translator::pnet_packet::icmpv6::{Icmpv6Type, Icmpv6Code};
477+
use translator::pnet_packet::icmp::{IcmpCode, IcmpType};
478+
use translator::pnet_packet::ip::IpNextHeaderProtocol;
479+
486480
struct TranslateTestCase<'a> {
487481
ipv4: Ipv4Addr,
488482
ipv6: Ipv6Addr,
@@ -607,13 +601,13 @@ mod tests {
607601
fn tmpl_icmp4(typ: IcmpType, code: IcmpCode, payload: &[u8]) -> Box<Vec<u8>> {
608602
// Size of ICMP v4 packet is 4 bytes + payload.
609603
let buf = vec![0u8; 4 + payload.len()];
610-
let mut icmp4Pkt = MutableIcmpPacket::owned(buf).unwrap();
611-
icmp4Pkt.set_icmp_type(typ);
612-
icmp4Pkt.set_icmp_code(code);
613-
icmp4Pkt.set_payload(payload);
614-
let checksum: u16 = icmp::checksum(&icmp4Pkt.to_immutable());
615-
icmp4Pkt.set_checksum(checksum);
616-
Box::new(icmp4Pkt.packet().to_vec())
604+
let mut icmp4_pkt = MutableIcmpPacket::owned(buf).unwrap();
605+
icmp4_pkt.set_icmp_type(typ);
606+
icmp4_pkt.set_icmp_code(code);
607+
icmp4_pkt.set_payload(payload);
608+
let checksum: u16 = icmp::checksum(&icmp4_pkt.to_immutable());
609+
icmp4_pkt.set_checksum(checksum);
610+
Box::new(icmp4_pkt.packet().to_vec())
617611
}
618612

619613
// Create an ICMPv6 packet with given type, code and payload.
@@ -647,7 +641,7 @@ mod tests {
647641
payload: &[u8]
648642
) -> Box<Vec<u8>> {
649643
let buf = vec![0u8; 24 + payload.len()];
650-
let mut tcp_pkt = MutableTcpPacket::owned(buf).unwrap();
644+
let mut tcp_pkt = tcp::MutableTcpPacket::owned(buf).unwrap();
651645
tcp_pkt.set_source(src_port);
652646
tcp_pkt.set_destination(dst_port);
653647
tcp_pkt.set_payload(payload);
@@ -671,7 +665,7 @@ mod tests {
671665
payload: &[u8],
672666
) -> Box<Vec<u8>> {
673667
let buf = vec![0u8; 8 + payload.len()];
674-
let mut udp_pkt = MutableUdpPacket::owned(buf).unwrap();
668+
let mut udp_pkt = udp::MutableUdpPacket::owned(buf).unwrap();
675669
udp_pkt.set_source(src_port);
676670
udp_pkt.set_destination(dst_port);
677671
udp_pkt.set_payload(payload);
@@ -736,26 +730,26 @@ mod tests {
736730
let client_v6 = Ipv6Addr::new(0x2001, 0xdb8, 0, 0, 0, 0, 0, 0xcafe);
737731
let target_v4 = Ipv4Addr::new(8, 8, 8, 8);
738732
let target_v6 = Ipv6Addr::new(0x64, 0xff9b, 0, 0, 0, 0, 0x808, 0x808);
739-
let cafebeef = vec![0x4, 0x3, 0x2, 0x1];
733+
let cafebeef = vec![0xca, 0xfe, 0xbe, 0xef];
740734
let tests: Vec<PacketTestCase> = vec![
741735
PacketTestCase {
742-
ipv6: wrap_ip6hdr(target_v6, client_v6, 254, ip::IpNextHeaderProtocols::Icmpv6,
736+
ipv6: wrap_ip6hdr(target_v6, client_v6, 254, IpNextHeaderProtocols::Icmpv6,
743737
&*tmpl_icmpv6(target_v6, client_v6, icmpv6::Icmpv6Types::EchoRequest,
744738
icmpv6::ndp::Icmpv6Codes::NoCode, &cafebeef)),
745-
ipv4: wrap_iphdr(target_v4, client_v4, 255, ip::IpNextHeaderProtocols::Icmp,
739+
ipv4: wrap_iphdr(target_v4, client_v4, 255, IpNextHeaderProtocols::Icmp,
746740
&*tmpl_icmp4(icmp::IcmpTypes::EchoRequest,
747741
icmp::echo_request::IcmpCodes::NoCode, &cafebeef)),
748742
},
749743
PacketTestCase {
750-
ipv6: wrap_ip6hdr(target_v6, client_v6, 254, ip::IpNextHeaderProtocols::Tcp,
744+
ipv6: wrap_ip6hdr(target_v6, client_v6, 254, IpNextHeaderProtocols::Tcp,
751745
&*tmpl_tcp(AddrPair::Ipv6(target_v6, client_v6), 42869, 443, &cafebeef)),
752-
ipv4: wrap_iphdr(target_v4, client_v4, 255, ip::IpNextHeaderProtocols::Tcp,
746+
ipv4: wrap_iphdr(target_v4, client_v4, 255, IpNextHeaderProtocols::Tcp,
753747
&*tmpl_tcp(AddrPair::Ipv4(target_v4, client_v4), 42869, 443, &cafebeef))
754748
},
755749
PacketTestCase {
756-
ipv6: wrap_ip6hdr(target_v6, client_v6, 254, ip::IpNextHeaderProtocols::Udp,
750+
ipv6: wrap_ip6hdr(target_v6, client_v6, 254, IpNextHeaderProtocols::Udp,
757751
&*tmpl_udp(AddrPair::Ipv6(target_v6, client_v6), 3186, 443, &cafebeef)),
758-
ipv4: wrap_iphdr(target_v4, client_v4, 255, ip::IpNextHeaderProtocols::Udp,
752+
ipv4: wrap_iphdr(target_v4, client_v4, 255, IpNextHeaderProtocols::Udp,
759753
&*tmpl_udp(AddrPair::Ipv4(target_v4, client_v4), 3186, 443, &cafebeef))
760754
},
761755
];
@@ -764,12 +758,12 @@ mod tests {
764758
let mut rbuf = Box::new(vec![0u8; 1500]);
765759
let mut translator = HMNat64::new("64:ff9b::/96", client_subnet).unwrap();
766760
translator.register_mapping(client_v6, client_v4);
767-
let fourToSix: Ipv6Packet = translator
761+
let four_to_six: Ipv6Packet = translator
768762
.process_v4(
769763
&mut MutableIpv4Packet::new(&mut *test.ipv4).unwrap(),
770764
rbuf,
771765
).unwrap();
772-
assert_eq!(*test.ipv6, fourToSix.packet()[..40 + fourToSix.get_payload_length() as usize].to_vec());
766+
assert_eq!(*test.ipv6, four_to_six.packet()[..40 + four_to_six.get_payload_length() as usize].to_vec());
773767
}
774768
}
775769

@@ -782,37 +776,37 @@ mod tests {
782776
let cafebeef = vec![0xca, 0xfe, 0xbe, 0xef];
783777
let tests: Vec<PacketTestCase> = vec![
784778
PacketTestCase {
785-
ipv6: wrap_ip6hdr(client_v6, target_v6, 255, ip::IpNextHeaderProtocols::Icmpv6,
779+
ipv6: wrap_ip6hdr(client_v6, target_v6, 255, IpNextHeaderProtocols::Icmpv6,
786780
&*tmpl_icmpv6(client_v6, target_v6, icmpv6::Icmpv6Types::EchoRequest,
787781
icmpv6::ndp::Icmpv6Codes::NoCode, &cafebeef)),
788-
ipv4: wrap_iphdr(client_v4, target_v4, 254, ip::IpNextHeaderProtocols::Icmp,
782+
ipv4: wrap_iphdr(client_v4, target_v4, 254, IpNextHeaderProtocols::Icmp,
789783
&*tmpl_icmp4(icmp::IcmpTypes::EchoRequest,
790784
icmp::echo_request::IcmpCodes::NoCode, &cafebeef)),
791785
},
792786
PacketTestCase {
793-
ipv6: wrap_ip6hdr(client_v6, target_v6, 255, ip::IpNextHeaderProtocols::Tcp,
787+
ipv6: wrap_ip6hdr(client_v6, target_v6, 255, IpNextHeaderProtocols::Tcp,
794788
&*tmpl_tcp(AddrPair::Ipv6(client_v6, target_v6), 42869, 443, &cafebeef)),
795-
ipv4: wrap_iphdr(client_v4, target_v4, 254, ip::IpNextHeaderProtocols::Tcp,
789+
ipv4: wrap_iphdr(client_v4, target_v4, 254, IpNextHeaderProtocols::Tcp,
796790
&*tmpl_tcp(AddrPair::Ipv4(client_v4, target_v4), 42869, 443, &cafebeef))
797791
},
798792
PacketTestCase {
799-
ipv6: wrap_ip6hdr(client_v6, target_v6, 255, ip::IpNextHeaderProtocols::Udp,
793+
ipv6: wrap_ip6hdr(client_v6, target_v6, 255, IpNextHeaderProtocols::Udp,
800794
&*tmpl_udp(AddrPair::Ipv6(client_v6, target_v6), 3186, 443, &cafebeef)),
801-
ipv4: wrap_iphdr(client_v4, target_v4, 254, ip::IpNextHeaderProtocols::Udp,
795+
ipv4: wrap_iphdr(client_v4, target_v4, 254, IpNextHeaderProtocols::Udp,
802796
&*tmpl_udp(AddrPair::Ipv4(client_v4, target_v4), 3186, 443, &cafebeef))
803797
}
804798
];
805799
let client_subnet = "10.0.0.0/24";
806800
for mut test in tests {
807801
let mut rbuf = Box::new(vec![0u8; 1500]);
808802
let mut translator = HMNat64::new("64:ff9b::/96", client_subnet).unwrap();
809-
let sixToFour: Ipv4Packet = translator
803+
let six_to_four: Ipv4Packet = translator
810804
.process_v6(
811805
&mut MutableIpv6Packet::new(&mut *test.ipv6).unwrap(),
812806
rbuf,
813807
)
814808
.unwrap();
815-
assert_eq!(*test.ipv4, sixToFour.packet()[..sixToFour.get_total_length() as usize].to_vec());
809+
assert_eq!(*test.ipv4, six_to_four.packet()[..six_to_four.get_total_length() as usize].to_vec());
816810
}
817811
}
818812
}

0 commit comments

Comments
 (0)