diff --git a/examples/dig.rs b/examples/dig.rs index ae05edd1..cbd46863 100644 --- a/examples/dig.rs +++ b/examples/dig.rs @@ -9,10 +9,10 @@ use std::io; use std::result; use std::str::FromStr; use domain::bits::{ComposeError, FromStrError, ParseError}; -use domain::bits::{Class, RRType}; use domain::bits::message::{MessageBuf, RecordIter}; use domain::bits::name::{DName, DNameBuf, DNameSlice}; use domain::bits::rdata::GenericRecordData; +use domain::iana::{Class, RRType}; use domain::resolv::{ResolvConf, Resolver, Query}; diff --git a/src/bits/header.rs b/src/bits/header.rs index 7439521b..b03b7c1d 100644 --- a/src/bits/header.rs +++ b/src/bits/header.rs @@ -13,8 +13,8 @@ //! use std::mem; +use iana::{Opcode, Rcode}; use super::error::{ComposeError, ComposeResult}; -use super::iana::{Opcode, Rcode}; //------------ Header -------------------------------------------------- @@ -541,7 +541,7 @@ impl FullHeader { #[cfg(test)] mod test { use super::*; - use super::super::iana::{Opcode, Rcode}; + use iana::{Opcode, Rcode}; macro_rules! test_field { ($get:ident, $set:ident, $default:expr, $($value:expr),*) => { diff --git a/src/bits/message.rs b/src/bits/message.rs index 973990d9..c60243c2 100644 --- a/src/bits/message.rs +++ b/src/bits/message.rs @@ -11,11 +11,11 @@ use std::collections::HashMap; use std::marker::PhantomData; use std::mem; use std::ops::{Deref, DerefMut}; +use iana::{Class, Rcode, RRType}; use rdata::CName; use super::compose::{ComposeBytes, ComposeBuf}; use super::error::{ComposeError, ComposeResult, ParseError, ParseResult}; use super::header::{Header, HeaderCounts, FullHeader}; -use super::iana::{Class, Rcode, RRType}; use super::name::{AsDName, DNameSlice}; use super::parse::{ContextParser, ParseBytes}; use super::question::{Question, QuestionTarget}; @@ -1118,9 +1118,9 @@ impl MessageTarget { mod test { use std::str::FromStr; use bits::name::DName; - use bits::iana::{Class, RRType}; use bits::question::Question; use bits::record::Record; + use iana::{Class, RRType}; use rdata::{A, CName}; use super::*; diff --git a/src/bits/mod.rs b/src/bits/mod.rs index a239cba6..2fd97a0b 100644 --- a/src/bits/mod.rs +++ b/src/bits/mod.rs @@ -38,7 +38,6 @@ pub use self::charstr::{CharStr, CharStrError}; pub use self::compose::{ComposeBytes, ComposeBuf}; pub use self::error::{ComposeError, ComposeResult, ParseError, ParseResult, FromStrError, FromStrResult}; -pub use self::iana::{Class, Opcode, Rcode, RRType}; pub use self::message::{Message, MessageBuf, MessageBuilder}; pub use self::name::{AsDName, DName, DNameSlice, DNameBuf, PackedDName}; pub use self::nest::Nest; @@ -52,7 +51,6 @@ pub mod charstr; pub mod compose; pub mod error; pub mod header; -pub mod iana; pub mod message; pub mod name; pub mod nest; diff --git a/src/bits/question.rs b/src/bits/question.rs index acaa8353..cddfb266 100644 --- a/src/bits/question.rs +++ b/src/bits/question.rs @@ -4,9 +4,9 @@ //! the question section of a DNS message. use std::fmt; +use iana::{Class, RRType}; use super::compose::ComposeBytes; use super::error::{ComposeResult, ParseResult}; -use super::iana::{Class, RRType}; use super::name::{AsDName, DName}; use super::parse::ParseBytes; diff --git a/src/bits/rdata.rs b/src/bits/rdata.rs index 41bb48aa..cb6f6579 100644 --- a/src/bits/rdata.rs +++ b/src/bits/rdata.rs @@ -13,9 +13,9 @@ //! type that can deal with all record types. use std::fmt; +use iana::RRType; use super::compose::ComposeBytes; use super::error::{ComposeResult, ParseResult}; -use super::iana::RRType; use super::nest::Nest; use super::parse::ParseBytes; diff --git a/src/bits/record.rs b/src/bits/record.rs index d574eb21..fbe39dbe 100644 --- a/src/bits/record.rs +++ b/src/bits/record.rs @@ -3,9 +3,9 @@ //! This module defines the type `Record` that represents a resource record. use std::fmt; +use iana::{Class, RRType}; use super::compose::ComposeBytes; use super::error::{ComposeError, ComposeResult, ParseResult}; -use super::iana::{Class, RRType}; use super::name::{AsDName, DName}; use super::parse::ParseBytes; use super::rdata::RecordData; diff --git a/src/bits/iana/class.rs b/src/iana/class.rs similarity index 99% rename from src/bits/iana/class.rs rename to src/iana/class.rs index 85798b1b..d957166e 100644 --- a/src/bits/iana/class.rs +++ b/src/iana/class.rs @@ -5,7 +5,7 @@ use std::convert; use std::fmt; use std::hash; use std::str; -use super::super::error::{FromStrError, FromStrResult}; +use bits::error::{FromStrError, FromStrResult}; //------------ Class -------------------------------------------------------- diff --git a/src/bits/iana/mod.rs b/src/iana/mod.rs similarity index 100% rename from src/bits/iana/mod.rs rename to src/iana/mod.rs diff --git a/src/bits/iana/opcode.rs b/src/iana/opcode.rs similarity index 100% rename from src/bits/iana/opcode.rs rename to src/iana/opcode.rs diff --git a/src/bits/iana/opt.rs b/src/iana/opt.rs similarity index 100% rename from src/bits/iana/opt.rs rename to src/iana/opt.rs diff --git a/src/bits/iana/rcode.rs b/src/iana/rcode.rs similarity index 100% rename from src/bits/iana/rcode.rs rename to src/iana/rcode.rs diff --git a/src/bits/iana/rrtype.rs b/src/iana/rrtype.rs similarity index 99% rename from src/bits/iana/rrtype.rs rename to src/iana/rrtype.rs index 83cec794..3b853d26 100644 --- a/src/bits/iana/rrtype.rs +++ b/src/iana/rrtype.rs @@ -6,7 +6,7 @@ use std::convert; use std::fmt; use std::hash; use std::str; -use super::super::error::{FromStrError, FromStrResult}; +use bits::error::{FromStrError, FromStrResult}; /// Resource Record Types. diff --git a/src/lib.rs b/src/lib.rs index daaa1cf8..f38124e6 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -13,12 +13,8 @@ extern crate rand; extern crate rotor; extern crate vecio; -/* -#[macro_use] -mod macros; -*/ - pub mod bits; +pub mod iana; pub mod rdata; pub mod resolv; diff --git a/src/rdata/rfc1035.rs b/src/rdata/rfc1035.rs index c2f1cf32..72a3be05 100644 --- a/src/rdata/rfc1035.rs +++ b/src/rdata/rfc1035.rs @@ -8,7 +8,7 @@ use std::net::Ipv4Addr; use bits::compose::ComposeBytes; use bits::charstr::CharStr; use bits::error::{ComposeResult, ParseResult}; -use bits::iana::{Class, RRType}; +use iana::{Class, RRType}; use bits::name::{AsDName, DName}; use bits::octets::Octets; use bits::parse::ParseBytes; diff --git a/src/rdata/rfc3596.rs b/src/rdata/rfc3596.rs index 6a7a7a02..6ca9d429 100644 --- a/src/rdata/rfc3596.rs +++ b/src/rdata/rfc3596.rs @@ -6,7 +6,7 @@ use std::fmt; use std::net::Ipv6Addr; use bits::compose::ComposeBytes; use bits::error::{ComposeResult, ParseResult}; -use bits::iana::RRType; +use iana::RRType; use bits::parse::ParseBytes; use bits::rdata::RecordData; diff --git a/src/rdata/rfc6891.rs b/src/rdata/rfc6891.rs new file mode 100644 index 00000000..0a47fd83 --- /dev/null +++ b/src/rdata/rfc6891.rs @@ -0,0 +1,14 @@ +//! Record data from RFC 6891. +//! +//! This RFC contains the currently valid definition of the OPT resouce +//! record type originally defined in RFC 2671. +//! +//! OPT records actually requisition some of the fields of a DNS record for +//! their own purpose. Because of this, this module does not only define +//! the `Opt` type for the OPT resource data but also `OptRecord` for an +//! entire OPT record. + + +//------------ Opt ---------------------------------------------------------- + + diff --git a/src/resolv/tasks/addr.rs b/src/resolv/tasks/addr.rs index a1fbb3de..53c23570 100644 --- a/src/resolv/tasks/addr.rs +++ b/src/resolv/tasks/addr.rs @@ -2,8 +2,9 @@ use std::net::{IpAddr, Ipv4Addr, Ipv6Addr}; use std::str::FromStr; -use bits::{AsDName, Class, DName, DNameBuf, MessageBuf, Question, RRType}; +use bits::{AsDName, DName, DNameBuf, MessageBuf, Question}; use bits::name::Label; +use iana::{Class, RRType}; use rdata::Ptr; use resolv::Error; use resolv::tasks::traits::{Progress, Task, TaskRunner}; diff --git a/src/resolv/tasks/host.rs b/src/resolv/tasks/host.rs index deeed1bf..24172276 100644 --- a/src/resolv/tasks/host.rs +++ b/src/resolv/tasks/host.rs @@ -2,8 +2,9 @@ use std::net::IpAddr; use std::slice; -use bits::{AsDName, Class, DName, DNameBuf, DNameSlice, MessageBuf, ParseResult, - Question, RecordData, RRType}; +use bits::{AsDName, DName, DNameBuf, DNameSlice, MessageBuf, ParseResult, + Question, RecordData}; +use iana::{Class, RRType}; use rdata::{A, AAAA}; use resolv::conf::ResolvConf; use resolv::tasks::traits::{Progress, Task, TaskRunner}; diff --git a/src/resolv/tasks/query.rs b/src/resolv/tasks/query.rs index ae49302b..b8bc22b3 100644 --- a/src/resolv/tasks/query.rs +++ b/src/resolv/tasks/query.rs @@ -1,6 +1,7 @@ //! A task for a simple, raw DNS query. -use bits::{Class, DName, MessageBuf, Question, RRType}; +use bits::{DName, MessageBuf, Question}; +use iana::{Class, RRType}; use resolv::error::Error; use resolv::tasks::traits::{Progress, Task, TaskRunner}; diff --git a/src/resolv/tasks/traits.rs b/src/resolv/tasks/traits.rs index 2ea18b15..4c50fcbd 100644 --- a/src/resolv/tasks/traits.rs +++ b/src/resolv/tasks/traits.rs @@ -34,7 +34,8 @@ //! let go of references as soon as the task has been started, avoiding //! having to clone the domain name. -use bits::{Class, DName, MessageBuf, Question, RRType}; +use bits::{DName, MessageBuf, Question}; +use iana::{Class, RRType}; use resolv::error::Error; //------------ Progress -----------------------------------------------------