decdn-node 0.1.0

The deCDN node daemon (decdn-node): runtime, request handlers, payment settlement, and the admin RPC server
use super::*;
use std::net::SocketAddr;

fn ip(s: &str) -> TransportAddr {
    TransportAddr::Ip(s.parse::<SocketAddr>().unwrap())
}

#[test]
fn keeps_relay_and_public_ips_drops_the_rest() {
    let relay = TransportAddr::Relay("https://relay.example./".parse().unwrap());
    let input = vec![
        relay.clone(),
        ip("8.8.8.8:4433"),
        ip("[2606:4700::1111]:4433"),
        ip("10.0.0.5:4433"),
        ip("192.168.1.2:4433"),
        ip("127.0.0.1:4433"),
        ip("100.64.0.1:4433"),
        ip("[fd00::1]:4433"),
        ip("[fe80::1]:4433"),
        ip("[::ffff:10.0.0.1]:4433"),
    ];

    let kept = node_publish_filter().apply(&input).into_owned();

    assert_eq!(
        kept,
        vec![relay, ip("8.8.8.8:4433"), ip("[2606:4700::1111]:4433")]
    );
}