public void Ipv6ScopeId_Ignored()
        {
            var ma1 = new MultiAddress("/ip6/fe80::7573:b0a8:46b0:0bad%17/tcp/4009");
            var ma2 = new MultiAddress("/ip6/fe80::7573:b0a8:46b0:0bad/tcp/4009");

            Assert.Equal(ma2, ma1);
            Assert.Equal(ma2.ToString(), ma1.ToString());
        }
Пример #2
0
        /// <inheritdoc />
        public async Task <IEnumerable <PingResult> > PingAsync(MultiAddress address, int count = 10, CancellationToken cancel = default(CancellationToken))
        {
            var stream = await DownloadAsync("ping", cancel,
                                             address.ToString(),
                                             $"count={count.ToString(CultureInfo.InvariantCulture)}");

            return(PingResultFromStream(stream));
        }
        public void FromIPEndpoint()
        {
            var ma = new MultiAddress(new IPEndPoint(IPAddress.Loopback, 4001));

            Assert.Equal("/ip4/127.0.0.1/tcp/4001", ma.ToString());

            ma = new MultiAddress(new IPEndPoint(IPAddress.IPv6Loopback, 4002));
            Assert.Equal("/ip6/::1/tcp/4002", ma.ToString());
        }
        public void FromIPAddress()
        {
            var ma = new MultiAddress(IPAddress.Loopback);

            Assert.Equal("/ip4/127.0.0.1", ma.ToString());

            ma = new MultiAddress(IPAddress.IPv6Loopback);
            Assert.Equal("/ip6/::1", ma.ToString());
        }
Пример #5
0
 public async Task<MultiAddress> RemoveAddressFilterAsync(MultiAddress address, bool persist = false, CancellationToken cancel = default(CancellationToken))
 {
     // go-ipfs always does persist, https://github.com/ipfs/go-ipfs/issues/4605
     var json = await ipfs.DoCommandAsync("swarm/filters/rm", cancel, address.ToString());
     var addrs = (JArray)(JObject.Parse(json)["Strings"]);
     var a = addrs.FirstOrDefault();
     if (a == null)
         return null;
     return new MultiAddress((string)a);
 }
        public async Task <MultiAddress> RemoveAsync(MultiAddress address, CancellationToken cancel = default(CancellationToken))
        {
            var json = await Client.DoCommandAsync("bootstrap/rm", cancel, address.ToString());

            var addrs = (JArray)(JObject.Parse(json)["Peers"]);
            var a     = addrs.FirstOrDefault();

            if (a == null)
            {
                return(null);
            }
            return(new MultiAddress((string)a));
        }
Пример #7
0
        public void JsonSerialization()
        {
            var a    = new MultiAddress("/ip6/fe80::7573:b0a8:46b0:0bad/tcp/4009");
            var json = JsonConvert.SerializeObject(a);

            Assert.AreEqual($"\"{a}\"", json);
            var b = JsonConvert.DeserializeObject <MultiAddress>(json);

            Assert.AreEqual(a.ToString(), b.ToString());

            json = JsonConvert.SerializeObject(null);
            b    = JsonConvert.DeserializeObject <MultiAddress>(json);
            Assert.IsNull(b);
        }
        public void RoundTripping()
        {
            var addresses = new[]
            {
                somewhere,
                "/ip4/1.2.3.4/tcp/80/http",
                "/ip6/3ffe:1900:4545:3:200:f8ff:fe21:67cf/tcp/443/https",
                "/ip6/3ffe:1900:4545:3:200:f8ff:fe21:67cf/udp/8001",
                "/ip6/3ffe:1900:4545:3:200:f8ff:fe21:67cf/sctp/8001",
                "/ip6/3ffe:1900:4545:3:200:f8ff:fe21:67cf/dccp/8001",
                "/ip4/1.2.3.4/tcp/80/ws",
                "/libp2p-webrtc-star/ip4/127.0.0.1/tcp/9090/ws/ipfs/QmcgpsyWgH8Y8ajJz1Cu72KnS5uo2Aa2LpzU7kinSupNKC",
                "/ip4/127.0.0.1/tcp/1234/ipfs/QmcgpsyWgH8Y8ajJz1Cu72KnS5uo2Aa2LpzU7kinSupNKC",
                "/ip4/1.2.3.4/tcp/80/udt",
                "/ip4/1.2.3.4/tcp/80/utp",
                "/onion/aaimaq4ygg2iegci:80",
                "/onion/timaq4ygg2iegci7:80/http",
                "/p2p-circuit/ipfs/QmcgpsyWgH8Y8ajJz1Cu72KnS5uo2Aa2LpzU7kinSupNKC",
                "/dns/ipfs.io",
                "/dns4/ipfs.io",
                "/dns6/ipfs.io",
                "/dns4/wss0.bootstrap.libp2p.io/tcp/443/wss/ipfs/QmZMxNdpMkewiVZLMRxaNxUeZpDUb34pWjZ1kZvsd16Zic",
                "/ip4/127.0.0.0/ipcidr/16",
                "/p2p/QmNnooDu7bfjPFoTZYxMNLWUQJyrVwtbZg5gBMjTezGAJN",
                "/ip4/127.0.0.1/udp/4023/quic"
            };

            foreach (var a in addresses)
            {
                var ma0 = new MultiAddress(a);

                var ms = new MemoryStream();
                ma0.Write(ms);
                ms.Position = 0;
                var ma1 = new MultiAddress(ms);
                Assert.Equal(ma0, ma1);

                var ma2 = new MultiAddress(ma0.ToString());
                Assert.Equal(ma0, ma2);

                var ma3 = new MultiAddress(ma0.ToArray());
                Assert.Equal(ma0, ma3);
            }
        }
