@@ -117,6 +117,7 @@ class NodeManager {
117117 Map < string , [ NodeAddress , NodeContactAddressData ] >
118118 > = new Map ( ) ;
119119 protected concurrencyLimit = 3 ;
120+ protected dnsServers : Array < string > | undefined = undefined ;
120121
121122 protected refreshBucketHandler : TaskHandler = async (
122123 ctx ,
@@ -224,9 +225,12 @@ class NodeManager {
224225 // Establishing connections to the initial nodes
225226 const connectionResults = await Promise . allSettled (
226227 initialNodes . map ( async ( [ nodeIdEncoded , nodeAddress ] ) => {
227- const resolvedHosts = await networkUtils . resolveHostnames ( [
228- nodeAddress ,
229- ] ) ;
228+ const resolvedHosts = await networkUtils . resolveHostnames (
229+ [ nodeAddress ] ,
230+ undefined ,
231+ this . dnsServers ,
232+ ctx ,
233+ ) ;
230234 if ( resolvedHosts . length === 0 ) {
231235 throw new nodesErrors . ErrorNodeManagerResolveNodeFailed (
232236 `Failed to resolve '${ nodeAddress [ 0 ] } '` ,
@@ -329,6 +333,7 @@ class NodeManager {
329333 retryConnectionsDelayTime = 45_000 , // 45 seconds
330334 nodesConnectionFindLocalTimeoutTime = config . defaultsSystem
331335 . nodesConnectionFindLocalTimeoutTime ,
336+ dnsServers,
332337 logger,
333338 } : {
334339 db : DB ;
@@ -347,6 +352,7 @@ class NodeManager {
347352 refreshBucketDelayJitter ?: number ;
348353 retryConnectionsDelayTime ?: number ;
349354 nodesConnectionFindLocalTimeoutTime ?: number ;
355+ dnsServers ?: Array < string > ;
350356 logger ?: Logger ;
351357 } ) {
352358 this . logger = logger ?? new Logger ( this . constructor . name ) ;
@@ -366,6 +372,12 @@ class NodeManager {
366372 this . refreshBucketDelayJitter = Math . max ( 0 , refreshBucketDelayJitter ) ;
367373 this . retryConnectionsDelayTime = retryConnectionsDelayTime ;
368374 this . connectionFindMDNSTimeoutTime = nodesConnectionFindLocalTimeoutTime ;
375+ if ( dnsServers != null ) {
376+ this . logger . info (
377+ `Overriding DNS resolution servers with ${ JSON . stringify ( dnsServers ) } ` ,
378+ ) ;
379+ }
380+ this . dnsServers = dnsServers ;
369381 }
370382
371383 public async start ( ) {
@@ -843,8 +855,12 @@ class NodeManager {
843855 addresses . push ( [ host , port ] ) ;
844856 }
845857 }
846- const resolvedHosts =
847- await networkUtils . resolveHostnames ( addresses ) ;
858+ const resolvedHosts = await networkUtils . resolveHostnames (
859+ addresses ,
860+ undefined ,
861+ this . dnsServers ,
862+ ctx ,
863+ ) ;
848864
849865 try {
850866 await this . nodeConnectionManager . createConnectionMultiple (
0 commit comments