/// <summary> /// Creates a channel/client pair with the appropriate options and interceptors. /// </summary> /// <returns>A tuple of the channel and client</returns> private async Task <GrpcClient> CreateClientAsync(DnsEndPoint remoteEndpoint) { var certificate = await RetrieveServerCertificateAsync(remoteEndpoint); if (certificate == null) { return(null); } Logger.LogDebug($"Upgrading connection to TLS: {certificate}."); ChannelCredentials credentials = new SslCredentials(TlsHelper.ObjectToPem(certificate), _clientKeyCertificatePair); var channel = new Channel(remoteEndpoint.ToString(), credentials, new List <ChannelOption> { new ChannelOption(ChannelOptions.MaxSendMessageLength, GrpcConstants.DefaultMaxSendMessageLength), new ChannelOption(ChannelOptions.MaxReceiveMessageLength, GrpcConstants.DefaultMaxReceiveMessageLength), new ChannelOption(ChannelOptions.SslTargetNameOverride, GrpcConstants.DefaultTlsCommonName) }); var nodePubkey = AsyncHelper.RunSync(() => _accountService.GetPublicKeyAsync()).ToHex(); var interceptedChannel = channel.Intercept(metadata => { metadata.Add(GrpcConstants.PubkeyMetadataKey, nodePubkey); return(metadata); }).Intercept(new RetryInterceptor()); var client = new PeerService.PeerServiceClient(interceptedChannel); return(new GrpcClient(channel, client, certificate)); }
public void Test3() { var ep = new DnsEndPoint("digicert.tt.omtrdc.net", 443); Assert.AreEqual(443, ep.Port); Assert.AreEqual("digicert.tt.omtrdc.net", ep.Host); Assert.AreEqual("omtrdc.net", ep.Domain); Assert.AreEqual("*.tt.omtrdc.net", ep.WildcardDomain); Assert.AreEqual("digicert.tt.omtrdc.net:443", ep.ToString()); }
public void Test2() { var ep = new DnsEndPoint("google.com", 443); Assert.AreEqual(443, ep.Port); Assert.AreEqual("google.com", ep.Host); Assert.AreEqual("google.com", ep.Domain); Assert.AreEqual("*.google.com", ep.WildcardDomain); Assert.AreEqual("google.com:443", ep.ToString()); }
public void Test1() { var ep = new DnsEndPoint("www.google.com", 80); Assert.AreEqual(80, ep.Port); Assert.AreEqual("www.google.com", ep.Host); Assert.AreEqual("google.com", ep.Domain); Assert.AreEqual("*.google.com", ep.WildcardDomain); Assert.AreEqual("www.google.com:80", ep.ToString()); }
public static String ToSimpleUdpEpStr(this DnsEndPoint ep) { string epStr = ep.ToString(); if (epStr.Contains('/')) { epStr = epStr.Split('/').LastOrDefault(); } return(epStr); }
public void InterNetwork() { DnsEndPoint dep = new DnsEndPoint("localhost", 0, AddressFamily.InterNetwork); Assert.AreEqual("localhost", dep.Host, "Host"); Assert.AreEqual(AddressFamily.InterNetwork, dep.AddressFamily, "AddressFamily"); Assert.AreEqual("localhost", dep.Host, "Host"); Assert.AreEqual(0, dep.Port, "Port"); Assert.IsFalse(dep.Equals(null), "Equals(null)"); Assert.IsTrue(dep.Equals(dep), "Equals(self)"); Assert.AreEqual("InterNetwork/localhost:0", dep.ToString()); }
public void Unspecified() { DnsEndPoint dep = new DnsEndPoint("localhost", 0, AddressFamily.Unspecified); Assert.AreEqual("localhost", dep.Host, "Host"); Assert.AreEqual(AddressFamily.Unspecified, dep.AddressFamily, "AddressFamily"); Assert.AreEqual("localhost", dep.Host, "Host"); Assert.AreEqual(0, dep.Port, "Port"); Assert.IsFalse(dep.Equals(null), "Equals(null)"); Assert.IsTrue(dep.Equals(dep), "Equals(self)"); Assert.AreEqual("Unspecified/localhost:0", dep.ToString()); }
/// <summary> /// Creates a channel/client pair with the appropriate options and interceptors. /// </summary> /// <returns>A tuple of the channel and client</returns> private GrpcClient CreateClient(DnsEndPoint remoteEndpoint) { var channel = new Channel(remoteEndpoint.ToString(), ChannelCredentials.Insecure, new List <ChannelOption> { new ChannelOption(ChannelOptions.MaxSendMessageLength, GrpcConstants.DefaultMaxSendMessageLength), new ChannelOption(ChannelOptions.MaxReceiveMessageLength, GrpcConstants.DefaultMaxReceiveMessageLength) }); var nodePubkey = AsyncHelper.RunSync(() => _accountService.GetPublicKeyAsync()).ToHex(); var interceptedChannel = channel.Intercept(metadata => { metadata.Add(GrpcConstants.PubkeyMetadataKey, nodePubkey); return(metadata); }).Intercept(new RetryInterceptor()); var client = new PeerService.PeerServiceClient(interceptedChannel); return(new GrpcClient(channel, client)); }
public void Constructor_StringInt() { Assert.Throws <ArgumentNullException> (delegate { new DnsEndPoint(null, 0); }, "ctor(null,0)"); Assert.Throws <ArgumentException> (delegate { new DnsEndPoint(String.Empty, 0); }, "ctor(Empty,0)"); Assert.Throws <ArgumentOutOfRangeException> (delegate { new DnsEndPoint("localhost", -1); }, "ctor(localhost,-1)"); Assert.Throws <ArgumentOutOfRangeException> (delegate { new DnsEndPoint("localhost", (0xffff + 1)); }, "ctor(localhost,(0xffff + 1))"); DnsEndPoint dep = new DnsEndPoint("localhost", 65535); Assert.AreEqual(AddressFamily.Unspecified, dep.AddressFamily, "AddressFamily"); Assert.AreEqual("localhost", dep.Host, "Host"); Assert.AreEqual(65535, dep.Port, "Port"); Assert.IsFalse(dep.Equals(null), "Equals(null)"); Assert.IsTrue(dep.Equals(dep), "Equals(self)"); Assert.AreEqual("Unspecified/localhost:65535", dep.ToString()); }
//----------------[ Properties methods ]-----------------------// public string Endpoint() { return(dnsEndpoint.ToString()); }
public Task <bool> SchedulePeerReconnection(DnsEndPoint endpoint) { return(Task.FromResult(_reconnectionService.SchedulePeerForReconnection(endpoint.ToString()))); }