Enum rustls::client::ServerName
source · #[non_exhaustive]pub enum ServerName {
DnsName(DnsName),
IpAddress(IpAddr),
}
Expand description
Encodes ways a client can know the expected name of the server.
This currently covers knowing the DNS name of the server, but
will be extended in the future to supporting privacy-preserving names
for the server (“ECH”). For this reason this enum is non_exhaustive
.
§Making one
If you have a DNS name as a &str
, this type implements TryFrom<&str>
,
so you can do:
ServerName::try_from("example.com").expect("invalid DNS name");
// or, alternatively...
let x = "example.com".try_into().expect("invalid DNS name");
Variants (Non-exhaustive)§
This enum is marked as non-exhaustive
Non-exhaustive enums could have additional variants added in future. Therefore, when matching against variants of non-exhaustive enums, an extra wildcard arm must be added to account for any future variants.
DnsName(DnsName)
The server is identified by a DNS name. The name is sent in the TLS Server Name Indication (SNI) extension.
IpAddress(IpAddr)
The server is identified by an IP address. SNI is not done.
Implementations§
source§impl ServerName
impl ServerName
sourcepub(crate) fn for_sni(&self) -> Option<DnsNameRef<'_>>
pub(crate) fn for_sni(&self) -> Option<DnsNameRef<'_>>
Return the name that should go in the SNI extension.
If None
is returned, the SNI extension is not included
in the handshake.
Trait Implementations§
source§impl Clone for ServerName
impl Clone for ServerName
source§fn clone(&self) -> ServerName
fn clone(&self) -> ServerName
Returns a copy of the value. Read more
1.0.0 · source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source
. Read moresource§impl Debug for ServerName
impl Debug for ServerName
source§impl Hash for ServerName
impl Hash for ServerName
source§impl PartialEq for ServerName
impl PartialEq for ServerName
source§impl TryFrom<&str> for ServerName
impl TryFrom<&str> for ServerName
Attempt to make a ServerName from a string by parsing it as a DNS name.
impl Eq for ServerName
impl StructuralPartialEq for ServerName
Auto Trait Implementations§
impl Freeze for ServerName
impl RefUnwindSafe for ServerName
impl Send for ServerName
impl Sync for ServerName
impl Unpin for ServerName
impl UnwindSafe for ServerName
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§unsafe fn clone_to_uninit(&self, dst: *mut T)
unsafe fn clone_to_uninit(&self, dst: *mut T)
🔬This is a nightly-only experimental API. (
clone_to_uninit
)