diff options
Diffstat (limited to 'src/com/isode/stroke/network/PlatformDomainNameResolver.java')
-rw-r--r-- | src/com/isode/stroke/network/PlatformDomainNameResolver.java | 17 |
1 files changed, 13 insertions, 4 deletions
diff --git a/src/com/isode/stroke/network/PlatformDomainNameResolver.java b/src/com/isode/stroke/network/PlatformDomainNameResolver.java index 0b87e65..d7a4d35 100644 --- a/src/com/isode/stroke/network/PlatformDomainNameResolver.java +++ b/src/com/isode/stroke/network/PlatformDomainNameResolver.java @@ -16,6 +16,8 @@ import java.util.Collection; import com.isode.stroke.eventloop.Event.Callback; import com.isode.stroke.eventloop.EventLoop; import com.isode.stroke.eventloop.EventOwner; +import com.isode.stroke.idn.IDNConverter; +import com.isode.stroke.idn.ICUConverter; public class PlatformDomainNameResolver extends DomainNameResolver { @@ -54,18 +56,25 @@ public class PlatformDomainNameResolver extends DomainNameResolver { final EventLoop eventLoop; } - public PlatformDomainNameResolver(EventLoop eventLoop) { + public PlatformDomainNameResolver(IDNConverter idnConverter, EventLoop eventLoop) { this.eventLoop_ = eventLoop; + this.idnConverter = idnConverter; } @Override - public DomainNameServiceQuery createServiceQuery(String name) { - return new PlatformDomainNameServiceQuery(getNormalized(name), eventLoop_); + public DomainNameServiceQuery createServiceQuery(String serviceLookupPrefix, String name) { + String encodedDomain = idnConverter.getIDNAEncoded(name); + String result = ""; + if (encodedDomain != null) { + result = serviceLookupPrefix + encodedDomain; + } + return new PlatformDomainNameServiceQuery(result, eventLoop_); } @Override public DomainNameAddressQuery createAddressQuery(String name) { - return new AddressQuery(getNormalized(name), eventLoop_); + return new AddressQuery(idnConverter.getIDNAEncoded(name), eventLoop_); } private final EventLoop eventLoop_; + private IDNConverter idnConverter; } |