From 88256dbdcfc3b284f5533e5aa2969bf5061db22a Mon Sep 17 00:00:00 2001 From: Dario Nieuwenhuis Date: Sun, 27 Dec 2020 00:11:30 +0100 Subject: [PATCH] Update to Rust 2018. Fixes #271 --- CODE_STYLE.md | 4 +- Cargo.toml | 1 + benches/bench.rs | 3 - examples/benchmark.rs | 10 +-- examples/client.rs | 8 +-- examples/dhcp_client.rs | 6 -- examples/httpclient.rs | 10 +-- examples/loopback.rs | 12 +--- examples/multicast.rs | 9 +-- examples/ping.rs | 13 ++-- examples/server.rs | 8 +-- examples/tcpdump.rs | 2 - examples/utils.rs | 2 +- src/dhcp/clientv4.rs | 14 ++--- src/iface/ethernet.rs | 116 +++++++++++++++++------------------ src/iface/neighbor.rs | 6 +- src/iface/route.rs | 10 +-- src/lib.rs | 16 +---- src/macros.rs | 16 ++--- src/parsers.rs | 32 +++++----- src/phy/fault_injector.rs | 6 +- src/phy/fuzz_injector.rs | 6 +- src/phy/loopback.rs | 6 +- src/phy/mod.rs | 4 +- src/phy/pcap_writer.rs | 6 +- src/phy/raw_socket.rs | 6 +- src/phy/sys/mod.rs | 2 +- src/phy/tap_interface.rs | 6 +- src/phy/tracer.rs | 8 +-- src/socket/icmp.rs | 32 +++++----- src/socket/meta.rs | 6 +- src/socket/mod.rs | 2 +- src/socket/raw.rs | 31 +++++----- src/socket/ref_.rs | 8 +-- src/socket/set.rs | 4 +- src/socket/tcp.rs | 24 ++++---- src/socket/udp.rs | 22 +++---- src/storage/packet_buffer.rs | 4 +- src/storage/ring_buffer.rs | 4 +- src/wire/arp.rs | 8 +-- src/wire/dhcpv4.rs | 10 +-- src/wire/ethernet.rs | 6 +- src/wire/icmp.rs | 4 +- src/wire/icmpv4.rs | 12 ++-- src/wire/icmpv6.rs | 18 +++--- src/wire/igmp.rs | 12 ++-- src/wire/ip.rs | 20 +++--- src/wire/ipv4.rs | 12 ++-- src/wire/ipv6.rs | 25 ++++---- src/wire/ipv6fragment.rs | 4 +- src/wire/ipv6hopbyhop.rs | 6 +- src/wire/ipv6option.rs | 4 +- src/wire/ipv6routing.rs | 8 +-- src/wire/mld.rs | 12 ++-- src/wire/ndisc.rs | 21 ++++--- src/wire/ndiscoption.rs | 17 ++--- src/wire/tcp.rs | 14 ++--- src/wire/udp.rs | 14 ++--- utils/packet2pcap.rs | 3 - 59 files changed, 325 insertions(+), 390 deletions(-) diff --git a/CODE_STYLE.md b/CODE_STYLE.md index 902e20f..4cf2ca2 100644 --- a/CODE_STYLE.md +++ b/CODE_STYLE.md @@ -16,8 +16,8 @@ to most specific, but it's not very important. ```rust use core::cell::RefCell; -use {Error, Result}; -use phy::{self, DeviceCapabilities, Device}; +use crate::{Error, Result}; +use crate::phy::{self, DeviceCapabilities, Device}; ``` ## Wrapping function calls diff --git a/Cargo.toml b/Cargo.toml index 63a9c04..c6f1130 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -1,6 +1,7 @@ [package] name = "smoltcp" version = "0.6.0" +edition = "2018" authors = ["whitequark "] description = "A TCP/IP stack designed for bare-metal, real-time systems without a heap." documentation = "https://docs.rs/smoltcp/" diff --git a/benches/bench.rs b/benches/bench.rs index 4aed8ce..b1ddc85 100644 --- a/benches/bench.rs +++ b/benches/bench.rs @@ -1,8 +1,5 @@ #![feature(test)] -extern crate test; -extern crate smoltcp; - mod wire { use test; #[cfg(feature = "proto-ipv6")] diff --git a/examples/benchmark.rs b/examples/benchmark.rs index 3e78ac2..92d8c46 100644 --- a/examples/benchmark.rs +++ b/examples/benchmark.rs @@ -1,11 +1,3 @@ -#[cfg(feature = "log")] -#[macro_use] -extern crate log; -#[cfg(feature = "log")] -extern crate env_logger; -extern crate getopts; -extern crate smoltcp; - mod utils; use std::cmp; @@ -15,6 +7,8 @@ use std::thread; use std::io::{Read, Write}; use std::net::TcpStream; use std::os::unix::io::AsRawFd; +use log::debug; + use smoltcp::phy::wait as phy_wait; use smoltcp::wire::{EthernetAddress, IpAddress, IpCidr}; use smoltcp::iface::{NeighborCache, EthernetInterfaceBuilder}; diff --git a/examples/client.rs b/examples/client.rs index a9aaf65..58340aa 100644 --- a/examples/client.rs +++ b/examples/client.rs @@ -1,14 +1,10 @@ -#[macro_use] -extern crate log; -extern crate env_logger; -extern crate getopts; -extern crate smoltcp; - mod utils; use std::str::{self, FromStr}; use std::collections::BTreeMap; use std::os::unix::io::AsRawFd; +use log::debug; + use smoltcp::phy::wait as phy_wait; use smoltcp::wire::{EthernetAddress, Ipv4Address, IpAddress, IpCidr}; use smoltcp::iface::{NeighborCache, EthernetInterfaceBuilder, Routes}; diff --git a/examples/dhcp_client.rs b/examples/dhcp_client.rs index 0695c40..a751e59 100644 --- a/examples/dhcp_client.rs +++ b/examples/dhcp_client.rs @@ -1,9 +1,3 @@ -#[macro_use] -extern crate log; -extern crate env_logger; -extern crate getopts; -extern crate smoltcp; - mod utils; use std::collections::BTreeMap; diff --git a/examples/httpclient.rs b/examples/httpclient.rs index 7ac9ef7..d2d8f40 100644 --- a/examples/httpclient.rs +++ b/examples/httpclient.rs @@ -1,17 +1,11 @@ -#[macro_use] -extern crate log; -extern crate env_logger; -extern crate getopts; -extern crate rand; -extern crate url; -extern crate smoltcp; - mod utils; use std::str::{self, FromStr}; use std::collections::BTreeMap; use std::os::unix::io::AsRawFd; use url::Url; +use log::debug; + use smoltcp::phy::wait as phy_wait; use smoltcp::wire::{EthernetAddress, Ipv4Address, Ipv6Address, IpAddress, IpCidr}; use smoltcp::iface::{NeighborCache, EthernetInterfaceBuilder, Routes}; diff --git a/examples/loopback.rs b/examples/loopback.rs index afc33fa..a291aa4 100644 --- a/examples/loopback.rs +++ b/examples/loopback.rs @@ -1,21 +1,13 @@ #![cfg_attr(not(feature = "std"), no_std)] #![allow(unused_mut)] -#[cfg(feature = "std")] -use std as core; -#[macro_use] -extern crate log; -extern crate smoltcp; -#[cfg(feature = "std")] -extern crate env_logger; -#[cfg(feature = "std")] -extern crate getopts; - #[cfg(feature = "std")] #[allow(dead_code)] mod utils; use core::str; +use log::{info, debug, error}; + use smoltcp::phy::Loopback; use smoltcp::wire::{EthernetAddress, IpAddress, IpCidr}; use smoltcp::iface::{NeighborCache, EthernetInterfaceBuilder}; diff --git a/examples/multicast.rs b/examples/multicast.rs index 81a606f..92f1876 100644 --- a/examples/multicast.rs +++ b/examples/multicast.rs @@ -1,14 +1,9 @@ -#[macro_use] -extern crate log; -extern crate env_logger; -extern crate getopts; -extern crate smoltcp; -extern crate byteorder; - mod utils; use std::collections::BTreeMap; use std::os::unix::io::AsRawFd; +use log::debug; + use smoltcp::phy::wait as phy_wait; use smoltcp::wire::{EthernetAddress, IpVersion, IpProtocol, IpAddress, IpCidr, Ipv4Address, Ipv4Packet, IgmpPacket, IgmpRepr}; diff --git a/examples/ping.rs b/examples/ping.rs index bdbf96e..411e450 100644 --- a/examples/ping.rs +++ b/examples/ping.rs @@ -1,16 +1,13 @@ -#[macro_use] -extern crate log; -extern crate env_logger; -extern crate getopts; -extern crate smoltcp; -extern crate byteorder; - mod utils; use std::str::FromStr; use std::collections::BTreeMap; use std::cmp; use std::os::unix::io::AsRawFd; +use std::collections::HashMap; +use log::debug; +use byteorder::{ByteOrder, NetworkEndian}; + use smoltcp::time::{Duration, Instant}; use smoltcp::phy::Device; use smoltcp::phy::wait as phy_wait; @@ -19,8 +16,6 @@ use smoltcp::wire::{EthernetAddress, IpAddress, IpCidr, Ipv4Address, Icmpv4Repr, Icmpv4Packet}; use smoltcp::iface::{NeighborCache, EthernetInterfaceBuilder, Routes}; use smoltcp::socket::{SocketSet, IcmpSocket, IcmpSocketBuffer, IcmpPacketMetadata, IcmpEndpoint}; -use std::collections::HashMap; -use byteorder::{ByteOrder, NetworkEndian}; macro_rules! send_icmp_ping { ( $repr_type:ident, $packet_type:ident, $ident:expr, $seq_no:expr, diff --git a/examples/server.rs b/examples/server.rs index db4d14b..ae53b6c 100644 --- a/examples/server.rs +++ b/examples/server.rs @@ -1,15 +1,11 @@ -#[macro_use] -extern crate log; -extern crate env_logger; -extern crate getopts; -extern crate smoltcp; - mod utils; use std::str; use std::collections::BTreeMap; use std::fmt::Write; use std::os::unix::io::AsRawFd; +use log::debug; + use smoltcp::phy::wait as phy_wait; use smoltcp::wire::{EthernetAddress, IpAddress, IpCidr}; use smoltcp::iface::{NeighborCache, EthernetInterfaceBuilder}; diff --git a/examples/tcpdump.rs b/examples/tcpdump.rs index 166ac1e..5ca8ec6 100644 --- a/examples/tcpdump.rs +++ b/examples/tcpdump.rs @@ -1,5 +1,3 @@ -extern crate smoltcp; - use std::env; use std::os::unix::io::AsRawFd; use smoltcp::phy::wait as phy_wait; diff --git a/examples/utils.rs b/examples/utils.rs index f6b94e0..09d43d4 100644 --- a/examples/utils.rs +++ b/examples/utils.rs @@ -9,7 +9,7 @@ use std::time::{SystemTime, UNIX_EPOCH}; use std::env; use std::process; #[cfg(feature = "log")] -use log::{Level, LevelFilter}; +use log::{Level, LevelFilter, trace}; #[cfg(feature = "log")] use env_logger::Builder; use getopts::{Options, Matches}; diff --git a/src/dhcp/clientv4.rs b/src/dhcp/clientv4.rs index e7f01a6..0828d1f 100644 --- a/src/dhcp/clientv4.rs +++ b/src/dhcp/clientv4.rs @@ -1,13 +1,13 @@ -use {Result, Error}; -use wire::{IpVersion, IpProtocol, IpEndpoint, IpAddress, +use crate::{Result, Error}; +use crate::wire::{IpVersion, IpProtocol, IpEndpoint, IpAddress, Ipv4Cidr, Ipv4Address, Ipv4Packet, Ipv4Repr, UdpPacket, UdpRepr, DhcpPacket, DhcpRepr, DhcpMessageType}; -use wire::dhcpv4::field as dhcpv4_field; -use socket::{SocketSet, SocketHandle, RawSocket, RawSocketBuffer}; -use phy::{Device, ChecksumCapabilities}; -use iface::EthernetInterface as Interface; -use time::{Instant, Duration}; +use crate::wire::dhcpv4::field as dhcpv4_field; +use crate::socket::{SocketSet, SocketHandle, RawSocket, RawSocketBuffer}; +use crate::phy::{Device, ChecksumCapabilities}; +use crate::iface::EthernetInterface as Interface; +use crate::time::{Instant, Duration}; use super::{UDP_SERVER_PORT, UDP_CLIENT_PORT}; const DISCOVER_TIMEOUT: u64 = 10; diff --git a/src/iface/ethernet.rs b/src/iface/ethernet.rs index 263a7f1..71e6094 100644 --- a/src/iface/ethernet.rs +++ b/src/iface/ethernet.rs @@ -7,50 +7,50 @@ use managed::{ManagedSlice, ManagedMap}; #[cfg(not(feature = "proto-igmp"))] use core::marker::PhantomData; -use {Error, Result}; -use phy::{Device, DeviceCapabilities, RxToken, TxToken}; -use time::{Duration, Instant}; -use wire::pretty_print::PrettyPrinter; -use wire::{EthernetAddress, EthernetProtocol, EthernetFrame}; -use wire::{IpAddress, IpProtocol, IpRepr, IpCidr}; +use crate::{Error, Result}; +use crate::phy::{Device, DeviceCapabilities, RxToken, TxToken}; +use crate::time::{Duration, Instant}; +use crate::wire::pretty_print::PrettyPrinter; +use crate::wire::{EthernetAddress, EthernetProtocol, EthernetFrame}; +use crate::wire::{IpAddress, IpProtocol, IpRepr, IpCidr}; #[cfg(feature = "proto-ipv6")] -use wire::{Ipv6Address, Ipv6Packet, Ipv6Repr, IPV6_MIN_MTU}; +use crate::wire::{Ipv6Address, Ipv6Packet, Ipv6Repr, IPV6_MIN_MTU}; #[cfg(feature = "proto-ipv4")] -use wire::{Ipv4Address, Ipv4Packet, Ipv4Repr, IPV4_MIN_MTU}; +use crate::wire::{Ipv4Address, Ipv4Packet, Ipv4Repr, IPV4_MIN_MTU}; #[cfg(feature = "proto-ipv4")] -use wire::{ArpPacket, ArpRepr, ArpOperation}; +use crate::wire::{ArpPacket, ArpRepr, ArpOperation}; #[cfg(feature = "proto-ipv4")] -use wire::{Icmpv4Packet, Icmpv4Repr, Icmpv4DstUnreachable}; +use crate::wire::{Icmpv4Packet, Icmpv4Repr, Icmpv4DstUnreachable}; #[cfg(feature = "proto-igmp")] -use wire::{IgmpPacket, IgmpRepr, IgmpVersion}; +use crate::wire::{IgmpPacket, IgmpRepr, IgmpVersion}; #[cfg(feature = "proto-ipv6")] -use wire::{Icmpv6Packet, Icmpv6Repr, Icmpv6ParamProblem}; +use crate::wire::{Icmpv6Packet, Icmpv6Repr, Icmpv6ParamProblem}; #[cfg(all(feature = "socket-icmp", any(feature = "proto-ipv4", feature = "proto-ipv6")))] -use wire::IcmpRepr; +use crate::wire::IcmpRepr; #[cfg(feature = "proto-ipv6")] -use wire::{Ipv6HopByHopHeader, Ipv6HopByHopRepr}; +use crate::wire::{Ipv6HopByHopHeader, Ipv6HopByHopRepr}; #[cfg(feature = "proto-ipv6")] -use wire::{Ipv6OptionRepr, Ipv6OptionFailureType}; +use crate::wire::{Ipv6OptionRepr, Ipv6OptionFailureType}; #[cfg(feature = "proto-ipv6")] -use wire::{NdiscNeighborFlags, NdiscRepr}; +use crate::wire::{NdiscNeighborFlags, NdiscRepr}; #[cfg(all(feature = "proto-ipv6", feature = "socket-udp"))] -use wire::Icmpv6DstUnreachable; +use crate::wire::Icmpv6DstUnreachable; #[cfg(feature = "socket-udp")] -use wire::{UdpPacket, UdpRepr}; +use crate::wire::{UdpPacket, UdpRepr}; #[cfg(feature = "socket-tcp")] -use wire::{TcpPacket, TcpRepr, TcpControl}; +use crate::wire::{TcpPacket, TcpRepr, TcpControl}; -use socket::{Socket, SocketSet, AnySocket, PollAt}; +use crate::socket::{Socket, SocketSet, AnySocket, PollAt}; #[cfg(feature = "socket-raw")] -use socket::RawSocket; +use crate::socket::RawSocket; #[cfg(all(feature = "socket-icmp", any(feature = "proto-ipv4", feature = "proto-ipv6")))] -use socket::IcmpSocket; +use crate::socket::IcmpSocket; #[cfg(feature = "socket-udp")] -use socket::UdpSocket; +use crate::socket::UdpSocket; #[cfg(feature = "socket-tcp")] -use socket::TcpSocket; -use super::{NeighborCache, NeighborAnswer}; -use super::Routes; +use crate::socket::TcpSocket; +use crate::iface::{NeighborCache, NeighborAnswer}; +use crate::iface::Routes; /// An Ethernet network interface. /// @@ -1722,37 +1722,37 @@ mod test { #[cfg(feature = "proto-igmp")] use std::vec::Vec; use std::collections::BTreeMap; - use {Result, Error}; + use crate::{Result, Error}; use super::InterfaceBuilder; - use iface::{NeighborCache, EthernetInterface}; - use phy::{self, Loopback, ChecksumCapabilities}; + use crate::iface::{NeighborCache, EthernetInterface}; + use crate::phy::{self, Loopback, ChecksumCapabilities}; #[cfg(feature = "proto-igmp")] - use phy::{Device, RxToken, TxToken}; - use time::Instant; - use socket::SocketSet; + use crate::phy::{Device, RxToken, TxToken}; + use crate::time::Instant; + use crate::socket::SocketSet; #[cfg(feature = "proto-ipv4")] - use wire::{ArpOperation, ArpPacket, ArpRepr}; - use wire::{EthernetAddress, EthernetFrame, EthernetProtocol}; - use wire::{IpAddress, IpCidr, IpProtocol, IpRepr}; + use crate::wire::{ArpOperation, ArpPacket, ArpRepr}; + use crate::wire::{EthernetAddress, EthernetFrame, EthernetProtocol}; + use crate::wire::{IpAddress, IpCidr, IpProtocol, IpRepr}; #[cfg(feature = "proto-ipv4")] - use wire::{Ipv4Address, Ipv4Repr}; + use crate::wire::{Ipv4Address, Ipv4Repr}; #[cfg(feature = "proto-igmp")] - use wire::Ipv4Packet; + use crate::wire::Ipv4Packet; #[cfg(feature = "proto-ipv4")] - use wire::{Icmpv4Repr, Icmpv4DstUnreachable}; + use crate::wire::{Icmpv4Repr, Icmpv4DstUnreachable}; #[cfg(feature = "proto-igmp")] - use wire::{IgmpPacket, IgmpRepr, IgmpVersion}; + use crate::wire::{IgmpPacket, IgmpRepr, IgmpVersion}; #[cfg(all(feature = "socket-udp", any(feature = "proto-ipv4", feature = "proto-ipv6")))] - use wire::{UdpPacket, UdpRepr}; + use crate::wire::{UdpPacket, UdpRepr}; #[cfg(feature = "proto-ipv6")] - use wire::{Ipv6Address, Ipv6Repr}; + use crate::wire::{Ipv6Address, Ipv6Repr}; #[cfg(feature = "proto-ipv6")] - use wire::{Icmpv6Packet, Icmpv6Repr, Icmpv6ParamProblem}; + use crate::wire::{Icmpv6Packet, Icmpv6Repr, Icmpv6ParamProblem}; #[cfg(feature = "proto-ipv6")] - use wire::{NdiscNeighborFlags, NdiscRepr}; + use crate::wire::{NdiscNeighborFlags, NdiscRepr}; #[cfg(feature = "proto-ipv6")] - use wire::{Ipv6HopByHopHeader, Ipv6Option, Ipv6OptionRepr}; + use crate::wire::{Ipv6HopByHopHeader, Ipv6Option, Ipv6OptionRepr}; use super::Packet; @@ -2003,8 +2003,8 @@ mod test { #[test] #[cfg(feature = "socket-udp")] fn test_handle_udp_broadcast() { - use socket::{UdpSocket, UdpSocketBuffer, UdpPacketMetadata}; - use wire::IpEndpoint; + use crate::socket::{UdpSocket, UdpSocketBuffer, UdpPacketMetadata}; + use crate::wire::IpEndpoint; static UDP_PAYLOAD: [u8; 5] = [0x48, 0x65, 0x6c, 0x6c, 0x6f]; @@ -2075,7 +2075,7 @@ mod test { #[test] #[cfg(feature = "proto-ipv4")] fn test_handle_ipv4_broadcast() { - use wire::{Ipv4Packet, Icmpv4Repr, Icmpv4Packet}; + use crate::wire::{Ipv4Packet, Icmpv4Repr, Icmpv4Packet}; let (mut iface, mut socket_set) = create_loopback(); @@ -2134,11 +2134,11 @@ mod test { #[cfg(feature = "socket-udp")] fn test_icmp_reply_size() { #[cfg(all(feature = "proto-ipv4", not(feature = "proto-ipv6")))] - use wire::IPV4_MIN_MTU as MIN_MTU; + use crate::wire::IPV4_MIN_MTU as MIN_MTU; #[cfg(feature = "proto-ipv6")] - use wire::Icmpv6DstUnreachable; + use crate::wire::Icmpv6DstUnreachable; #[cfg(feature = "proto-ipv6")] - use wire::IPV6_MIN_MTU as MIN_MTU; + use crate::wire::IPV6_MIN_MTU as MIN_MTU; #[cfg(all(feature = "proto-ipv4", not(feature = "proto-ipv6")))] const MAX_PAYLOAD_LEN: usize = 528; @@ -2371,8 +2371,8 @@ mod test { #[test] #[cfg(all(feature = "socket-icmp", feature = "proto-ipv4"))] fn test_icmpv4_socket() { - use socket::{IcmpSocket, IcmpEndpoint, IcmpSocketBuffer, IcmpPacketMetadata}; - use wire::Icmpv4Packet; + use crate::socket::{IcmpSocket, IcmpEndpoint, IcmpSocketBuffer, IcmpPacketMetadata}; + use crate::wire::Icmpv4Packet; let (iface, mut socket_set) = create_loopback(); @@ -2613,8 +2613,8 @@ mod test { #[test] #[cfg(all(feature = "proto-ipv4", feature = "socket-raw"))] fn test_raw_socket_no_reply() { - use socket::{RawSocket, RawSocketBuffer, RawPacketMetadata}; - use wire::{IpVersion, Ipv4Packet, UdpPacket, UdpRepr}; + use crate::socket::{RawSocket, RawSocketBuffer, RawPacketMetadata}; + use crate::wire::{IpVersion, Ipv4Packet, UdpPacket, UdpRepr}; let (mut iface, mut socket_set) = create_loopback(); @@ -2669,8 +2669,8 @@ mod test { #[test] #[cfg(all(feature = "proto-ipv4", feature = "socket-raw"))] fn test_raw_socket_truncated_packet() { - use socket::{RawSocket, RawSocketBuffer, RawPacketMetadata}; - use wire::{IpVersion, Ipv4Packet, UdpPacket, UdpRepr}; + use crate::socket::{RawSocket, RawSocketBuffer, RawPacketMetadata}; + use crate::wire::{IpVersion, Ipv4Packet, UdpPacket, UdpRepr}; let (mut iface, mut socket_set) = create_loopback(); @@ -2730,9 +2730,9 @@ mod test { #[test] #[cfg(all(feature = "proto-ipv4", feature = "socket-raw", feature = "socket-udp"))] fn test_raw_socket_with_udp_socket() { - use socket::{UdpSocket, UdpSocketBuffer, UdpPacketMetadata, + use crate::socket::{UdpSocket, UdpSocketBuffer, UdpPacketMetadata, RawSocket, RawSocketBuffer, RawPacketMetadata}; - use wire::{IpVersion, IpEndpoint, Ipv4Packet, UdpPacket, UdpRepr}; + use crate::wire::{IpVersion, IpEndpoint, Ipv4Packet, UdpPacket, UdpRepr}; static UDP_PAYLOAD: [u8; 5] = [0x48, 0x65, 0x6c, 0x6c, 0x6f]; diff --git a/src/iface/neighbor.rs b/src/iface/neighbor.rs index 71a6440..8f2193a 100644 --- a/src/iface/neighbor.rs +++ b/src/iface/neighbor.rs @@ -3,8 +3,8 @@ use managed::ManagedMap; -use wire::{EthernetAddress, IpAddress}; -use time::{Duration, Instant}; +use crate::wire::{EthernetAddress, IpAddress}; +use crate::time::{Duration, Instant}; /// A cached neighbor. /// @@ -194,7 +194,7 @@ impl<'a> Cache<'a> { mod test { use super::*; use std::collections::BTreeMap; - use wire::ip::test::{MOCK_IP_ADDR_1, MOCK_IP_ADDR_2, MOCK_IP_ADDR_3, MOCK_IP_ADDR_4}; + use crate::wire::ip::test::{MOCK_IP_ADDR_1, MOCK_IP_ADDR_2, MOCK_IP_ADDR_3, MOCK_IP_ADDR_4}; const HADDR_A: EthernetAddress = EthernetAddress([0, 0, 0, 0, 0, 1]); diff --git a/src/iface/route.rs b/src/iface/route.rs index ad3e6d4..2ddc5fd 100644 --- a/src/iface/route.rs +++ b/src/iface/route.rs @@ -1,13 +1,13 @@ use managed::ManagedMap; -use time::Instant; +use crate::time::Instant; use core::ops::Bound; -use {Error, Result}; -use wire::{IpCidr, IpAddress}; +use crate::{Error, Result}; +use crate::wire::{IpCidr, IpAddress}; #[cfg(feature = "proto-ipv4")] -use wire::{Ipv4Address, Ipv4Cidr}; +use crate::wire::{Ipv4Address, Ipv4Cidr}; #[cfg(feature = "proto-ipv6")] -use wire::{Ipv6Address, Ipv6Cidr}; +use crate::wire::{Ipv6Address, Ipv6Cidr}; /// A prefix of addresses that should be routed via a router #[derive(Debug, Clone, Copy)] diff --git a/src/lib.rs b/src/lib.rs index 94612dd..a25dae5 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -1,5 +1,4 @@ -#![cfg_attr(feature = "alloc", feature(alloc))] -#![no_std] +#![cfg_attr(not(any(test, feature = "std")), no_std)] #![deny(unsafe_code)] #![cfg_attr(all(any(feature = "proto-ipv4", feature = "proto-ipv6"), feature = "ethernet"), deny(unused))] @@ -91,21 +90,8 @@ compile_error!("at least one socket needs to be enabled"); */ // FIXME(dlrobertson): clippy fails with this lint #![cfg_attr(feature = "cargo-clippy", allow(if_same_then_else))] -#[cfg(all(feature = "proto-ipv6", feature = "ethernet"))] -#[macro_use] -extern crate bitflags; -extern crate byteorder; -extern crate managed; -#[cfg(any(test, feature = "std"))] -#[macro_use] -extern crate std; -#[cfg(any(feature = "phy-raw_socket", feature = "phy-tap_interface"))] -extern crate libc; #[cfg(feature = "alloc")] extern crate alloc; -#[cfg(feature = "log")] -#[macro_use(trace, debug)] -extern crate log; use core::fmt; diff --git a/src/macros.rs b/src/macros.rs index eb51d03..2c1da7f 100644 --- a/src/macros.rs +++ b/src/macros.rs @@ -1,18 +1,14 @@ + #[cfg(feature = "log")] -#[macro_use] -mod log { - macro_rules! net_log { - (trace, $($arg:expr),*) => { trace!($($arg),*); }; - (debug, $($arg:expr),*) => { debug!($($arg),*); }; - } +macro_rules! net_log { + (trace, $($arg:expr),*) => { log::trace!($($arg),*); }; + (debug, $($arg:expr),*) => { log::debug!($($arg),*); }; } #[cfg(not(feature = "log"))] #[macro_use] -mod log { - macro_rules! net_log { - ($level:ident, $($arg:expr),*) => { $( let _ = $arg; )* } - } +macro_rules! net_log { + ($level:ident, $($arg:expr),*) => { $( let _ = $arg; )* } } macro_rules! net_trace { diff --git a/src/parsers.rs b/src/parsers.rs index e645263..4c6b936 100644 --- a/src/parsers.rs +++ b/src/parsers.rs @@ -4,12 +4,12 @@ use core::str::FromStr; use core::result; #[cfg(feature = "ethernet")] -use wire::EthernetAddress; -use wire::{IpAddress, IpCidr, IpEndpoint}; +use crate::wire::EthernetAddress; +use crate::wire::{IpAddress, IpCidr, IpEndpoint}; #[cfg(feature = "proto-ipv4")] -use wire::{Ipv4Address, Ipv4Cidr}; +use crate::wire::{Ipv4Address, Ipv4Cidr}; #[cfg(feature = "proto-ipv6")] -use wire::{Ipv6Address, Ipv6Cidr}; +use crate::wire::{Ipv6Address, Ipv6Cidr}; type Result = result::Result; @@ -44,7 +44,7 @@ impl<'a> Parser<'a> { } } - fn try(&mut self, f: F) -> Option + fn try_do(&mut self, f: F) -> Option where F: FnOnce(&mut Parser<'a>) -> Result { let pos = self.pos; match f(self) { @@ -103,7 +103,7 @@ impl<'a> Parser<'a> { hex: bool) -> Result { let mut value = self.accept_digit(hex)? as u32; for _ in 1..max_digits { - match self.try(|p| p.accept_digit(hex)) { + match self.try_do(|p| p.accept_digit(hex)) { Some(digit) => { value *= if hex { 16 } else { 10 }; value += digit as u32; @@ -132,10 +132,10 @@ impl<'a> Parser<'a> { #[cfg(feature = "ethernet")] fn accept_mac(&mut self) -> Result { - if let Some(mac) = self.try(|p| p.accept_mac_joined_with(b'-')) { + if let Some(mac) = self.try_do(|p| p.accept_mac_joined_with(b'-')) { return Ok(mac) } - if let Some(mac) = self.try(|p| p.accept_mac_joined_with(b':')) { + if let Some(mac) = self.try_do(|p| p.accept_mac_joined_with(b':')) { return Ok(mac) } Err(()) @@ -157,7 +157,7 @@ impl<'a> Parser<'a> { fn accept_ipv6_part(&mut self, (head, tail): (&mut [u16; 8], &mut [u16; 6]), (head_idx, tail_idx): (&mut usize, &mut usize), mut use_tail: bool, is_cidr: bool) -> Result<()> { - let double_colon = match self.try(|p| p.accept_str(b"::")) { + let double_colon = match self.try_do(|p| p.accept_str(b"::")) { Some(_) if !use_tail && *head_idx < 7 => { // Found a double colon. Start filling out the // tail and set the double colon flag in case @@ -180,14 +180,14 @@ impl<'a> Parser<'a> { } }; - match self.try(|p| p.accept_number(4, 0x10000, true)) { + match self.try_do(|p| p.accept_number(4, 0x10000, true)) { Some(part) if !use_tail && *head_idx < 8 => { // Valid u16 to be added to the address head[*head_idx] = part as u16; *head_idx += 1; if *head_idx == 6 && head[0..*head_idx] == [0, 0, 0, 0, 0, 0xffff] { - self.try(|p| { + self.try_do(|p| { p.accept_char(b':')?; p.accept_ipv4_mapped_ipv6_part(head, head_idx) }); @@ -201,7 +201,7 @@ impl<'a> Parser<'a> { if *tail_idx == 1 && tail[0] == 0xffff && head[0..8] == [0, 0, 0, 0, 0, 0, 0, 0] { - self.try(|p| { + self.try_do(|p| { p.accept_char(b':')?; p.accept_ipv4_mapped_ipv6_part(tail, tail_idx) }); @@ -287,13 +287,13 @@ impl<'a> Parser<'a> { fn accept_ip(&mut self) -> Result { #[cfg(feature = "proto-ipv4")] - match self.try(|p| p.accept_ipv4()) { + match self.try_do(|p| p.accept_ipv4()) { Some(ipv4) => return Ok(IpAddress::Ipv4(ipv4)), None => () } #[cfg(feature = "proto-ipv6")] - match self.try(|p| p.accept_ipv6(false)) { + match self.try_do(|p| p.accept_ipv6(false)) { Some(ipv6) => return Ok(IpAddress::Ipv6(ipv6)), None => () } @@ -333,13 +333,13 @@ impl<'a> Parser<'a> { fn accept_ip_endpoint(&mut self) -> Result { #[cfg(feature = "proto-ipv4")] - match self.try(|p| p.accept_ipv4_endpoint()) { + match self.try_do(|p| p.accept_ipv4_endpoint()) { Some(ipv4) => return Ok(ipv4), None => () } #[cfg(feature = "proto-ipv6")] - match self.try(|p| p.accept_ipv6_endpoint()) { + match self.try_do(|p| p.accept_ipv6_endpoint()) { Some(ipv6) => return Ok(ipv6), None => () } diff --git a/src/phy/fault_injector.rs b/src/phy/fault_injector.rs index c5e2c4b..5f79fec 100644 --- a/src/phy/fault_injector.rs +++ b/src/phy/fault_injector.rs @@ -1,8 +1,8 @@ use core::cell::RefCell; -use {Error, Result}; -use phy::{self, DeviceCapabilities, Device}; -use time::{Duration, Instant}; +use crate::{Error, Result}; +use crate::phy::{self, DeviceCapabilities, Device}; +use crate::time::{Duration, Instant}; // We use our own RNG to stay compatible with #![no_std]. // The use of the RNG below has a slight bias, but it doesn't matter. diff --git a/src/phy/fuzz_injector.rs b/src/phy/fuzz_injector.rs index 83a6e42..9f11b17 100644 --- a/src/phy/fuzz_injector.rs +++ b/src/phy/fuzz_injector.rs @@ -1,6 +1,6 @@ -use Result; -use phy::{self, DeviceCapabilities, Device}; -use time::Instant; +use crate::Result; +use crate::phy::{self, DeviceCapabilities, Device}; +use crate::time::Instant; // This could be fixed once associated consts are stable. const MTU: usize = 1536; diff --git a/src/phy/loopback.rs b/src/phy/loopback.rs index 7db99aa..b4e1f52 100644 --- a/src/phy/loopback.rs +++ b/src/phy/loopback.rs @@ -9,9 +9,9 @@ use alloc::collections::VecDeque; #[cfg(all(feature = "alloc", feature = "rust-1_28"))] use alloc::VecDeque; -use Result; -use phy::{self, Device, DeviceCapabilities}; -use time::Instant; +use crate::Result; +use crate::phy::{self, Device, DeviceCapabilities}; +use crate::time::Instant; /// A loopback device. #[derive(Debug)] diff --git a/src/phy/mod.rs b/src/phy/mod.rs index 47146b4..8ef6991 100644 --- a/src/phy/mod.rs +++ b/src/phy/mod.rs @@ -84,8 +84,8 @@ impl<'a> phy::TxToken for StmPhyTxToken<'a> { ``` */ -use Result; -use time::Instant; +use crate::Result; +use crate::time::Instant; #[cfg(all(any(feature = "phy-raw_socket", feature = "phy-tap_interface"), unix))] mod sys; diff --git a/src/phy/pcap_writer.rs b/src/phy/pcap_writer.rs index 53d7559..cb4b9ec 100644 --- a/src/phy/pcap_writer.rs +++ b/src/phy/pcap_writer.rs @@ -4,9 +4,9 @@ use std::cell::RefCell; use std::io::Write; use byteorder::{ByteOrder, NativeEndian}; -use Result; -use phy::{self, DeviceCapabilities, Device}; -use time::Instant; +use crate::Result; +use crate::phy::{self, DeviceCapabilities, Device}; +use crate::time::Instant; enum_with_unknown! { /// Captured packet header type. diff --git a/src/phy/raw_socket.rs b/src/phy/raw_socket.rs index 231d3d1..3764551 100644 --- a/src/phy/raw_socket.rs +++ b/src/phy/raw_socket.rs @@ -4,9 +4,9 @@ use std::rc::Rc; use std::io; use std::os::unix::io::{RawFd, AsRawFd}; -use Result; -use phy::{self, sys, DeviceCapabilities, Device}; -use time::Instant; +use crate::Result; +use crate::phy::{self, sys, DeviceCapabilities, Device}; +use crate::time::Instant; /// A socket that captures or transmits the complete frame. #[derive(Debug)] diff --git a/src/phy/sys/mod.rs b/src/phy/sys/mod.rs index 508eb1a..cfc9a88 100644 --- a/src/phy/sys/mod.rs +++ b/src/phy/sys/mod.rs @@ -3,7 +3,7 @@ use libc; use std::{mem, ptr, io}; use std::os::unix::io::RawFd; -use time::Duration; +use crate::time::Duration; #[cfg(target_os = "linux")] #[path = "linux.rs"] diff --git a/src/phy/tap_interface.rs b/src/phy/tap_interface.rs index dfdfb27..95202ab 100644 --- a/src/phy/tap_interface.rs +++ b/src/phy/tap_interface.rs @@ -4,9 +4,9 @@ use std::rc::Rc; use std::io; use std::os::unix::io::{RawFd, AsRawFd}; -use Result; -use phy::{self, sys, DeviceCapabilities, Device}; -use time::Instant; +use crate::Result; +use crate::phy::{self, sys, DeviceCapabilities, Device}; +use crate::time::Instant; /// A virtual Ethernet interface. #[derive(Debug)] diff --git a/src/phy/tracer.rs b/src/phy/tracer.rs index b1598ad..22a2288 100644 --- a/src/phy/tracer.rs +++ b/src/phy/tracer.rs @@ -1,7 +1,7 @@ -use Result; -use wire::pretty_print::{PrettyPrint, PrettyPrinter}; -use phy::{self, DeviceCapabilities, Device}; -use time::Instant; +use crate::Result; +use crate::wire::pretty_print::{PrettyPrint, PrettyPrinter}; +use crate::phy::{self, DeviceCapabilities, Device}; +use crate::time::Instant; /// A tracer device. /// diff --git a/src/socket/icmp.rs b/src/socket/icmp.rs index 72bb8ab..2afd8b8 100644 --- a/src/socket/icmp.rs +++ b/src/socket/icmp.rs @@ -1,21 +1,21 @@ use core::cmp; - -use {Error, Result}; -use phy::{ChecksumCapabilities, DeviceCapabilities}; -use socket::{Socket, SocketMeta, SocketHandle, PollAt}; -use storage::{PacketBuffer, PacketMetadata}; -use wire::{IpAddress, IpEndpoint, IpProtocol, IpRepr}; -#[cfg(feature = "async")] -use socket::WakerRegistration; #[cfg(feature = "async")] use core::task::Waker; +use crate::{Error, Result}; +use crate::phy::{ChecksumCapabilities, DeviceCapabilities}; +use crate::socket::{Socket, SocketMeta, SocketHandle, PollAt}; +use crate::storage::{PacketBuffer, PacketMetadata}; +#[cfg(feature = "async")] +use crate::socket::WakerRegistration; + #[cfg(feature = "proto-ipv4")] -use wire::{Ipv4Address, Ipv4Repr, Icmpv4Packet, Icmpv4Repr}; +use crate::wire::{Ipv4Address, Ipv4Repr, Icmpv4Packet, Icmpv4Repr}; #[cfg(feature = "proto-ipv6")] -use wire::{Ipv6Address, Ipv6Repr, Icmpv6Packet, Icmpv6Repr}; -use wire::IcmpRepr; -use wire::{UdpPacket, UdpRepr}; +use crate::wire::{Ipv6Address, Ipv6Repr, Icmpv6Packet, Icmpv6Repr}; +use crate::wire::IcmpRepr; +use crate::wire::{UdpPacket, UdpRepr}; +use crate::wire::{IpAddress, IpEndpoint, IpProtocol, IpRepr}; /// Type of endpoint to bind the ICMP socket to. See [IcmpSocket::bind] for /// more details. @@ -463,8 +463,8 @@ impl<'a, 'b> Into> for IcmpSocket<'a, 'b> { #[cfg(test)] mod tests_common { - pub use phy::DeviceCapabilities; - pub use wire::IpAddress; + pub use crate::phy::DeviceCapabilities; + pub use crate::wire::IpAddress; pub use super::*; pub fn buffer(packets: usize) -> IcmpSocketBuffer<'static, 'static> { @@ -489,7 +489,7 @@ mod tests_common { mod test_ipv4 { use super::tests_common::*; - use wire::Icmpv4DstUnreachable; + use crate::wire::Icmpv4DstUnreachable; const REMOTE_IPV4: Ipv4Address = Ipv4Address([0x7f, 0x00, 0x00, 0x02]); const LOCAL_IPV4: Ipv4Address = Ipv4Address([0x7f, 0x00, 0x00, 0x01]); @@ -687,7 +687,7 @@ mod test_ipv4 { mod test_ipv6 { use super::tests_common::*; - use wire::Icmpv6DstUnreachable; + use crate::wire::Icmpv6DstUnreachable; const REMOTE_IPV6: Ipv6Address = Ipv6Address([0xfe, 0x80, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1]); diff --git a/src/socket/meta.rs b/src/socket/meta.rs index 28537bf..b4e9fbb 100644 --- a/src/socket/meta.rs +++ b/src/socket/meta.rs @@ -1,6 +1,6 @@ -use wire::IpAddress; -use super::{SocketHandle, PollAt}; -use time::{Duration, Instant}; +use crate::wire::IpAddress; +use crate::socket::{SocketHandle, PollAt}; +use crate::time::{Duration, Instant}; /// Neighbor dependency. /// diff --git a/src/socket/mod.rs b/src/socket/mod.rs index d9bf454..24afb5a 100644 --- a/src/socket/mod.rs +++ b/src/socket/mod.rs @@ -12,7 +12,7 @@ size for a buffer, allocate it, and let the networking stack use it. */ use core::marker::PhantomData; -use time::Instant; +use crate::time::Instant; mod meta; #[cfg(feature = "socket-raw")] diff --git a/src/socket/raw.rs b/src/socket/raw.rs index 6eee47c..56b66d5 100644 --- a/src/socket/raw.rs +++ b/src/socket/raw.rs @@ -1,19 +1,20 @@ use core::cmp::min; - -use {Error, Result}; -use phy::ChecksumCapabilities; -use socket::{Socket, SocketMeta, SocketHandle, PollAt}; -use storage::{PacketBuffer, PacketMetadata}; -use wire::{IpVersion, IpRepr, IpProtocol}; -#[cfg(feature = "proto-ipv4")] -use wire::{Ipv4Repr, Ipv4Packet}; -#[cfg(feature = "proto-ipv6")] -use wire::{Ipv6Repr, Ipv6Packet}; -#[cfg(feature = "async")] -use socket::WakerRegistration; #[cfg(feature = "async")] use core::task::Waker; +use crate::{Error, Result}; +use crate::phy::ChecksumCapabilities; +use crate::socket::{Socket, SocketMeta, SocketHandle, PollAt}; +use crate::storage::{PacketBuffer, PacketMetadata}; +#[cfg(feature = "async")] +use crate::socket::WakerRegistration; + +use crate::wire::{IpVersion, IpRepr, IpProtocol}; +#[cfg(feature = "proto-ipv4")] +use crate::wire::{Ipv4Repr, Ipv4Packet}; +#[cfg(feature = "proto-ipv6")] +use crate::wire::{Ipv6Repr, Ipv6Packet}; + /// A UDP packet metadata. pub type RawPacketMetadata = PacketMetadata<()>; @@ -304,11 +305,11 @@ impl<'a, 'b> Into> for RawSocket<'a, 'b> { #[cfg(test)] mod test { - use wire::IpRepr; + use crate::wire::IpRepr; #[cfg(feature = "proto-ipv4")] - use wire::{Ipv4Address, Ipv4Repr}; + use crate::wire::{Ipv4Address, Ipv4Repr}; #[cfg(feature = "proto-ipv6")] - use wire::{Ipv6Address, Ipv6Repr}; + use crate::wire::{Ipv6Address, Ipv6Repr}; use super::*; fn buffer(packets: usize) -> RawSocketBuffer<'static, 'static> { diff --git a/src/socket/ref_.rs b/src/socket/ref_.rs index db3205c..7d57ccf 100644 --- a/src/socket/ref_.rs +++ b/src/socket/ref_.rs @@ -1,13 +1,13 @@ use core::ops::{Deref, DerefMut}; #[cfg(feature = "socket-raw")] -use socket::RawSocket; +use crate::socket::RawSocket; #[cfg(all(feature = "socket-icmp", any(feature = "proto-ipv4", feature = "proto-ipv6")))] -use socket::IcmpSocket; +use crate::socket::IcmpSocket; #[cfg(feature = "socket-udp")] -use socket::UdpSocket; +use crate::socket::UdpSocket; #[cfg(feature = "socket-tcp")] -use socket::TcpSocket; +use crate::socket::TcpSocket; /// A trait for tracking a socket usage session. /// diff --git a/src/socket/set.rs b/src/socket/set.rs index 477b8a2..fd6d538 100644 --- a/src/socket/set.rs +++ b/src/socket/set.rs @@ -1,9 +1,9 @@ use core::{fmt, slice}; use managed::ManagedSlice; -use super::{Socket, SocketRef, AnySocket}; +use crate::socket::{Socket, SocketRef, AnySocket}; #[cfg(feature = "socket-tcp")] -use super::TcpState; +use crate::socket::TcpState; /// An item of a socket set. /// diff --git a/src/socket/tcp.rs b/src/socket/tcp.rs index 7b66ca0..d500428 100644 --- a/src/socket/tcp.rs +++ b/src/socket/tcp.rs @@ -3,18 +3,18 @@ // a new feature. use core::{cmp, fmt, mem}; - -use {Error, Result}; -use phy::DeviceCapabilities; -use time::{Duration, Instant}; -use socket::{Socket, SocketMeta, SocketHandle, PollAt}; -use storage::{Assembler, RingBuffer}; -use wire::{IpProtocol, IpRepr, IpAddress, IpEndpoint, TcpSeqNumber, TcpRepr, TcpControl}; -#[cfg(feature = "async")] -use socket::WakerRegistration; #[cfg(feature = "async")] use core::task::Waker; +use crate::{Error, Result}; +use crate::phy::DeviceCapabilities; +use crate::time::{Duration, Instant}; +use crate::socket::{Socket, SocketMeta, SocketHandle, PollAt}; +use crate::storage::{Assembler, RingBuffer}; +#[cfg(feature = "async")] +use crate::socket::WakerRegistration; +use crate::wire::{IpProtocol, IpRepr, IpAddress, IpEndpoint, TcpSeqNumber, TcpRepr, TcpControl}; + /// A TCP socket ring buffer. pub type SocketBuffer<'a> = RingBuffer<'a, u8>; @@ -1802,8 +1802,8 @@ impl<'a> fmt::Write for TcpSocket<'a> { mod test { use core::i32; use std::vec::Vec; - use wire::{IpAddress, IpRepr, IpCidr}; - use wire::ip::test::{MOCK_IP_ADDR_1, MOCK_IP_ADDR_2, MOCK_IP_ADDR_3, MOCK_UNSPECIFIED}; + use crate::wire::{IpAddress, IpRepr, IpCidr}; + use crate::wire::ip::test::{MOCK_IP_ADDR_1, MOCK_IP_ADDR_2, MOCK_IP_ADDR_3, MOCK_UNSPECIFIED}; use super::*; // =========================================================================================// @@ -1950,8 +1950,6 @@ mod test { #[cfg(feature = "log")] fn init_logger() { - extern crate log; - struct Logger; static LOGGER: Logger = Logger; diff --git a/src/socket/udp.rs b/src/socket/udp.rs index 1099692..caf8cb4 100644 --- a/src/socket/udp.rs +++ b/src/socket/udp.rs @@ -1,14 +1,14 @@ use core::cmp::min; - -use {Error, Result}; -use socket::{Socket, SocketMeta, SocketHandle, PollAt}; -use storage::{PacketBuffer, PacketMetadata}; -use wire::{IpProtocol, IpRepr, IpEndpoint, UdpRepr}; -#[cfg(feature = "async")] -use socket::WakerRegistration; #[cfg(feature = "async")] use core::task::Waker; +use crate::{Error, Result}; +use crate::socket::{Socket, SocketMeta, SocketHandle, PollAt}; +use crate::storage::{PacketBuffer, PacketMetadata}; +use crate::wire::{IpProtocol, IpRepr, IpEndpoint, UdpRepr}; +#[cfg(feature = "async")] +use crate::socket::WakerRegistration; + /// A UDP packet metadata. pub type UdpPacketMetadata = PacketMetadata; @@ -344,12 +344,12 @@ impl<'a, 'b> Into> for UdpSocket<'a, 'b> { #[cfg(test)] mod test { - use wire::{IpAddress, IpRepr, UdpRepr}; + use crate::wire::{IpAddress, IpRepr, UdpRepr}; #[cfg(feature = "proto-ipv4")] - use wire::Ipv4Repr; + use crate::wire::Ipv4Repr; #[cfg(feature = "proto-ipv6")] - use wire::Ipv6Repr; - use wire::ip::test::{MOCK_IP_ADDR_1, MOCK_IP_ADDR_2, MOCK_IP_ADDR_3}; + use crate::wire::Ipv6Repr; + use crate::wire::ip::test::{MOCK_IP_ADDR_1, MOCK_IP_ADDR_2, MOCK_IP_ADDR_3}; use super::*; fn buffer(packets: usize) -> UdpSocketBuffer<'static, 'static> { diff --git a/src/storage/packet_buffer.rs b/src/storage/packet_buffer.rs index 3bec8f1..ab91596 100644 --- a/src/storage/packet_buffer.rs +++ b/src/storage/packet_buffer.rs @@ -1,7 +1,7 @@ use managed::ManagedSlice; -use {Error, Result}; -use super::RingBuffer; +use crate::{Error, Result}; +use crate::storage::RingBuffer; /// Size and header of a packet. #[derive(Debug, Clone, Copy)] diff --git a/src/storage/ring_buffer.rs b/src/storage/ring_buffer.rs index cf8244f..9b70b02 100644 --- a/src/storage/ring_buffer.rs +++ b/src/storage/ring_buffer.rs @@ -4,8 +4,8 @@ use core::cmp; use managed::ManagedSlice; -use {Error, Result}; -use super::Resettable; +use crate::{Error, Result}; +use crate::storage::Resettable; /// A ring buffer. /// diff --git a/src/wire/arp.rs b/src/wire/arp.rs index b96d455..150adbf 100644 --- a/src/wire/arp.rs +++ b/src/wire/arp.rs @@ -1,7 +1,7 @@ use core::fmt; use byteorder::{ByteOrder, NetworkEndian}; -use {Error, Result}; +use crate::{Error, Result}; pub use super::EthernetProtocol as Protocol; @@ -29,7 +29,7 @@ pub struct Packet> { mod field { #![allow(non_snake_case)] - use wire::field::*; + use crate::wire::field::*; pub const HTYPE: Field = 0..2; pub const PTYPE: Field = 2..4; @@ -248,7 +248,7 @@ impl> AsRef<[u8]> for Packet { } } -use super::{EthernetAddress, Ipv4Address}; +use crate::wire::{EthernetAddress, Ipv4Address}; /// A high-level representation of an Address Resolution Protocol packet. #[derive(Debug, PartialEq, Eq, Clone, Copy)] @@ -356,7 +356,7 @@ impl fmt::Display for Repr { } } -use super::pretty_print::{PrettyPrint, PrettyIndent}; +use crate::wire::pretty_print::{PrettyPrint, PrettyIndent}; impl> PrettyPrint for Packet { fn pretty_print(buffer: &dyn AsRef<[u8]>, f: &mut fmt::Formatter, diff --git a/src/wire/dhcpv4.rs b/src/wire/dhcpv4.rs index 7062c9c..af51f57 100644 --- a/src/wire/dhcpv4.rs +++ b/src/wire/dhcpv4.rs @@ -2,9 +2,9 @@ use byteorder::{ByteOrder, NetworkEndian}; -use {Error, Result}; -use super::{EthernetAddress, Ipv4Address}; -use super::arp::Hardware; +use crate::{Error, Result}; +use crate::wire::{EthernetAddress, Ipv4Address}; +use crate::wire::arp::Hardware; const DHCP_MAGIC_NUMBER: u32 = 0x63825363; @@ -199,7 +199,7 @@ pub(crate) mod field { #![allow(non_snake_case)] #![allow(unused)] - use wire::field::*; + use crate::wire::field::*; pub const OP: usize = 0; pub const HTYPE: usize = 1; @@ -836,7 +836,7 @@ impl<'a> Repr<'a> { #[cfg(test)] mod test { - use wire::Ipv4Address; + use crate::wire::Ipv4Address; use super::*; const MAGIC_COOKIE: u32 = 0x63825363; diff --git a/src/wire/ethernet.rs b/src/wire/ethernet.rs index 4b69caf..449454a 100644 --- a/src/wire/ethernet.rs +++ b/src/wire/ethernet.rs @@ -1,7 +1,7 @@ use core::fmt; use byteorder::{ByteOrder, NetworkEndian}; -use {Error, Result}; +use crate::{Error, Result}; enum_with_unknown! { /// Ethernet protocol type. @@ -83,7 +83,7 @@ pub struct Frame> { } mod field { - use wire::field::*; + use crate::wire::field::*; pub const DESTINATION: Field = 0..6; pub const SOURCE: Field = 6..12; @@ -209,7 +209,7 @@ impl> fmt::Display for Frame { } } -use super::pretty_print::{PrettyPrint, PrettyIndent}; +use crate::wire::pretty_print::{PrettyPrint, PrettyIndent}; impl> PrettyPrint for Frame { fn pretty_print(buffer: &dyn AsRef<[u8]>, f: &mut fmt::Formatter, diff --git a/src/wire/icmp.rs b/src/wire/icmp.rs index 684ea5e..cf8400c 100644 --- a/src/wire/icmp.rs +++ b/src/wire/icmp.rs @@ -1,7 +1,7 @@ #[cfg(feature = "proto-ipv4")] -use super::icmpv4; +use crate::wire::icmpv4; #[cfg(feature = "proto-ipv6")] -use super::icmpv6; +use crate::wire::icmpv6; #[derive(Clone, PartialEq, Eq, Debug)] pub enum Repr<'a> { diff --git a/src/wire/icmpv4.rs b/src/wire/icmpv4.rs index 0d71fbc..fae318a 100644 --- a/src/wire/icmpv4.rs +++ b/src/wire/icmpv4.rs @@ -1,10 +1,10 @@ use core::{cmp, fmt}; use byteorder::{ByteOrder, NetworkEndian}; -use {Error, Result}; -use phy::ChecksumCapabilities; -use super::ip::checksum; -use super::{Ipv4Packet, Ipv4Repr}; +use crate::{Error, Result}; +use crate::phy::ChecksumCapabilities; +use crate::wire::ip::checksum; +use crate::wire::{Ipv4Packet, Ipv4Repr}; enum_with_unknown! { /// Internet protocol control message type. @@ -172,7 +172,7 @@ pub struct Packet> { } mod field { - use wire::field::*; + use crate::wire::field::*; pub const TYPE: usize = 0; pub const CODE: usize = 1; @@ -531,7 +531,7 @@ impl<'a> fmt::Display for Repr<'a> { } } -use super::pretty_print::{PrettyPrint, PrettyIndent}; +use crate::wire::pretty_print::{PrettyPrint, PrettyIndent}; impl> PrettyPrint for Packet { fn pretty_print(buffer: &dyn AsRef<[u8]>, f: &mut fmt::Formatter, diff --git a/src/wire/icmpv6.rs b/src/wire/icmpv6.rs index d2c3cbc..c44ae5d 100644 --- a/src/wire/icmpv6.rs +++ b/src/wire/icmpv6.rs @@ -1,13 +1,13 @@ use core::{cmp, fmt}; use byteorder::{ByteOrder, NetworkEndian}; -use {Error, Result}; -use phy::ChecksumCapabilities; -use super::ip::checksum; -use super::{IpAddress, IpProtocol, Ipv6Packet, Ipv6Repr}; -use super::MldRepr; +use crate::{Error, Result}; +use crate::phy::ChecksumCapabilities; +use crate::wire::ip::checksum; +use crate::wire::{IpAddress, IpProtocol, Ipv6Packet, Ipv6Repr}; +use crate::wire::MldRepr; #[cfg(feature = "ethernet")] -use super::NdiscRepr; +use crate::wire::NdiscRepr; enum_with_unknown! { /// Internet protocol control message type. @@ -197,7 +197,7 @@ pub struct Packet> { // Ranges and constants describing key boundaries in the ICMPv6 header. pub(super) mod field { - use wire::field::*; + use crate::wire::field::*; // ICMPv6: See https://tools.ietf.org/html/rfc4443 pub const TYPE: usize = 0; @@ -739,8 +739,8 @@ impl<'a> Repr<'a> { #[cfg(test)] mod test { - use wire::{Ipv6Address, Ipv6Repr, IpProtocol}; - use wire::ip::test::{MOCK_IP_ADDR_1, MOCK_IP_ADDR_2}; + use crate::wire::{Ipv6Address, Ipv6Repr, IpProtocol}; + use crate::wire::ip::test::{MOCK_IP_ADDR_1, MOCK_IP_ADDR_2}; use super::*; static ECHO_PACKET_BYTES: [u8; 12] = diff --git a/src/wire/igmp.rs b/src/wire/igmp.rs index 64ad657..8fac535 100644 --- a/src/wire/igmp.rs +++ b/src/wire/igmp.rs @@ -1,11 +1,11 @@ use core::fmt; use byteorder::{ByteOrder, NetworkEndian}; -use {Error, Result}; -use super::ip::checksum; -use time::Duration; +use crate::{Error, Result}; +use crate::wire::ip::checksum; +use crate::time::Duration; -use wire::Ipv4Address; +use crate::wire::Ipv4Address; enum_with_unknown! { /// Internet Group Management Protocol v1/v2 message version/type. @@ -28,7 +28,7 @@ pub struct Packet> { } mod field { - use wire::field::*; + use crate::wire::field::*; pub const TYPE: usize = 0; pub const MAX_RESP_CODE: usize = 1; @@ -355,7 +355,7 @@ impl<'a> fmt::Display for Repr { } } -use super::pretty_print::{PrettyIndent, PrettyPrint}; +use crate::wire::pretty_print::{PrettyIndent, PrettyPrint}; impl> PrettyPrint for Packet { fn pretty_print(buffer: &dyn AsRef<[u8]>, diff --git a/src/wire/ip.rs b/src/wire/ip.rs index bdc843c..d003a15 100644 --- a/src/wire/ip.rs +++ b/src/wire/ip.rs @@ -1,12 +1,12 @@ use core::fmt; use core::convert::From; -use {Error, Result}; -use phy::ChecksumCapabilities; +use crate::{Error, Result}; +use crate::phy::ChecksumCapabilities; #[cfg(feature = "proto-ipv4")] -use super::{Ipv4Address, Ipv4Packet, Ipv4Repr, Ipv4Cidr}; +use crate::wire::{Ipv4Address, Ipv4Packet, Ipv4Repr, Ipv4Cidr}; #[cfg(feature = "proto-ipv6")] -use super::{Ipv6Address, Ipv6Cidr, Ipv6Packet, Ipv6Repr}; +use crate::wire::{Ipv6Address, Ipv6Cidr, Ipv6Packet, Ipv6Repr}; /// Internet protocol version. #[derive(Debug, Hash, PartialEq, Eq, PartialOrd, Ord, Clone, Copy)] @@ -862,16 +862,16 @@ pub mod checksum { } } -use super::pretty_print::PrettyIndent; +use crate::wire::pretty_print::PrettyIndent; pub fn pretty_print_ip_payload>(f: &mut fmt::Formatter, indent: &mut PrettyIndent, ip_repr: T, payload: &[u8]) -> fmt::Result { #[cfg(feature = "proto-ipv4")] - use wire::Icmpv4Packet; + use crate::wire::Icmpv4Packet; #[cfg(feature = "proto-ipv4")] use super::pretty_print::PrettyPrint; - use wire::{TcpPacket, TcpRepr, UdpPacket, UdpRepr}; - use wire::ip::checksum::format_checksum; + use crate::wire::{TcpPacket, TcpRepr, UdpPacket, UdpRepr}; + use crate::wire::ip::checksum::format_checksum; let checksum_caps = ChecksumCapabilities::ignored(); let repr = ip_repr.into(); @@ -953,9 +953,9 @@ pub(crate) mod test { use super::*; - use wire::{IpAddress, IpProtocol,IpCidr}; + use crate::wire::{IpAddress, IpProtocol,IpCidr}; #[cfg(feature = "proto-ipv4")] - use wire::{Ipv4Address, Ipv4Repr}; + use crate::wire::{Ipv4Address, Ipv4Repr}; macro_rules! generate_common_tests { ($name:ident, $repr:ident, $ip_repr:path, $ip_addr:path, diff --git a/src/wire/ipv4.rs b/src/wire/ipv4.rs index c2360cb..aab7e61 100644 --- a/src/wire/ipv4.rs +++ b/src/wire/ipv4.rs @@ -1,9 +1,9 @@ use core::fmt; use byteorder::{ByteOrder, NetworkEndian}; -use {Error, Result}; -use phy::ChecksumCapabilities; -use super::ip::{checksum, pretty_print_ip_payload}; +use crate::{Error, Result}; +use crate::phy::ChecksumCapabilities; +use crate::wire::ip::{checksum, pretty_print_ip_payload}; pub use super::IpProtocol as Protocol; @@ -231,7 +231,7 @@ pub struct Packet> { } mod field { - use wire::field::*; + use crate::wire::field::*; pub const VER_IHL: usize = 0; pub const DSCP_ECN: usize = 1; @@ -662,12 +662,12 @@ impl fmt::Display for Repr { } } -use super::pretty_print::{PrettyPrint, PrettyIndent}; +use crate::wire::pretty_print::{PrettyPrint, PrettyIndent}; impl> PrettyPrint for Packet { fn pretty_print(buffer: &dyn AsRef<[u8]>, f: &mut fmt::Formatter, indent: &mut PrettyIndent) -> fmt::Result { - use wire::ip::checksum::format_checksum; + use crate::wire::ip::checksum::format_checksum; let checksum_caps = ChecksumCapabilities::ignored(); diff --git a/src/wire/ipv6.rs b/src/wire/ipv6.rs index 89b1196..8d93cd8 100644 --- a/src/wire/ipv6.rs +++ b/src/wire/ipv6.rs @@ -3,9 +3,12 @@ use core::fmt; use byteorder::{ByteOrder, NetworkEndian}; -use {Error, Result}; +use crate::{Error, Result}; +use crate::wire::ip::pretty_print_ip_payload; +#[cfg(feature = "proto-ipv4")] +use crate::wire::ipv4; + pub use super::IpProtocol as Protocol; -use super::ip::pretty_print_ip_payload; /// Minimum MTU required of all links supporting IPv6. See [RFC 8200 § 5]. /// @@ -144,9 +147,9 @@ impl Address { #[cfg(feature = "proto-ipv4")] /// Convert an IPv4 mapped IPv6 address to an IPv4 address. - pub fn as_ipv4(&self) -> Option<::wire::ipv4::Address> { + pub fn as_ipv4(&self) -> Option { if self.is_ipv4_mapped() { - Some(::wire::ipv4::Address::new(self.0[12], self.0[13], self.0[14], self.0[15])) + Some(ipv4::Address::new(self.0[12], self.0[13], self.0[14], self.0[15])) } else { None } @@ -254,8 +257,8 @@ impl fmt::Display for Address { #[cfg(feature = "proto-ipv4")] /// Convert the given IPv4 address into a IPv4-mapped IPv6 address -impl From<::wire::ipv4::Address> for Address { - fn from(address: ::wire::ipv4::Address) -> Self { +impl From for Address { + fn from(address: ipv4::Address) -> Self { let octets = address.0; Address([0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0xff, 0xff, octets[0], octets[1], octets[2], octets[3]]) @@ -356,7 +359,7 @@ pub struct Packet> { // // See https://tools.ietf.org/html/rfc2460#section-3 for details. mod field { - use wire::field::*; + use crate::wire::field::*; // 4-bit version number, 8-bit traffic class, and the // 20-bit flow label. pub const VER_TC_FLOW: Field = 0..4; @@ -647,7 +650,7 @@ impl fmt::Display for Repr { } } -use super::pretty_print::{PrettyPrint, PrettyIndent}; +use crate::wire::pretty_print::{PrettyPrint, PrettyIndent}; // TODO: This is very similar to the implementation for IPv4. Make // a way to have less copy and pasted code here. @@ -673,13 +676,13 @@ impl> PrettyPrint for Packet { #[cfg(test)] mod test { - use Error; + use crate::Error; use super::{Address, Cidr}; use super::{Packet, Protocol, Repr}; - use wire::pretty_print::{PrettyPrinter}; + use crate::wire::pretty_print::{PrettyPrinter}; #[cfg(feature = "proto-ipv4")] - use wire::ipv4::Address as Ipv4Address; + use crate::wire::ipv4::Address as Ipv4Address; static LINK_LOCAL_ADDR: Address = Address([0xfe, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, diff --git a/src/wire/ipv6fragment.rs b/src/wire/ipv6fragment.rs index b5b641f..93a29b0 100644 --- a/src/wire/ipv6fragment.rs +++ b/src/wire/ipv6fragment.rs @@ -1,5 +1,5 @@ use core::fmt; -use {Error, Result}; +use crate::{Error, Result}; use byteorder::{ByteOrder, NetworkEndian}; @@ -21,7 +21,7 @@ pub struct Header> { // // See https://tools.ietf.org/html/rfc8200#section-4.5 for details. mod field { - use wire::field::*; + use crate::wire::field::*; // 8-bit identifier of the header immediately following this header. pub const NXT_HDR: usize = 0; diff --git a/src/wire/ipv6hopbyhop.rs b/src/wire/ipv6hopbyhop.rs index 3eb115f..6327cea 100644 --- a/src/wire/ipv6hopbyhop.rs +++ b/src/wire/ipv6hopbyhop.rs @@ -1,7 +1,7 @@ use core::fmt; -use {Error, Result}; +use crate::{Error, Result}; -use super::ipv6option::Ipv6OptionsIterator; +use crate::wire::ipv6option::Ipv6OptionsIterator; pub use super::IpProtocol as Protocol; /// A read/write wrapper around an IPv6 Hop-by-Hop Options Header. @@ -27,7 +27,7 @@ pub struct Header> { mod field { #![allow(non_snake_case)] - use wire::field::*; + use crate::wire::field::*; // Minimum size of the header. pub const MIN_HEADER_SIZE: usize = 8; diff --git a/src/wire/ipv6option.rs b/src/wire/ipv6option.rs index 1cf4dee..d96969c 100644 --- a/src/wire/ipv6option.rs +++ b/src/wire/ipv6option.rs @@ -1,5 +1,5 @@ use core::fmt; -use {Error, Result}; +use crate::{Error, Result}; enum_with_unknown! { /// IPv6 Extension Header Option Type @@ -73,7 +73,7 @@ pub struct Ipv6Option> { mod field { #![allow(non_snake_case)] - use wire::field::*; + use crate::wire::field::*; // 8-bit identifier of the type of option. pub const TYPE: usize = 0; diff --git a/src/wire/ipv6routing.rs b/src/wire/ipv6routing.rs index 7956b47..d66793e 100644 --- a/src/wire/ipv6routing.rs +++ b/src/wire/ipv6routing.rs @@ -1,8 +1,8 @@ use core::fmt; -use {Error, Result}; +use crate::{Error, Result}; -use super::IpProtocol as Protocol; -use super::Ipv6Address as Address; +use crate::wire::IpProtocol as Protocol; +use crate::wire::Ipv6Address as Address; enum_with_unknown! { /// IPv6 Extension Routing Header Routing Type @@ -72,7 +72,7 @@ pub struct Header> { mod field { #![allow(non_snake_case)] - use wire::field::*; + use crate::wire::field::*; // Minimum size of the header. pub const MIN_HEADER_SIZE: usize = 4; diff --git a/src/wire/mld.rs b/src/wire/mld.rs index 9268293..1abbba9 100644 --- a/src/wire/mld.rs +++ b/src/wire/mld.rs @@ -6,9 +6,9 @@ use byteorder::{ByteOrder, NetworkEndian}; -use {Error, Result}; -use super::icmpv6::{field, Message, Packet}; -use super::Ipv6Address; +use crate::{Error, Result}; +use crate::wire::icmpv6::{field, Message, Packet}; +use crate::wire::Ipv6Address; enum_with_unknown! { /// MLDv2 Multicast Listener Report Record Type. See [RFC 3810 § 5.2.12] for @@ -383,9 +383,9 @@ impl<'a> Repr<'a> { #[cfg(test)] mod test { - use phy::ChecksumCapabilities; - use wire::Icmpv6Repr; - use wire::icmpv6::Message; + use crate::phy::ChecksumCapabilities; + use crate::wire::Icmpv6Repr; + use crate::wire::icmpv6::Message; use super::*; static QUERY_PACKET_BYTES: [u8; 44] = diff --git a/src/wire/ndisc.rs b/src/wire/ndisc.rs index afaf0ce..20544b2 100644 --- a/src/wire/ndisc.rs +++ b/src/wire/ndisc.rs @@ -1,12 +1,13 @@ use byteorder::{ByteOrder, NetworkEndian}; +use bitflags::bitflags; -use {Error, Result}; -use super::icmpv6::{field, Message, Packet}; -use wire::{EthernetAddress, Ipv6Repr, Ipv6Packet}; -use wire::{NdiscOption, NdiscOptionRepr, NdiscOptionType}; -use wire::{NdiscPrefixInformation, NdiscRedirectedHeader}; -use time::Duration; -use super::Ipv6Address; +use crate::{Error, Result}; +use crate::wire::icmpv6::{field, Message, Packet}; +use crate::wire::{EthernetAddress, Ipv6Repr, Ipv6Packet}; +use crate::wire::{NdiscOption, NdiscOptionRepr, NdiscOptionType}; +use crate::wire::{NdiscPrefixInformation, NdiscRedirectedHeader}; +use crate::time::Duration; +use crate::wire::Ipv6Address; bitflags! { pub struct RouterFlags: u8 { @@ -462,10 +463,10 @@ impl<'a> Repr<'a> { #[cfg(test)] mod test { - use phy::ChecksumCapabilities; + use crate::phy::ChecksumCapabilities; use super::*; - use wire::Icmpv6Repr; - use wire::ip::test::{MOCK_IP_ADDR_1, MOCK_IP_ADDR_2}; + use crate::wire::Icmpv6Repr; + use crate::wire::ip::test::{MOCK_IP_ADDR_1, MOCK_IP_ADDR_2}; static ROUTER_ADVERT_BYTES: [u8; 24] = [0x86, 0x00, 0xa9, 0xde, diff --git a/src/wire/ndiscoption.rs b/src/wire/ndiscoption.rs index 0175f44..88b22f0 100644 --- a/src/wire/ndiscoption.rs +++ b/src/wire/ndiscoption.rs @@ -1,9 +1,10 @@ use core::fmt; use byteorder::{NetworkEndian, ByteOrder}; +use bitflags::bitflags; -use {Error, Result}; -use time::Duration; -use wire::{EthernetAddress, Ipv6Address, Ipv6Packet, Ipv6Repr}; +use crate::{Error, Result}; +use crate::time::Duration; +use crate::wire::{EthernetAddress, Ipv6Address, Ipv6Packet, Ipv6Repr}; enum_with_unknown! { /// NDISC Option Type @@ -61,7 +62,7 @@ pub struct NdiscOption> { mod field { #![allow(non_snake_case)] - use wire::field::*; + use crate::wire::field::*; // 8-bit identifier of the type of option. pub const TYPE: usize = 0; @@ -587,7 +588,7 @@ impl<'a> fmt::Display for Repr<'a> { } } -use super::pretty_print::{PrettyPrint, PrettyIndent}; +use crate::wire::pretty_print::{PrettyPrint, PrettyIndent}; impl> PrettyPrint for NdiscOption { fn pretty_print(buffer: &dyn AsRef<[u8]>, f: &mut fmt::Formatter, @@ -608,9 +609,9 @@ impl> PrettyPrint for NdiscOption { #[cfg(test)] mod test { - use Error; - use time::Duration; - use wire::{EthernetAddress, Ipv6Address}; + use crate::Error; + use crate::time::Duration; + use crate::wire::{EthernetAddress, Ipv6Address}; use super::{NdiscOption, Type, PrefixInfoFlags, PrefixInformation, Repr}; static PREFIX_OPT_BYTES: [u8; 32] = [ diff --git a/src/wire/tcp.rs b/src/wire/tcp.rs index 3f51ef9..205e4f0 100644 --- a/src/wire/tcp.rs +++ b/src/wire/tcp.rs @@ -1,10 +1,10 @@ use core::{i32, ops, cmp, fmt}; use byteorder::{ByteOrder, NetworkEndian}; -use {Error, Result}; -use phy::ChecksumCapabilities; -use super::{IpProtocol, IpAddress}; -use super::ip::checksum; +use crate::{Error, Result}; +use crate::phy::ChecksumCapabilities; +use crate::wire::{IpProtocol, IpAddress}; +use crate::wire::ip::checksum; /// A TCP sequence number. /// @@ -74,7 +74,7 @@ pub struct Packet> { mod field { #![allow(non_snake_case)] - use wire::field::*; + use crate::wire::field::*; pub const SRC_PORT: Field = 0..2; pub const DST_PORT: Field = 2..4; @@ -1009,7 +1009,7 @@ impl<'a> fmt::Display for Repr<'a> { } } -use super::pretty_print::{PrettyPrint, PrettyIndent}; +use crate::wire::pretty_print::{PrettyPrint, PrettyIndent}; impl> PrettyPrint for Packet { fn pretty_print(buffer: &dyn AsRef<[u8]>, f: &mut fmt::Formatter, @@ -1024,7 +1024,7 @@ impl> PrettyPrint for Packet { #[cfg(test)] mod test { #[cfg(feature = "proto-ipv4")] - use wire::Ipv4Address; + use crate::wire::Ipv4Address; use super::*; #[cfg(feature = "proto-ipv4")] diff --git a/src/wire/udp.rs b/src/wire/udp.rs index b309f63..44bb578 100644 --- a/src/wire/udp.rs +++ b/src/wire/udp.rs @@ -1,10 +1,10 @@ use core::fmt; use byteorder::{ByteOrder, NetworkEndian}; -use {Error, Result}; -use phy::ChecksumCapabilities; -use super::{IpProtocol, IpAddress}; -use super::ip::checksum; +use crate::{Error, Result}; +use crate::phy::ChecksumCapabilities; +use crate::wire::{IpProtocol, IpAddress}; +use crate::wire::ip::checksum; /// A read/write wrapper around an User Datagram Protocol packet buffer. #[derive(Debug, PartialEq, Clone)] @@ -15,7 +15,7 @@ pub struct Packet> { mod field { #![allow(non_snake_case)] - use wire::field::*; + use crate::wire::field::*; pub const SRC_PORT: Field = 0..2; pub const DST_PORT: Field = 2..4; @@ -272,7 +272,7 @@ impl<'a> fmt::Display for Repr<'a> { } } -use super::pretty_print::{PrettyPrint, PrettyIndent}; +use crate::wire::pretty_print::{PrettyPrint, PrettyIndent}; impl> PrettyPrint for Packet { fn pretty_print(buffer: &dyn AsRef<[u8]>, f: &mut fmt::Formatter, @@ -287,7 +287,7 @@ impl> PrettyPrint for Packet { #[cfg(test)] mod test { #[cfg(feature = "proto-ipv4")] - use wire::Ipv4Address; + use crate::wire::Ipv4Address; use super::*; #[cfg(feature = "proto-ipv4")] diff --git a/utils/packet2pcap.rs b/utils/packet2pcap.rs index b821186..89b9906 100644 --- a/utils/packet2pcap.rs +++ b/utils/packet2pcap.rs @@ -1,6 +1,3 @@ -extern crate smoltcp; -extern crate getopts; - use std::cell::RefCell; use std::io::{self, Read, Write}; use std::path::Path;