From 74e9b546bce1694ef235cbddbaed51e7efa8a1f3 Mon Sep 17 00:00:00 2001 From: moparisthebest Date: Sat, 13 Apr 2019 17:03:34 -0400 Subject: [PATCH] Refactor MinTtlResolver to MapResolver --- .../java/com/moparisthebest/dns/DnsProxy.java | 2 +- .../{MinTtlResolver.java => MapResolver.java} | 19 +++++++++---------- 2 files changed, 10 insertions(+), 11 deletions(-) rename jDnsProxy/src/main/java/com/moparisthebest/dns/resolve/{MinTtlResolver.java => MapResolver.java} (52%) diff --git a/jDnsProxy/src/main/java/com/moparisthebest/dns/DnsProxy.java b/jDnsProxy/src/main/java/com/moparisthebest/dns/DnsProxy.java index 80cf300..88c2e48 100644 --- a/jDnsProxy/src/main/java/com/moparisthebest/dns/DnsProxy.java +++ b/jDnsProxy/src/main/java/com/moparisthebest/dns/DnsProxy.java @@ -63,7 +63,7 @@ public class DnsProxy { final ExecutorService executor = scheduledExecutorService;//ForkJoinPool.commonPool(); final CacheResolver resolver = new CacheResolver( - MinTtlResolver.of(minTtl, + MapResolver.minTtl(minTtl, new BlockingQueueResolver(packetQueueLength) .startQueueProcessingResolvers(executor, queueProcessingResolvers) ), diff --git a/jDnsProxy/src/main/java/com/moparisthebest/dns/resolve/MinTtlResolver.java b/jDnsProxy/src/main/java/com/moparisthebest/dns/resolve/MapResolver.java similarity index 52% rename from jDnsProxy/src/main/java/com/moparisthebest/dns/resolve/MinTtlResolver.java rename to jDnsProxy/src/main/java/com/moparisthebest/dns/resolve/MapResolver.java index 1564a94..4c34ccb 100644 --- a/jDnsProxy/src/main/java/com/moparisthebest/dns/resolve/MinTtlResolver.java +++ b/jDnsProxy/src/main/java/com/moparisthebest/dns/resolve/MapResolver.java @@ -4,34 +4,33 @@ import com.moparisthebest.dns.dto.Packet; import java.util.concurrent.CompletableFuture; import java.util.concurrent.Executor; +import java.util.function.Function; -public class MinTtlResolver implements Resolver { - - private final int minTtl; +public class MapResolver implements Resolver { private final Resolver delegate; + private final Function mapper; - public static Resolver of(final int minTtl, final Resolver delegate) { + public static Resolver minTtl(final int minTtl, final Resolver delegate) { // anything less than 1 just don't wrap - return minTtl < 1 ? delegate : new MinTtlResolver(minTtl, delegate); + return minTtl < 1 ? delegate : new MapResolver(delegate, (s) -> s.modTtls((ttl) -> Math.max(ttl, minTtl))); } - private MinTtlResolver(final int minTtl, final Resolver delegate) { - this.minTtl = minTtl; + private MapResolver(final Resolver delegate, final Function mapper) { this.delegate = delegate; + this.mapper = mapper; } @Override public CompletableFuture resolveAsync(final E requestResponse, final Executor executor) { return delegate.resolveAsync(requestResponse, executor).thenApply(s -> { - s.getResponse().modTtls((ttl) -> Math.max(ttl, minTtl)); - //s.getResponse().modTtls((ttl) -> 30); + s.setResponse(mapper.apply(s.getResponse())); return s; }); } @Override public Packet resolve(final Packet request) throws Exception { - return delegate.resolve(request).modTtls((ttl) -> Math.max(ttl, minTtl)); + return mapper.apply(delegate.resolve(request)); } }