Struct tracing_rfc_5424::rfc3164::Rfc3164Hostname
source · pub struct Rfc3164Hostname(_);
Expand description
A Vec<u8>
instance with the additional constraint that its contents be ASCII above the value
32 (space)
Implementations§
source§impl Rfc3164Hostname
impl Rfc3164Hostname
sourcepub fn new(bytes: Vec<u8>) -> Result<Rfc3164Hostname>
pub fn new(bytes: Vec<u8>) -> Result<Rfc3164Hostname>
An RFC 3164-compliant hostname is made-up of ASCII above 32/space. The RFC states “The
Domain Name MUST NOT be included in the HOSTNAME field” which I interpret to mean that if
one is using a true hostname, bytes
should contain only letters, digits and -
. That
said, one may use an IP v4 address for this field, so this method doesn’t attempt to
enforce this condition & instead relies on the caller to do so (this is respected by
Rfc3164Hostname::try_default
).
sourcepub fn try_default() -> Result<Rfc3164Hostname>
pub fn try_default() -> Result<Rfc3164Hostname>
Attempt to figure-out an RFC 3164-compliant hostname.
Per the RFC:
The HOSTNAME field will contain only the hostname, the IPv4 address, or the IPv6 address of the originator of the message. The preferred value is the hostname. If the hostname is used, the HOSTNAME field MUST contain the hostname of the device as specified in STD 13. It should be noted that this MUST NOT contain any embedded spaces. The Domain Name MUST NOT be included in the HOSTNAME field. If the IPv4 address is used, it MUST be shown as the dotted decimal notation as used in STD 13. If an IPv6 address is used, any valid representation used in RFC 2373 MAY be used.