Skip to content

Commit 255a182

Browse files
authored
Make the AddressResolver more generic (#189)
Add AddressResolver(EndPoint endPoint) in this way can accept DNS and IP endpoints See also #188 Signed-off-by: Gabriele Santomaggio <[email protected]> Signed-off-by: Gabriele Santomaggio <[email protected]>
1 parent 20ba4b6 commit 255a182

File tree

3 files changed

+20
-4
lines changed

3 files changed

+20
-4
lines changed

RabbitMQ.Stream.Client/AddressResolver.cs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -8,13 +8,13 @@ namespace RabbitMQ.Stream.Client
88
{
99
public class AddressResolver
1010
{
11-
public AddressResolver(IPEndPoint endPoint)
11+
public AddressResolver(EndPoint endPoint)
1212
{
1313
EndPoint = endPoint;
1414
Enabled = true;
1515
}
1616

17-
public IPEndPoint EndPoint { get; set; }
17+
public EndPoint EndPoint { get; set; }
1818
public bool Enabled { get; set; }
1919
}
2020
}

RabbitMQ.Stream.Client/PublicAPI.Unshipped.txt

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -102,10 +102,10 @@ RabbitMQ.Stream.Client.AbstractEntity
102102
RabbitMQ.Stream.Client.AbstractEntity.AbstractEntity() -> void
103103
RabbitMQ.Stream.Client.AbstractEntity._client -> RabbitMQ.Stream.Client.Client
104104
RabbitMQ.Stream.Client.AddressResolver
105-
RabbitMQ.Stream.Client.AddressResolver.AddressResolver(System.Net.IPEndPoint endPoint) -> void
105+
RabbitMQ.Stream.Client.AddressResolver.AddressResolver(System.Net.EndPoint endPoint) -> void
106106
RabbitMQ.Stream.Client.AddressResolver.Enabled.get -> bool
107107
RabbitMQ.Stream.Client.AddressResolver.Enabled.set -> void
108-
RabbitMQ.Stream.Client.AddressResolver.EndPoint.get -> System.Net.IPEndPoint
108+
RabbitMQ.Stream.Client.AddressResolver.EndPoint.get -> System.Net.EndPoint
109109
RabbitMQ.Stream.Client.AddressResolver.EndPoint.set -> void
110110
RabbitMQ.Stream.Client.AMQP.AmqpParseException
111111
RabbitMQ.Stream.Client.AMQP.AmqpParseException.AmqpParseException(string s) -> void

Tests/UnitTests.cs

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -155,6 +155,22 @@ public void AddressResolverLoadBalancerSimulate()
155155
}
156156
}
157157

158+
[Fact]
159+
public void DnsAddressResolverLoadBalancerSimulate()
160+
{
161+
var addressResolver = new AddressResolver(new DnsEndPoint("MyDnsEntryPoint", 5552));
162+
var clientParameters = new ClientParameters() { AddressResolver = addressResolver, };
163+
var metaDataInfo = new StreamInfo("stream", ResponseCode.Ok, new Broker("node2", 5552),
164+
new List<Broker>() { new Broker("node1", 5552), new Broker("node3", 5552) });
165+
// run more than one time just to be sure to use all the IP with random
166+
for (var i = 0; i < 4; i++)
167+
{
168+
var client = RoutingHelper<LoadBalancerRouting>.LookupLeaderConnection(clientParameters, metaDataInfo);
169+
Assert.Equal("node2", client.Result.ConnectionProperties["advertised_host"]);
170+
Assert.Equal("5552", client.Result.ConnectionProperties["advertised_port"]);
171+
}
172+
}
173+
158174
[Fact]
159175
public async Task RoutingHelperShouldThrowIfLoadBalancerIsMisconfigured()
160176
{

0 commit comments

Comments
 (0)