11package org .nhindirect .gateway .springconfig ;
22
33import java .net .UnknownHostException ;
4+ import java .util .Arrays ;
5+ import java .util .List ;
46
57import org .apache .commons .lang3 .ArrayUtils ;
68import org .apache .commons .lang3 .StringUtils ;
1113import org .springframework .context .annotation .Configuration ;
1214import org .xbill .DNS .ExtendedResolver ;
1315import org .xbill .DNS .Resolver ;
16+ import org .xbill .DNS .ResolverConfig ;
1417import org .xbill .DNS .SimpleResolver ;
1518
1619@ Configuration
@@ -43,24 +46,23 @@ public ExtendedResolver getDNSResolver() throws Exception
4346 }
4447 }
4548
46- if (!StringUtils .isEmpty (dnsServers ))
49+ final List <String > servers = getDNSServers ();
50+
51+ for (String server : servers )
4752 {
48- for (String server : dnsServers .split ("," ))
49- {
50- // support for IP addresses instead of names
51- server = server .replaceFirst ("\\ .$" , "" );
53+ // support for IP addresses instead of names
54+ server = server .replaceFirst ("\\ .$" , "" );
5255
53- try
54- {
55- // create and add a SimpleResolver for each server
56- SimpleResolver simpleResolver = new SimpleResolver (server );
57- extendedResolver .addResolver (simpleResolver );
58- }
59- catch (UnknownHostException e )
60- {
61- LOGGER .warn ("Unable to add resolver for " + server , e );
62- continue ;
63- }
56+ try
57+ {
58+ // create and add a SimpleResolver for each server
59+ SimpleResolver simpleResolver = new SimpleResolver (server );
60+ extendedResolver .addResolver (simpleResolver );
61+ }
62+ catch (UnknownHostException e )
63+ {
64+ LOGGER .warn ("Unable to add resolver for " + server , e );
65+ continue ;
6466 }
6567 }
6668
@@ -69,4 +71,12 @@ public ExtendedResolver getDNSResolver() throws Exception
6971
7072 return extendedResolver ;
7173 }
74+
75+ protected List <String > getDNSServers ()
76+ {
77+ final String [] configedServers = (!StringUtils .isEmpty (dnsServers )) ? dnsServers .split ("," ) :
78+ ResolverConfig .getCurrentConfig ().servers ();
79+
80+ return Arrays .asList (configedServers );
81+ }
7282}
0 commit comments