Пример #9
0
 public async Task DisconnectAsync(MultiAddress address, CancellationToken cancel = default)
 => await Client.DoCommandAsync("swarm/disconnect", cancel, address.ToString());
Пример #10
0
 public async Task ConnectAsync(MultiAddress address, CancellationToken cancel = default(CancellationToken))
 {
     await ipfs.DoCommandAsync("swarm/connect", cancel, address.ToString());
 }
Пример #11
0
 /// <summary>
 ///   Connect to a peer.
 /// </summary>
 /// <param name="address">
 ///   An ipfs <see cref="MultiAddress"/>, such as
 ///  <c>/ip4/104.131.131.82/tcp/4001/ipfs/QmaCpDMGvV2BGHeYERUEnRQAwe3N8SzbUtfsmvsqQLuvuJ</c>.
 /// </param>
 public async Task ConnectAsync(MultiAddress address)
 {
     await ipfs.DoCommandAsync("swarm/connect", address.ToString());
 }
        public void RoundTripping()
        {
            var addresses = new[]
            {
                somewhere,
                "/ip4/1.2.3.4/tcp/80/http",
                "/ip6/3ffe:1900:4545:3:200:f8ff:fe21:67cf/tcp/443/https",
                "/ip6/3ffe:1900:4545:3:200:f8ff:fe21:67cf/udp/8001",
                "/ip6/3ffe:1900:4545:3:200:f8ff:fe21:67cf/sctp/8001",
                "/ip6/3ffe:1900:4545:3:200:f8ff:fe21:67cf/dccp/8001",
                "/ip4/1.2.3.4/tcp/80/ws",
                "/libp2p-webrtc-star/ip4/127.0.0.1/tcp/9090/ws/ipfs/QmcgpsyWgH8Y8ajJz1Cu72KnS5uo2Aa2LpzU7kinSupNKC",
                "/ip4/127.0.0.1/ipfs/QmcgpsyWgH8Y8ajJz1Cu72KnS5uo2Aa2LpzU7kinSupNKC/tcp/1234",
                "/ip4/1.2.3.4/tcp/80/udt",
                "/ip4/1.2.3.4/tcp/80/utp",
                "/onion/aaimaq4ygg2iegci:80",
                "/onion/timaq4ygg2iegci7:80/http",
            };
            foreach (var a in addresses)
            {
                var ma0 = new MultiAddress(a);

                var ms = new MemoryStream();
                ma0.Write(ms);
                ms.Position = 0;
                var ma1 = new MultiAddress(ms);
                Assert.AreEqual<MultiAddress>(ma0, ma1);

                var ma2 = new MultiAddress(ma0.ToString());
                Assert.AreEqual<MultiAddress>(ma0, ma2);

                var ma3 = new MultiAddress(ma0.ToArray());
                Assert.AreEqual<MultiAddress>(ma0, ma3);
            }
        }