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()); }
/// <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()); }
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)); }
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); } }
public async Task DisconnectAsync(MultiAddress address, CancellationToken cancel = default) => await Client.DoCommandAsync("swarm/disconnect", cancel, address.ToString());
public async Task ConnectAsync(MultiAddress address, CancellationToken cancel = default(CancellationToken)) { await ipfs.DoCommandAsync("swarm/connect", cancel, address.ToString()); }
/// <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); } }