From 520957ce9d6a5a764adcd0bf238a985eedc88050 Mon Sep 17 00:00:00 2001 From: moparisthebest Date: Sun, 14 Apr 2019 01:43:02 -0400 Subject: [PATCH] RequestResponse and subclasses are no more, resolveAsync simply takes/supplies Packet like resolve --- .../dns/listen/DohController.java | 3 -- .../moparisthebest/dns/listen/TcpAsync.java | 15 +++--- .../moparisthebest/dns/listen/UdpSync.java | 10 ++-- .../com/moparisthebest/dns/net/BufChan.java | 7 +-- .../dns/net/UdpRequestResponse.java | 27 ----------- .../dns/resolve/BaseRequestResponse.java | 47 ------------------- .../dns/resolve/BlockingQueueResolver.java | 13 ++--- .../dns/resolve/CacheResolver.java | 29 +++++------- .../dns/resolve/MapResolver.java | 7 +-- .../dns/resolve/QueueProcessingResolver.java | 18 +++---- .../dns/resolve/RandomUpstreamResolver.java | 4 +- .../dns/resolve/RequestCompletableFuture.java | 18 +++++++ .../dns/resolve/RequestResponse.java | 11 ----- .../RequestResponseCompletableFuture.java | 16 ------- .../moparisthebest/dns/resolve/Resolver.java | 12 ++--- .../dns/resolve/RetryResolver.java | 7 ++- .../dns/resolve/WrappingResolver.java | 4 +- .../dns/listen/XmppListener.java | 27 +---------- 18 files changed, 74 insertions(+), 201 deletions(-) delete mode 100644 jDnsProxy/src/main/java/com/moparisthebest/dns/net/UdpRequestResponse.java delete mode 100644 jDnsProxy/src/main/java/com/moparisthebest/dns/resolve/BaseRequestResponse.java create mode 100644 jDnsProxy/src/main/java/com/moparisthebest/dns/resolve/RequestCompletableFuture.java delete mode 100644 jDnsProxy/src/main/java/com/moparisthebest/dns/resolve/RequestResponse.java delete mode 100644 jDnsProxy/src/main/java/com/moparisthebest/dns/resolve/RequestResponseCompletableFuture.java diff --git a/http-doh-listener/src/main/java/com/moparisthebest/dns/listen/DohController.java b/http-doh-listener/src/main/java/com/moparisthebest/dns/listen/DohController.java index 0bf28f0..38293d3 100644 --- a/http-doh-listener/src/main/java/com/moparisthebest/dns/listen/DohController.java +++ b/http-doh-listener/src/main/java/com/moparisthebest/dns/listen/DohController.java @@ -1,13 +1,10 @@ package com.moparisthebest.dns.listen; -import java.io.InputStream; import java.nio.ByteBuffer; import java.util.Base64; -import java.util.concurrent.ExecutionException; import java.util.concurrent.ExecutorService; import com.moparisthebest.dns.dto.Packet; -import com.moparisthebest.dns.resolve.BaseRequestResponse; import com.moparisthebest.dns.resolve.Resolver; import org.springframework.http.HttpEntity; import org.springframework.http.HttpHeaders; diff --git a/jDnsProxy/src/main/java/com/moparisthebest/dns/listen/TcpAsync.java b/jDnsProxy/src/main/java/com/moparisthebest/dns/listen/TcpAsync.java index 0721c92..2da06da 100644 --- a/jDnsProxy/src/main/java/com/moparisthebest/dns/listen/TcpAsync.java +++ b/jDnsProxy/src/main/java/com/moparisthebest/dns/listen/TcpAsync.java @@ -36,14 +36,13 @@ public class TcpAsync implements Listener { this.local = local; dnsRequestRead = new FullReadCompletionHandler() { @Override - public void completed(final BufChan bufChan) { + public void completed(final BufChan bc) { try { - bufChan.buf.flip(); - bufChan.setRequest(new Packet(bufChan.buf)); - //debugPacket(bufChan.getRequest().getBuf()); + bc.buf.flip(); + //debugPacket(new Packet(bc.buf).getBuf()); - resolver.resolveAsync(bufChan, executor).whenCompleteAsync((bc, t) -> { + resolver.resolveAsync(new Packet(bc.buf), executor).whenCompleteAsync((response, t) -> { //System.out.println("got completed!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"); if(t != null) { t.printStackTrace(); @@ -52,13 +51,13 @@ public class TcpAsync implements Listener { //debugPacket(bc.getResponse().getBuf()); bc.tcpHead.clear(); - bc.tcpHead.putShort((short) bc.getResponse().getBuf().capacity()); + bc.tcpHead.putShort((short) response.getBuf().capacity()); bc.tcpHead.rewind(); bc.buf = bc.tcpHead; bc.write((FullWriteCompletionHandler) (bc2) -> { //System.out.println("header write complete"); - bc2.buf = bc2.getResponse().getBuf(); + bc2.buf = response.getBuf(); bc2.buf.rewind(); bc2.write((FullWriteCompletionHandler) (unused) -> { //System.out.println("body write complete"); @@ -69,7 +68,7 @@ public class TcpAsync implements Listener { e.printStackTrace(); } - BufChan.forTcp(bufChan.sock).read(dnsSizeRead); + BufChan.forTcp(bc.sock).read(dnsSizeRead); } }; dnsSizeRead = bc -> { diff --git a/jDnsProxy/src/main/java/com/moparisthebest/dns/listen/UdpSync.java b/jDnsProxy/src/main/java/com/moparisthebest/dns/listen/UdpSync.java index 83944f0..f57d3fa 100644 --- a/jDnsProxy/src/main/java/com/moparisthebest/dns/listen/UdpSync.java +++ b/jDnsProxy/src/main/java/com/moparisthebest/dns/listen/UdpSync.java @@ -37,12 +37,12 @@ public class UdpSync implements Listener { ss.receive(request); //System.out.println("got packet"); - final UdpRequestResponse requestResponse = new UdpRequestResponse(request.getSocketAddress(), - new Packet(ByteBuffer.wrap(request.getData(), request.getOffset(), request.getLength()).slice())); + final SocketAddress requester = request.getSocketAddress(); + final Packet requestPacket = new Packet(ByteBuffer.wrap(request.getData(), request.getOffset(), request.getLength()).slice()); //System.out.println(requestResponse); //debugPacket(requestResponse.getRequest().getBuf()); - resolver.resolveAsync(requestResponse, executor).whenCompleteAsync((urr, t) -> { + resolver.resolveAsync(requestPacket, executor).whenCompleteAsync((resp, t) -> { if(t != null) { t.printStackTrace(); return; @@ -50,10 +50,10 @@ public class UdpSync implements Listener { //debugPacket(urr.getResponse().getBuf()); //System.out.println("got response"); - final byte[] response = urr.getResponse().getBuf().array(); + final byte[] response = resp.getBuf().array(); final DatagramPacket responsePacket = new DatagramPacket(response, response.length); // todo: always exact length? meh - responsePacket.setSocketAddress(urr.getRequester()); + responsePacket.setSocketAddress(requester); try { ss.send(responsePacket); diff --git a/jDnsProxy/src/main/java/com/moparisthebest/dns/net/BufChan.java b/jDnsProxy/src/main/java/com/moparisthebest/dns/net/BufChan.java index 6dee6a7..7132c5c 100644 --- a/jDnsProxy/src/main/java/com/moparisthebest/dns/net/BufChan.java +++ b/jDnsProxy/src/main/java/com/moparisthebest/dns/net/BufChan.java @@ -1,15 +1,10 @@ package com.moparisthebest.dns.net; -import com.moparisthebest.dns.dto.Packet; -import com.moparisthebest.dns.resolve.BaseRequestResponse; -import com.moparisthebest.dns.resolve.RequestResponse; - import java.nio.ByteBuffer; import java.nio.channels.AsynchronousSocketChannel; import java.nio.channels.CompletionHandler; -import java.util.concurrent.CompletableFuture; -public class BufChan extends BaseRequestResponse { +public class BufChan { public final ByteBuffer tcpHead; public final AsynchronousSocketChannel sock; diff --git a/jDnsProxy/src/main/java/com/moparisthebest/dns/net/UdpRequestResponse.java b/jDnsProxy/src/main/java/com/moparisthebest/dns/net/UdpRequestResponse.java deleted file mode 100644 index d87f0ce..0000000 --- a/jDnsProxy/src/main/java/com/moparisthebest/dns/net/UdpRequestResponse.java +++ /dev/null @@ -1,27 +0,0 @@ -package com.moparisthebest.dns.net; - -import com.moparisthebest.dns.dto.Packet; -import com.moparisthebest.dns.resolve.BaseRequestResponse; - -import java.net.SocketAddress; - -public class UdpRequestResponse extends BaseRequestResponse { - - private final SocketAddress requester; - - public UdpRequestResponse(final SocketAddress requester, final Packet request) { - super(request); - this.requester = requester; - } - - public SocketAddress getRequester() { - return requester; - } - - @Override - public String toString() { - return "UdpRequestResponse{" + - "requester=" + requester + - "} " + super.toString(); - } -} diff --git a/jDnsProxy/src/main/java/com/moparisthebest/dns/resolve/BaseRequestResponse.java b/jDnsProxy/src/main/java/com/moparisthebest/dns/resolve/BaseRequestResponse.java deleted file mode 100644 index defd98c..0000000 --- a/jDnsProxy/src/main/java/com/moparisthebest/dns/resolve/BaseRequestResponse.java +++ /dev/null @@ -1,47 +0,0 @@ -package com.moparisthebest.dns.resolve; - -import com.moparisthebest.dns.dto.Packet; - -import java.nio.ByteBuffer; -import java.nio.channels.AsynchronousSocketChannel; -import java.nio.channels.CompletionHandler; -import java.util.concurrent.CompletableFuture; - -public class BaseRequestResponse implements RequestResponse { - - private Packet request, response; - - public BaseRequestResponse() { - } - - public BaseRequestResponse(final Packet request) { - this.request = request; - } - - @Override - public Packet getRequest() { - return request; - } - - public void setRequest(final Packet request) { - this.request = request; - } - - @Override - public Packet getResponse() { - return response; - } - - @Override - public void setResponse(final Packet response) { - this.response = response; - } - - @Override - public String toString() { - return "BaseRequestResponse{" + - "request=" + request + - ", response=" + response + - '}'; - } -} diff --git a/jDnsProxy/src/main/java/com/moparisthebest/dns/resolve/BlockingQueueResolver.java b/jDnsProxy/src/main/java/com/moparisthebest/dns/resolve/BlockingQueueResolver.java index e5a6976..bf93583 100644 --- a/jDnsProxy/src/main/java/com/moparisthebest/dns/resolve/BlockingQueueResolver.java +++ b/jDnsProxy/src/main/java/com/moparisthebest/dns/resolve/BlockingQueueResolver.java @@ -1,6 +1,7 @@ package com.moparisthebest.dns.resolve; import com.moparisthebest.dns.Util; +import com.moparisthebest.dns.dto.Packet; import java.util.Collection; import java.util.List; @@ -9,11 +10,11 @@ import java.util.stream.Collectors; public class BlockingQueueResolver implements MultiResolver { - private final BlockingQueue> queue; + private final BlockingQueue queue; private final List queueProcessingResolvers; - public BlockingQueueResolver(final BlockingQueue> queue, final ExecutorService executor, final Collection delegates) { + public BlockingQueueResolver(final BlockingQueue queue, final ExecutorService executor, final Collection delegates) { this.queue = queue; if (delegates.isEmpty()) throw new IllegalArgumentException("must supply at least 1 resolver"); @@ -25,10 +26,10 @@ public class BlockingQueueResolver implements MultiResolver { } @Override - public CompletableFuture resolveAsync(final E requestResponse, final Executor executor) { - final RequestResponseCompletableFuture request = new RequestResponseCompletableFuture<>(requestResponse); - queue.add(request); - return request; + public CompletableFuture resolveAsync(final Packet request, final Executor executor) { + final RequestCompletableFuture ret = new RequestCompletableFuture(request); + queue.add(ret); + return ret; } @Override diff --git a/jDnsProxy/src/main/java/com/moparisthebest/dns/resolve/CacheResolver.java b/jDnsProxy/src/main/java/com/moparisthebest/dns/resolve/CacheResolver.java index 19919d8..c7e123c 100644 --- a/jDnsProxy/src/main/java/com/moparisthebest/dns/resolve/CacheResolver.java +++ b/jDnsProxy/src/main/java/com/moparisthebest/dns/resolve/CacheResolver.java @@ -90,8 +90,8 @@ public class CacheResolver extends WrappingResolver { } @Override - public CompletableFuture resolveAsync(final E requestResponse, final Executor executor) { - final String key = calcRequestPacketKey(requestResponse.getRequest()); + public CompletableFuture resolveAsync(final Packet request, final Executor executor) { + final String key = calcRequestPacketKey(request); //System.out.println("requestPacketKey: " + key); final CachedPacket response = cache.get(key); //System.out.println("cachedPacket: " + response); @@ -99,20 +99,17 @@ public class CacheResolver extends WrappingResolver { final long currentTime = currentTimeSeconds(); if (response.isExpired(currentTime)) { //System.out.println("cachedPacket isExpired!"); - final CompletableFuture request = requestAndCache(key, requestResponse, executor); - final CompletableFuture stale = supplyAsyncOnTimeOut(scheduledExecutorService, staleResponseTimeout, TimeUnit.MILLISECONDS, () -> { - requestResponse.setResponse(response.getStaleResponse().setId(requestResponse.getRequest().getId())); - return requestResponse; - }); - return request.applyToEitherAsync(stale, s -> s); + final CompletableFuture ret = requestAndCache(key, request, executor); + final CompletableFuture stale = supplyAsyncOnTimeOut(scheduledExecutorService, staleResponseTimeout, TimeUnit.MILLISECONDS, + () -> response.getStaleResponse().setId(request.getId())); + return ret.applyToEitherAsync(stale, s -> s); } else { //System.out.println("cachedPacket returning from cache!"); - requestResponse.setResponse(response.getResponse(currentTime).setId(requestResponse.getRequest().getId())); - return CompletableFuture.completedFuture(requestResponse); + return CompletableFuture.completedFuture(response.getResponse(currentTime).setId(request.getId())); } } //System.out.println("no cachedPacket, querying upstream!"); - return requestAndCache(key, requestResponse, executor); + return requestAndCache(key, request, executor); /* // todo: should not have to do this, some upstreams seem to eat stuff though, figure that out, I think readTimeout fixed this final CompletableFuture request = requestAndCache(requestResponse); @@ -123,14 +120,14 @@ public class CacheResolver extends WrappingResolver { */ } - private CompletableFuture requestAndCache(final String key, final E requestResponse, final Executor executor) { - final CompletableFuture request = delegate.resolveAsync(requestResponse, executor); - request.thenAcceptAsync(s -> { - final Packet response = s.getResponse().copy(); // todo: do we need to copy? + private CompletableFuture requestAndCache(final String key, final Packet request, final Executor executor) { + final CompletableFuture ret = delegate.resolveAsync(request, executor); + ret.thenAcceptAsync(s -> { + final Packet response = s.copy(); // todo: do we need to copy? final long currentTime = currentTimeSeconds(); cache.put(key, new CachedPacket(response, currentTime, currentTime + response.getLowestTtl())); }, executor); - return request; + return ret; } public void persistCache(final File file, final Map cache) throws IOException { diff --git a/jDnsProxy/src/main/java/com/moparisthebest/dns/resolve/MapResolver.java b/jDnsProxy/src/main/java/com/moparisthebest/dns/resolve/MapResolver.java index 9cbbdd9..d7b9d6b 100644 --- a/jDnsProxy/src/main/java/com/moparisthebest/dns/resolve/MapResolver.java +++ b/jDnsProxy/src/main/java/com/moparisthebest/dns/resolve/MapResolver.java @@ -21,11 +21,8 @@ public class MapResolver extends WrappingResolver { } @Override - public CompletableFuture resolveAsync(final E requestResponse, final Executor executor) { - return delegate.resolveAsync(requestResponse, executor).thenApply(s -> { - s.setResponse(mapper.apply(s.getResponse())); - return s; - }); + public CompletableFuture resolveAsync(final Packet request, final Executor executor) { + return delegate.resolveAsync(request, executor).thenApply(mapper); } @Override diff --git a/jDnsProxy/src/main/java/com/moparisthebest/dns/resolve/QueueProcessingResolver.java b/jDnsProxy/src/main/java/com/moparisthebest/dns/resolve/QueueProcessingResolver.java index 0890b53..70ecaaa 100644 --- a/jDnsProxy/src/main/java/com/moparisthebest/dns/resolve/QueueProcessingResolver.java +++ b/jDnsProxy/src/main/java/com/moparisthebest/dns/resolve/QueueProcessingResolver.java @@ -3,18 +3,17 @@ package com.moparisthebest.dns.resolve; import com.moparisthebest.dns.dto.Packet; import java.util.concurrent.BlockingQueue; -import java.util.concurrent.CompletableFuture; import java.util.concurrent.ExecutorService; public class QueueProcessingResolver extends WrappingResolver implements Runnable { private final ExecutorService executor; - private final BlockingQueue> queue; + private final BlockingQueue queue; private boolean running = false; private Thread thisThread = null; - public QueueProcessingResolver(final Resolver delegate, final ExecutorService executor, final BlockingQueue> queue) { + public QueueProcessingResolver(final Resolver delegate, final ExecutorService executor, final BlockingQueue queue) { super(delegate); this.executor = executor; this.queue = queue; @@ -28,14 +27,12 @@ public class QueueProcessingResolver extends WrappingResolver implements Runnabl if (running) try { //System.err.println(name + " getting from queue"); - @SuppressWarnings("unchecked") - final RequestResponseCompletableFuture cf = (RequestResponseCompletableFuture) queue.take(); - final RequestResponse requestResponse = cf.getRequestResponse(); + final RequestCompletableFuture cf = queue.take(); //System.err.println(name + " got from queue"); Packet response = null; Throwable resolveException = null; try { - response = resolve(requestResponse.getRequest()); + response = resolve(cf.getRequest()); } catch (Throwable e) { //e.printStackTrace(); //System.err.println("FAILURE: " + name + ": " + e.getMessage()); @@ -47,10 +44,9 @@ public class QueueProcessingResolver extends WrappingResolver implements Runnabl // failed cf.completeExceptionally(resolveException == null ? new Exception("SRVFAIL") : resolveException); } else { - requestResponse.setResponse(response); - //System.err.println(name + " got response: " + requestResponse.getResponse()); - //System.err.println(name + " completed: " + cf.complete(requestResponse)); - cf.complete(requestResponse); + //System.err.println(name + " got response: " + response); + //System.err.println(name + " completed: " + cf.complete(response)); + cf.complete(response); } } catch (InterruptedException e) { throw new RuntimeException("socketresolver take", e); diff --git a/jDnsProxy/src/main/java/com/moparisthebest/dns/resolve/RandomUpstreamResolver.java b/jDnsProxy/src/main/java/com/moparisthebest/dns/resolve/RandomUpstreamResolver.java index 94192d3..38f8fb4 100644 --- a/jDnsProxy/src/main/java/com/moparisthebest/dns/resolve/RandomUpstreamResolver.java +++ b/jDnsProxy/src/main/java/com/moparisthebest/dns/resolve/RandomUpstreamResolver.java @@ -24,8 +24,8 @@ public class RandomUpstreamResolver implements MultiResolver { } @Override - public CompletableFuture resolveAsync(final E requestResponse, final Executor executor) { - return random().resolveAsync(requestResponse, executor); + public CompletableFuture resolveAsync(final Packet request, final Executor executor) { + return random().resolveAsync(request, executor); } @Override diff --git a/jDnsProxy/src/main/java/com/moparisthebest/dns/resolve/RequestCompletableFuture.java b/jDnsProxy/src/main/java/com/moparisthebest/dns/resolve/RequestCompletableFuture.java new file mode 100644 index 0000000..18b0120 --- /dev/null +++ b/jDnsProxy/src/main/java/com/moparisthebest/dns/resolve/RequestCompletableFuture.java @@ -0,0 +1,18 @@ +package com.moparisthebest.dns.resolve; + +import com.moparisthebest.dns.dto.Packet; + +import java.util.concurrent.CompletableFuture; + +public class RequestCompletableFuture extends CompletableFuture { + + private final Packet request; + + public RequestCompletableFuture(final Packet request) { + this.request = request; + } + + public Packet getRequest() { + return request; + } +} diff --git a/jDnsProxy/src/main/java/com/moparisthebest/dns/resolve/RequestResponse.java b/jDnsProxy/src/main/java/com/moparisthebest/dns/resolve/RequestResponse.java deleted file mode 100644 index c915ef1..0000000 --- a/jDnsProxy/src/main/java/com/moparisthebest/dns/resolve/RequestResponse.java +++ /dev/null @@ -1,11 +0,0 @@ -package com.moparisthebest.dns.resolve; - -import com.moparisthebest.dns.dto.Packet; - -import java.util.concurrent.CompletableFuture; - -public interface RequestResponse { - Packet getRequest(); - Packet getResponse(); - void setResponse(Packet response); -} diff --git a/jDnsProxy/src/main/java/com/moparisthebest/dns/resolve/RequestResponseCompletableFuture.java b/jDnsProxy/src/main/java/com/moparisthebest/dns/resolve/RequestResponseCompletableFuture.java deleted file mode 100644 index d4b9d3e..0000000 --- a/jDnsProxy/src/main/java/com/moparisthebest/dns/resolve/RequestResponseCompletableFuture.java +++ /dev/null @@ -1,16 +0,0 @@ -package com.moparisthebest.dns.resolve; - -import java.util.concurrent.CompletableFuture; - -public class RequestResponseCompletableFuture extends CompletableFuture { - - private final E requestResponse; - - public RequestResponseCompletableFuture(final E requestResponse) { - this.requestResponse = requestResponse; - } - - public E getRequestResponse() { - return requestResponse; - } -} diff --git a/jDnsProxy/src/main/java/com/moparisthebest/dns/resolve/Resolver.java b/jDnsProxy/src/main/java/com/moparisthebest/dns/resolve/Resolver.java index 3a26bec..6480faf 100644 --- a/jDnsProxy/src/main/java/com/moparisthebest/dns/resolve/Resolver.java +++ b/jDnsProxy/src/main/java/com/moparisthebest/dns/resolve/Resolver.java @@ -17,17 +17,15 @@ public interface Resolver extends AutoCloseable { /** * This must return immediately and resolve the DNS query in the background, using the given executor - * @param requestResponse + * @param request * @param executor - * @param * @return */ - default CompletableFuture resolveAsync(final E requestResponse, final Executor executor) { - final CompletableFuture ret = new CompletableFuture<>(); + default CompletableFuture resolveAsync(final Packet request, final Executor executor) { + final CompletableFuture ret = new CompletableFuture<>(); executor.execute(() -> { try { - requestResponse.setResponse(resolve(requestResponse.getRequest())); - ret.complete(requestResponse); + ret.complete(resolve(request)); } catch (Throwable e) { ret.completeExceptionally(e); } @@ -42,7 +40,7 @@ public interface Resolver extends AutoCloseable { * @throws Exception */ default Packet resolve(final Packet request) throws Exception { - return resolveAsync(new BaseRequestResponse(request), Runnable::run).get().getResponse(); + return resolveAsync(request, Runnable::run).get(); } default void close() { diff --git a/jDnsProxy/src/main/java/com/moparisthebest/dns/resolve/RetryResolver.java b/jDnsProxy/src/main/java/com/moparisthebest/dns/resolve/RetryResolver.java index cb59c2e..dd7ccdd 100644 --- a/jDnsProxy/src/main/java/com/moparisthebest/dns/resolve/RetryResolver.java +++ b/jDnsProxy/src/main/java/com/moparisthebest/dns/resolve/RetryResolver.java @@ -22,13 +22,12 @@ public class RetryResolver extends WrappingResolver { } @Override - public CompletableFuture resolveAsync(final E requestResponse, final Executor executor) { + public CompletableFuture resolveAsync(final Packet request, final Executor executor) { // todo: better async way to do this? - final CompletableFuture ret = new CompletableFuture<>(); + final CompletableFuture ret = new CompletableFuture<>(); executor.execute(() -> { try { - requestResponse.setResponse(resolve(requestResponse.getRequest())); - ret.complete(requestResponse); + ret.complete(resolve(request)); } catch (Throwable e) { ret.completeExceptionally(e); } diff --git a/jDnsProxy/src/main/java/com/moparisthebest/dns/resolve/WrappingResolver.java b/jDnsProxy/src/main/java/com/moparisthebest/dns/resolve/WrappingResolver.java index 2e266ad..e5c0ada 100644 --- a/jDnsProxy/src/main/java/com/moparisthebest/dns/resolve/WrappingResolver.java +++ b/jDnsProxy/src/main/java/com/moparisthebest/dns/resolve/WrappingResolver.java @@ -16,8 +16,8 @@ public abstract class WrappingResolver implements Resolver { } @Override - public CompletableFuture resolveAsync(final E requestResponse, final Executor executor) { - return delegate.resolveAsync(requestResponse, executor); + public CompletableFuture resolveAsync(final Packet request, final Executor executor) { + return delegate.resolveAsync(request, executor); } @Override diff --git a/xmpp-dox/src/main/java/com/moparisthebest/dns/listen/XmppListener.java b/xmpp-dox/src/main/java/com/moparisthebest/dns/listen/XmppListener.java index 76df72e..9ce6684 100644 --- a/xmpp-dox/src/main/java/com/moparisthebest/dns/listen/XmppListener.java +++ b/xmpp-dox/src/main/java/com/moparisthebest/dns/listen/XmppListener.java @@ -2,7 +2,6 @@ package com.moparisthebest.dns.listen; import com.moparisthebest.dns.dto.Packet; import com.moparisthebest.dns.net.ParsedUrl; -import com.moparisthebest.dns.resolve.BaseRequestResponse; import com.moparisthebest.dns.resolve.Resolver; import com.moparisthebest.dns.xmpp.ConnectionDetails; import com.moparisthebest.dns.xmpp.DnsIq; @@ -49,16 +48,15 @@ public class XmppListener implements Listener { final byte[] request = DnsIq.parseDnsIq(req); if (request != null) { //System.out.println("good request: " + req); - final XmppRequestResponse requestResponse = new XmppRequestResponse(req.getFrom(), new Packet(request)); - resolver.resolveAsync(requestResponse, executor).whenCompleteAsync((urr, t) -> { + resolver.resolveAsync(new Packet(request), executor).whenCompleteAsync((urr, t) -> { if (t != null) { t.printStackTrace(); return; } //debugPacket(urr.getResponse().getBuf()); - final IQ resp = DnsIq.responseFor(req, urr.getResponse().getBuf()); + final IQ resp = DnsIq.responseFor(req, urr.getBuf()); try { //System.out.println("dns response: " + resp.toString()); @@ -129,25 +127,4 @@ public class XmppListener implements Listener { if (thisThread != null) thisThread.interrupt(); } - - public class XmppRequestResponse extends BaseRequestResponse { - - private final Jid requester; - - public XmppRequestResponse(final Jid requester, final Packet request) { - super(request); - this.requester = requester; - } - - public Jid getRequester() { - return requester; - } - - @Override - public String toString() { - return "XmppRequestResponse{" + - "requester=" + requester + - "} " + super.toString(); - } - } }