pub struct HTTPS(pub SVCB);
Expand description
HTTPS is really a derivation of the original SVCB record data. See SVCB for more documentation
Tuple Fields§
§0: SVCB
Methods from Deref<Target = SVCB>§
sourcepub fn svc_priority(&self) -> u16
pub fn svc_priority(&self) -> u16
draft-ietf-dnsop-svcb-https-03 SVCB and HTTPS RRs for DNS, February 2021
2.4.1. SvcPriority
When SvcPriority is 0 the SVCB record is in AliasMode
(Section 2.4.2). Otherwise, it is in ServiceMode (Section 2.4.3).
Within a SVCB RRSet, all RRs SHOULD have the same Mode. If an RRSet
contains a record in AliasMode, the recipient MUST ignore any
ServiceMode records in the set.
RRSets are explicitly unordered collections, so the SvcPriority field
is used to impose an ordering on SVCB RRs. SVCB RRs with a smaller
SvcPriority value SHOULD be given preference over RRs with a larger
SvcPriority value.
When receiving an RRSet containing multiple SVCB records with the
same SvcPriority value, clients SHOULD apply a random shuffle within
a priority level to the records before using them, to ensure uniform
load-balancing.
sourcepub fn target_name(&self) -> &Name
pub fn target_name(&self) -> &Name
draft-ietf-dnsop-svcb-https-03 SVCB and HTTPS RRs for DNS, February 2021
2.5. Special handling of "." in TargetName
If TargetName has the value "." (represented in the wire format as a
zero-length label), special rules apply.
2.5.1. AliasMode
For AliasMode SVCB RRs, a TargetName of "." indicates that the
service is not available or does not exist. This indication is
advisory: clients encountering this indication MAY ignore it and
attempt to connect without the use of SVCB.
2.5.2. ServiceMode
For ServiceMode SVCB RRs, if TargetName has the value ".", then the
owner name of this record MUST be used as the effective TargetName.
For example, in the following example "svc2.example.net" is the
effective TargetName:
example.com. 7200 IN HTTPS 0 svc.example.net.
svc.example.net. 7200 IN CNAME svc2.example.net.
svc2.example.net. 7200 IN HTTPS 1 . port=8002 echconfig="..."
svc2.example.net. 300 IN A 192.0.2.2
svc2.example.net. 300 IN AAAA 2001:db8::2
sourcepub fn svc_params(&self) -> &[(SvcParamKey, SvcParamValue)]
pub fn svc_params(&self) -> &[(SvcParamKey, SvcParamValue)]
See SvcParamKey
for details on each parameter
Trait Implementations§
source§impl BinEncodable for HTTPS
impl BinEncodable for HTTPS
source§fn emit(&self, encoder: &mut BinEncoder<'_>) -> ProtoResult<()>
fn emit(&self, encoder: &mut BinEncoder<'_>) -> ProtoResult<()>
Write the type to the stream
source§impl PartialEq for HTTPS
impl PartialEq for HTTPS
source§impl RecordData for HTTPS
impl RecordData for HTTPS
source§fn try_from_rdata(data: RData) -> Result<Self, RData>
fn try_from_rdata(data: RData) -> Result<Self, RData>
Attempts to convert to this RecordData from the RData type, if it is not the correct type the original is returned
source§fn try_borrow(data: &RData) -> Option<&Self>
fn try_borrow(data: &RData) -> Option<&Self>
Attempts to borrow this RecordData from the RData type, if it is not the correct type the original is returned
source§fn record_type(&self) -> RecordType
fn record_type(&self) -> RecordType
Get the associated RecordType for the RecordData
source§fn into_rdata(self) -> RData
fn into_rdata(self) -> RData
Converts this RecordData into generic RecordData
impl Eq for HTTPS
impl StructuralPartialEq for HTTPS
Auto Trait Implementations§
impl Freeze for HTTPS
impl RefUnwindSafe for HTTPS
impl Send for HTTPS
impl Sync for HTTPS
impl Unpin for HTTPS
impl UnwindSafe for HTTPS
Blanket Implementations§
source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
source§default unsafe fn clone_to_uninit(&self, dst: *mut T)
default unsafe fn clone_to_uninit(&self, dst: *mut T)
🔬This is a nightly-only experimental API. (
clone_to_uninit
)