diff options
author | Linus Färnstrand <linus@mullvad.net> | 2018-04-03 16:52:33 +0200 |
---|---|---|
committer | Jake McGinty <me@jake.su> | 2018-06-03 11:56:44 -0500 |
commit | 4324ecd046c849f48afab39fc971bd9144075518 (patch) | |
tree | a52b56c4aa35182c975dd4c2948e746b042812c4 | |
parent | build: make Cargo.toml compile for people who aren't me ;) (diff) | |
download | wireguard-rs-4324ecd046c849f48afab39fc971bd9144075518.tar.xz wireguard-rs-4324ecd046c849f48afab39fc971bd9144075518.zip |
deps: Replace pnet_packet with rips-packets
Closes #11
-rw-r--r-- | Cargo.toml | 2 | ||||
-rw-r--r-- | benches/criterion.rs | 9 | ||||
-rw-r--r-- | src/interface/mod.rs | 2 | ||||
-rw-r--r-- | src/ip_packet.rs | 26 | ||||
-rw-r--r-- | src/lib.rs | 2 |
5 files changed, 19 insertions, 22 deletions
@@ -46,7 +46,7 @@ notify = "^4.0" rand = "0.5.0-pre.2" nix = { git = "https://github.com/mcginty/nix", branch = "ipv6-pktinfo" } mio = "^0.6" -pnet_packet = "^0.21" +rips-packets = "0.1" snow = { git = "https://github.com/mcginty/snow", branch = "wireguard" } socket2 = "^0.3" subtle = "^0.6" diff --git a/benches/criterion.rs b/benches/criterion.rs index 5d9249d..eac927d 100644 --- a/benches/criterion.rs +++ b/benches/criterion.rs @@ -5,8 +5,8 @@ extern crate criterion; extern crate wireguard; extern crate x25519_dalek; extern crate rand; +extern crate rips_packets; extern crate snow; -extern crate pnet_packet; extern crate socket2; use criterion::{Benchmark, Criterion, Throughput}; @@ -16,7 +16,7 @@ use wireguard::timestamp::Timestamp; use x25519_dalek::{generate_secret, generate_public}; use rand::OsRng; use std::{convert::TryInto, net::SocketAddr, time::Duration}; -use pnet_packet::{Packet, ipv4::MutableIpv4Packet}; +use rips_packets::ipv4::MutIpv4Packet; //use std::io::Write; //use socket2::{Socket, Domain, Type, Protocol}; @@ -103,10 +103,11 @@ fn benchmarks(c: &mut Criterion) { c.bench("transport", Benchmark::new("incoming", |b| { let (mut peer_init, _, mut peer_resp, _) = connected_peers(); - let mut packet = MutableIpv4Packet::owned(vec![0u8; 1420]).unwrap(); + let mut packet_data = vec![0u8; 1420]; + let mut packet = MutIpv4Packet::new(&mut packet_data[..]).unwrap(); packet.set_version(4); b.iter_with_setup(move || { - let (addr, packet) = peer_init.handle_outgoing_transport(packet.packet()).expect("SETUP handle_outgoing_transport"); + let (addr, packet) = peer_init.handle_outgoing_transport(packet.data()).expect("SETUP handle_outgoing_transport"); let packet = packet.try_into().unwrap(); (addr, packet) }, move |(addr, packet)| { diff --git a/src/interface/mod.rs b/src/interface/mod.rs index c45e70f..7036a09 100644 --- a/src/interface/mod.rs +++ b/src/interface/mod.rs @@ -14,7 +14,7 @@ use std::cell::RefCell; use std::collections::HashMap; use types::{InterfaceInfo}; -use pnet_packet::ipv4::Ipv4Packet; +use rips_packets::ipv4::Ipv4Packet; use futures::{Future, Stream, Sink, unsync}; use tokio_core::reactor::Core; diff --git a/src/ip_packet.rs b/src/ip_packet.rs index 3de6a60..9150f5b 100644 --- a/src/ip_packet.rs +++ b/src/ip_packet.rs @@ -1,5 +1,5 @@ -use pnet_packet::ipv4::Ipv4Packet; -use pnet_packet::ipv6::Ipv6Packet; +use rips_packets::ipv4::Ipv4Packet; +use rips_packets::ipv6::Ipv6Packet; use std::net::IpAddr; pub enum IpPacket<'a> { @@ -9,35 +9,31 @@ pub enum IpPacket<'a> { impl<'a> IpPacket<'a> { pub fn new(packet: &'a [u8]) -> Option<Self> { - if packet.is_empty() { - return None; - } - - match packet[0] >> 4 { - 4 => Ipv4Packet::new(packet).map(IpPacket::V4), - 6 => Ipv6Packet::new(packet).map(IpPacket::V6), + match packet.get(0).map(|byte| *byte >> 4) { + Some(4) => Ipv4Packet::new(packet).map(IpPacket::V4), + Some(6) => Ipv6Packet::new(packet).map(IpPacket::V6), _ => None } } pub fn source(&self) -> IpAddr { match *self { - IpPacket::V4(ref packet) => packet.get_source().into(), - IpPacket::V6(ref packet) => packet.get_source().into(), + IpPacket::V4(ref packet) => packet.source().into(), + IpPacket::V6(ref packet) => packet.source().into(), } } pub fn destination(&self) -> IpAddr { match *self { - IpPacket::V4(ref packet) => packet.get_destination().into(), - IpPacket::V6(ref packet) => packet.get_destination().into(), + IpPacket::V4(ref packet) => packet.destination().into(), + IpPacket::V6(ref packet) => packet.destination().into(), } } pub fn length(&self) -> u16 { match *self { - IpPacket::V4(ref packet) => packet.get_total_length(), - IpPacket::V6(ref packet) => 40 + packet.get_payload_length(), + IpPacket::V4(ref packet) => packet.total_length(), + IpPacket::V6(ref packet) => 40 + packet.payload_length(), } } @@ -26,8 +26,8 @@ extern crate libc; extern crate mio; extern crate nix; extern crate notify; -extern crate pnet_packet; extern crate rand; +extern crate rips_packets; extern crate snow; extern crate socket2; extern crate subtle; |