@@ -333,6 +333,7 @@ public async Task<StreamInfo> StreamInfo(string streamName)
333
333
// when theres 1 endpoint and an address resolver, there could be a cluster behind a load balancer
334
334
var forceLocalHost = false ;
335
335
var localPort = 0 ;
336
+ var localHostOrAddress = "" ;
336
337
if ( _clientParameters . Endpoints . Count == 1 &&
337
338
_clientParameters . AddressResolver is null )
338
339
{
@@ -342,10 +343,12 @@ public async Task<StreamInfo> StreamInfo(string streamName)
342
343
case DnsEndPoint { Host : "localhost" } dnsEndPoint :
343
344
forceLocalHost = true ;
344
345
localPort = dnsEndPoint . Port ;
346
+ localHostOrAddress = dnsEndPoint . Host ;
345
347
break ;
346
- case IPEndPoint ipEndPoint when Equals ( ipEndPoint . Address , IPAddress . Loopback ) :
348
+ case IPEndPoint ipEndPoint when IPAddress . IsLoopback ( ipEndPoint . Address ) :
347
349
forceLocalHost = true ;
348
350
localPort = ipEndPoint . Port ;
351
+ localHostOrAddress = ipEndPoint . Address . ToString ( ) ;
349
352
break ;
350
353
}
351
354
}
@@ -354,7 +357,7 @@ public async Task<StreamInfo> StreamInfo(string streamName)
354
357
if ( forceLocalHost )
355
358
{
356
359
// craft the metadata response to force using localhost
357
- var leader = new Broker ( "localhost" , ( uint ) localPort ) ;
360
+ var leader = new Broker ( localHostOrAddress , ( uint ) localPort ) ;
358
361
metaStreamInfo = new StreamInfo ( streamName , ResponseCode . Ok , leader ,
359
362
new List < Broker > ( 1 ) { leader } ) ;
360
363
}
0 commit comments