diff --git a/leigh-stack-dnsd/build.gradle b/leigh-stack-dnsd/build.gradle index 1cbc5228916fd792265f9ff45f7acc6546a10f6b..defbdb86fd622b6a2567136e968ec70c31c7801b 100644 --- a/leigh-stack-dnsd/build.gradle +++ b/leigh-stack-dnsd/build.gradle @@ -4,7 +4,7 @@ plugins { } group 'leigh' -version '1.15' +version '1.16' repositories { mavenCentral() diff --git a/leigh-stack-dnsd/src/main/java/leigh/stack/dnsd/DNSService.java b/leigh-stack-dnsd/src/main/java/leigh/stack/dnsd/DNSService.java index 6bad145c579506a2bcd1b1db8b9d5f35d63b9e23..0a040a99ca8947623695faef2964f7c3348a7a51 100644 --- a/leigh-stack-dnsd/src/main/java/leigh/stack/dnsd/DNSService.java +++ b/leigh-stack-dnsd/src/main/java/leigh/stack/dnsd/DNSService.java @@ -45,7 +45,6 @@ public class DNSService implements Runnable { executorService.submit(() -> { try { - query(socket, in, indp.getAddress(), indp.getPort()); } catch (Exception e) { // e.printStackTrace(); diff --git a/leigh-stack-dnsd/src/main/java/leigh/stack/dnsd/DNSUtil.java b/leigh-stack-dnsd/src/main/java/leigh/stack/dnsd/DNSUtil.java index baf2584bbed947d0aa140e86e8bb8248c659a7c7..913fd4710cd3bd5d9090d9e4eabe13d017d74734 100644 --- a/leigh-stack-dnsd/src/main/java/leigh/stack/dnsd/DNSUtil.java +++ b/leigh-stack-dnsd/src/main/java/leigh/stack/dnsd/DNSUtil.java @@ -18,6 +18,17 @@ public class DNSUtil { return reply; } + public static Message buildReply(Message request, String hostname) throws IOException { + Message reply = new Message(request.getHeader().getID()); + reply.getHeader().setFlag(Flags.RD); + reply.getHeader().setFlag(Flags.QR); + reply.getHeader().setFlag(Flags.RA); + reply.addRecord(request.getQuestion(), Section.QUESTION); + + reply.addRecord(new PTRRecord(request.getQuestion().getName(), DClass.IN, 60, new Name(hostname)), Section.ANSWER); + return reply; + } + public static Message buildEmpty(Message request) throws IOException { Message reply = new Message(request.getHeader().getID()); reply.getHeader().setFlag(Flags.RD); diff --git a/leigh-stack-dnsd/src/main/java/leigh/stack/dnsd/EmergencyNameStore.java b/leigh-stack-dnsd/src/main/java/leigh/stack/dnsd/EmergencyNameStore.java index d138378e11b4ae76068c7564e8b671355dd5fa80..05c1dabe4a9cd9ed56bdcdb152d2bbef8020ef08 100644 --- a/leigh-stack-dnsd/src/main/java/leigh/stack/dnsd/EmergencyNameStore.java +++ b/leigh-stack-dnsd/src/main/java/leigh/stack/dnsd/EmergencyNameStore.java @@ -23,6 +23,7 @@ public class EmergencyNameStore implements NameStore { String name = request.getQuestion().getName().toString(); return switch (name) { + case "b0.leigh-co.com." -> DNSUtil.buildReply(request, InetAddress.getByName("10.52.4.16")); case "bungie.leigh-co.com." -> DNSUtil.buildReply(request, InetAddress.getByName("10.52.4.35")); case "db1.leigh-co.com." -> DNSUtil.buildReply(request, InetAddress.getByName("10.52.4.22")); @@ -49,6 +50,8 @@ public class EmergencyNameStore implements NameStore { case "web0.leigh-co.com." -> DNSUtil.buildReply(request, InetAddress.getByName("10.52.4.20")); case "world.leigh-co.com." -> DNSUtil.buildReply(request, InetAddress.getByName("10.52.4.5")); case "zebra.leigh-co.com." -> DNSUtil.buildReply(request, InetAddress.getByName("10.52.4.17")); + case "24.4.52.10.in-addr.arpa." -> DNSUtil.buildReply(request, "helium.leigh-co.com."); + case "67.4.52.10.in-addr.arpa." -> DNSUtil.buildReply(request, "irc0.leigh-co.com."); default -> null; }; }