INNER CODE UNIT · Rust

parse_port

domcyrus/rustnet · crates/rustnet-host/src/lib.rs:478

    fn parse_port(port_str: &str) -> Option<u16> {
        if port_str == "*" {
            return Some(0);
        }
        port_str.parse::<u16>().ok()
    }

    if let Some(port_str) = addr_str.strip_prefix("*:") {
        let port = parse_port(port_str)?;
        return Some(SocketAddr::new(IpAddr::V4(Ipv4Addr::UNSPECIFIED), port));
    }

    // Handle IPv6 with brackets: [::1]:8080. Std parsing also accepts scope
    // ids like [fe80::1%1]:22, which Ipv6Addr alone would reject.
    if addr_str.starts_with('[') {
        return addr_str.parse().ok();
    }

View source record →

📰 Research Paper
Loading…
⏳ Fetching content…