Renamed some classes to lowercase

This commit is contained in:
Ziver Koc 2017-01-19 17:12:11 +01:00
parent 89076bfa54
commit 1d34a264b1
9 changed files with 70 additions and 71 deletions

View file

@ -14,16 +14,16 @@ import java.util.List;
* @see <a href="https://tools.ietf.org/html/rfc1035">rfc1035</a> * @see <a href="https://tools.ietf.org/html/rfc1035">rfc1035</a>
* @author Ziver on 2016-04-11. * @author Ziver on 2016-04-11.
*/ */
public class DNSPacket { public class DnsPacket {
private DNSPacketHeader header; private DnsPacketHeader header;
private ArrayList<DNSPacketQuestion> questions; private ArrayList<DnsPacketQuestion> questions;
private ArrayList<DNSPacketResource> answerRecords; private ArrayList<DnsPacketResource> answerRecords;
private ArrayList<DNSPacketResource> nameServers; private ArrayList<DnsPacketResource> nameServers;
private ArrayList<DNSPacketResource> additionalRecords; private ArrayList<DnsPacketResource> additionalRecords;
public DNSPacket(){ public DnsPacket(){
header = new DNSPacketHeader(); header = new DnsPacketHeader();
questions = new ArrayList<>(); questions = new ArrayList<>();
answerRecords = new ArrayList<>(); answerRecords = new ArrayList<>();
nameServers = new ArrayList<>(); nameServers = new ArrayList<>();
@ -31,47 +31,47 @@ public class DNSPacket {
} }
public DNSPacketHeader getHeader(){ public DnsPacketHeader getHeader(){
return header; return header;
} }
public List<DNSPacketQuestion> getQuestions(){ public List<DnsPacketQuestion> getQuestions(){
return Collections.unmodifiableList(questions); return Collections.unmodifiableList(questions);
} }
public List<DNSPacketResource> getAnswerRecords(){ public List<DnsPacketResource> getAnswerRecords(){
return Collections.unmodifiableList(answerRecords); return Collections.unmodifiableList(answerRecords);
} }
public List<DNSPacketResource> getNameServers(){ public List<DnsPacketResource> getNameServers(){
return Collections.unmodifiableList(nameServers); return Collections.unmodifiableList(nameServers);
} }
public List<DNSPacketResource> getAdditionalRecords(){ public List<DnsPacketResource> getAdditionalRecords(){
return Collections.unmodifiableList(additionalRecords); return Collections.unmodifiableList(additionalRecords);
} }
public void addQuestion(DNSPacketQuestion question){ public void addQuestion(DnsPacketQuestion question){
questions.add(question); questions.add(question);
header.countQuestion = questions.size(); header.countQuestion = questions.size();
} }
public void addAnswerRecord(DNSPacketResource resource){ public void addAnswerRecord(DnsPacketResource resource){
answerRecords.add(resource); answerRecords.add(resource);
header.countAnswerRecord = answerRecords.size(); header.countAnswerRecord = answerRecords.size();
} }
public void addNameServer(DNSPacketResource resource){ public void addNameServer(DnsPacketResource resource){
nameServers.add(resource); nameServers.add(resource);
header.countNameServer = nameServers.size(); header.countNameServer = nameServers.size();
} }
public void addAdditionalRecord(DNSPacketResource resource){ public void addAdditionalRecord(DnsPacketResource resource){
additionalRecords.add(resource); additionalRecords.add(resource);
header.countAdditionalRecord = additionalRecords.size(); header.countAdditionalRecord = additionalRecords.size();
} }
public static DNSPacket read(BinaryStructInputStream structIn) throws IOException { public static DnsPacket read(BinaryStructInputStream structIn) throws IOException {
DNSPacket packet = new DNSPacket(); DnsPacket packet = new DnsPacket();
structIn.read(packet.header); structIn.read(packet.header);
for (int i=0; i<packet.header.countQuestion; ++i) { for (int i=0; i<packet.header.countQuestion; ++i) {
DNSPacketQuestion question = new DNSPacketQuestion(); DnsPacketQuestion question = new DnsPacketQuestion();
structIn.read(question); structIn.read(question);
packet.questions.add(question); packet.questions.add(question);
} }
@ -80,9 +80,9 @@ public class DNSPacket {
readResource(structIn, packet.header.countAdditionalRecord, packet.additionalRecords); readResource(structIn, packet.header.countAdditionalRecord, packet.additionalRecords);
return packet; return packet;
} }
private static void readResource(BinaryStructInputStream structIn, int count, ArrayList<DNSPacketResource> list) throws IOException { private static void readResource(BinaryStructInputStream structIn, int count, ArrayList<DnsPacketResource> list) throws IOException {
for (int i=0; i<count; ++i){ for (int i=0; i<count; ++i){
DNSPacketResource resource = new DNSPacketResource(); DnsPacketResource resource = new DnsPacketResource();
structIn.read(resource); structIn.read(resource);
list.add(resource); list.add(resource);
} }
@ -91,13 +91,13 @@ public class DNSPacket {
public void write(BinaryStructOutputStream structOut) throws IOException { public void write(BinaryStructOutputStream structOut) throws IOException {
structOut.write(header); structOut.write(header);
for (DNSPacketQuestion question : questions) for (DnsPacketQuestion question : questions)
structOut.write(question); structOut.write(question);
for (DNSPacketResource answerRecord : answerRecords) for (DnsPacketResource answerRecord : answerRecords)
structOut.write(answerRecord); structOut.write(answerRecord);
for (DNSPacketResource nameServer : nameServers) for (DnsPacketResource nameServer : nameServers)
structOut.write(nameServer); structOut.write(nameServer);
for (DNSPacketResource additionalRecord : additionalRecords) for (DnsPacketResource additionalRecord : additionalRecords)
structOut.write(additionalRecord); structOut.write(additionalRecord);
} }

View file

@ -30,7 +30,7 @@ import zutil.parser.binary.BinaryStruct;
* Created by Ziver on 2016-02-09. * Created by Ziver on 2016-02-09.
* Reference: http://tools.ietf.org/html/rfc1035 * Reference: http://tools.ietf.org/html/rfc1035
*/ */
public class DNSPacketHeader implements BinaryStruct { public class DnsPacketHeader implements BinaryStruct {
public static final int OPCODE_QUERY = 0; public static final int OPCODE_QUERY = 0;
public static final int OPCODE_IQUERY = 1; public static final int OPCODE_IQUERY = 1;
public static final int OPCODE_STATUS = 2; public static final int OPCODE_STATUS = 2;

View file

@ -36,7 +36,7 @@ import java.io.OutputStream;
* Created by Ziver on 2016-02-09. * Created by Ziver on 2016-02-09.
* Reference: http://tools.ietf.org/html/rfc1035 * Reference: http://tools.ietf.org/html/rfc1035
*/ */
public class DNSPacketQuestion implements BinaryStruct { public class DnsPacketQuestion implements BinaryStruct {
/** a host address */ /** a host address */
public static final int QTYPE_A = 1; public static final int QTYPE_A = 1;
/** an authoritative name server */ /** an authoritative name server */
@ -135,8 +135,8 @@ public class DNSPacketQuestion implements BinaryStruct {
public DNSPacketQuestion() {} public DnsPacketQuestion() {}
public DNSPacketQuestion(String qName, int qType, int qClass) { public DnsPacketQuestion(String qName, int qType, int qClass) {
this.qName = qName; this.qName = qName;
this.qType = qType; this.qType = qType;
this.qClass = qClass; this.qClass = qClass;

View file

@ -31,7 +31,7 @@ import zutil.parser.binary.BinaryStruct;
* Created by Ziver on 2016-02-09. * Created by Ziver on 2016-02-09.
* Reference: http://tools.ietf.org/html/rfc1035 * Reference: http://tools.ietf.org/html/rfc1035
*/ */
public class DNSPacketResource implements BinaryStruct { public class DnsPacketResource implements BinaryStruct {
/** a host address */ /** a host address */
public static final int TYPE_A = 1; public static final int TYPE_A = 1;
@ -110,7 +110,7 @@ public class DNSPacketResource implements BinaryStruct {
/** /**
* a domain name to which this resource record pertains. * a domain name to which this resource record pertains.
*/ */
@CustomBinaryField(index=10, serializer=DNSPacketQuestion.FQDNStringSerializer.class) @CustomBinaryField(index=10, serializer=DnsPacketQuestion.FQDNStringSerializer.class)
public String name; public String name;
/** /**

View file

@ -24,6 +24,6 @@
package zutil.net.dns; package zutil.net.dns;
public interface DNSResolutionListener{ public interface DnsResolutionListener {
void receivedResponse(DNSPacket packet); void receivedResponse(DnsPacket packet);
} }

View file

@ -24,7 +24,6 @@
package zutil.net.dns; package zutil.net.dns;
import zutil.ByteUtil;
import zutil.io.MultiPrintStream; import zutil.io.MultiPrintStream;
import zutil.log.LogUtil; import zutil.log.LogUtil;
import zutil.net.threaded.ThreadedUDPNetwork; import zutil.net.threaded.ThreadedUDPNetwork;
@ -47,7 +46,7 @@ import java.util.logging.Logger;
* *
* Created by Ziver * Created by Ziver
*/ */
public class MulticastDNSClient extends ThreadedUDPNetwork implements ThreadedUDPNetworkThread{ public class MulticastDnsClient extends ThreadedUDPNetwork implements ThreadedUDPNetworkThread{
private static final Logger logger = LogUtil.getLogger(); private static final Logger logger = LogUtil.getLogger();
private static final String MDNS_MULTICAST_ADDR = "224.0.0.251"; private static final String MDNS_MULTICAST_ADDR = "224.0.0.251";
@ -55,17 +54,17 @@ public class MulticastDNSClient extends ThreadedUDPNetwork implements ThreadedUD
private HashSet<Integer> activeProbes; private HashSet<Integer> activeProbes;
private DNSResolutionListener listener; private DnsResolutionListener listener;
public MulticastDNSClient() throws IOException { public MulticastDnsClient() throws IOException {
super(MDNS_MULTICAST_ADDR, MDNS_MULTICAST_PORT); super(MDNS_MULTICAST_ADDR, MDNS_MULTICAST_PORT);
setThread( this ); setThread( this );
this.activeProbes = new HashSet<>(); this.activeProbes = new HashSet<>();
} }
public void setListener(DNSResolutionListener listener){ public void setListener(DnsResolutionListener listener){
this.listener = listener; this.listener = listener;
} }
@ -76,13 +75,13 @@ public class MulticastDNSClient extends ThreadedUDPNetwork implements ThreadedUD
ByteArrayOutputStream buffer = new ByteArrayOutputStream(); ByteArrayOutputStream buffer = new ByteArrayOutputStream();
BinaryStructOutputStream out = new BinaryStructOutputStream(buffer); BinaryStructOutputStream out = new BinaryStructOutputStream(buffer);
DNSPacket dnsPacket = new DNSPacket(); DnsPacket dnsPacket = new DnsPacket();
dnsPacket.getHeader().id = id; dnsPacket.getHeader().id = id;
dnsPacket.getHeader().setDefaultQueryData(); dnsPacket.getHeader().setDefaultQueryData();
dnsPacket.addQuestion(new DNSPacketQuestion( dnsPacket.addQuestion(new DnsPacketQuestion(
domain, domain,
DNSPacketQuestion.QTYPE_A, DnsPacketQuestion.QTYPE_A,
DNSPacketQuestion.QCLASS_IN)); DnsPacketQuestion.QCLASS_IN));
dnsPacket.write(out); dnsPacket.write(out);
DatagramPacket udpPacket = new DatagramPacket( DatagramPacket udpPacket = new DatagramPacket(
@ -103,18 +102,18 @@ public class MulticastDNSClient extends ThreadedUDPNetwork implements ThreadedUD
ByteArrayInputStream buffer = new ByteArrayInputStream(packet.getData(), ByteArrayInputStream buffer = new ByteArrayInputStream(packet.getData(),
packet.getOffset(), packet.getLength()); packet.getOffset(), packet.getLength());
BinaryStructInputStream in = new BinaryStructInputStream(buffer); BinaryStructInputStream in = new BinaryStructInputStream(buffer);
DNSPacket dnsPacket = DNSPacket.read(in); DnsPacket dnsPacket = DnsPacket.read(in);
//System.out.println("Received:\n"+ByteUtil.toFormattedString(packet.getData(), packet.getOffset(), packet.getLength())); //System.out.println("Received:\n"+ByteUtil.toFormattedString(packet.getData(), packet.getOffset(), packet.getLength()));
MultiPrintStream.out.dump(dnsPacket,3); MultiPrintStream.out.dump(dnsPacket,3);
if (dnsPacket.getHeader().flagQueryResponse) { if (dnsPacket.getHeader().flagQueryResponse) {
if (activeProbes.contains(dnsPacket.getHeader().id)){ if (activeProbes.contains(dnsPacket.getHeader().id)){
logger.fine("Received MDSN response from: "+packet.getAddress()+", msg id: " + dnsPacket.getHeader().id); logger.fine("Received MDNS response from: "+packet.getAddress()+", msg id: " + dnsPacket.getHeader().id);
if (listener != null) if (listener != null)
listener.receivedResponse(dnsPacket); listener.receivedResponse(dnsPacket);
} else { } else {
logger.fine("Received MDSN packet: "+packet.getAddress()+", msg id: " + dnsPacket.getHeader().id); logger.fine("Received MDNS packet: "+packet.getAddress()+", msg id: " + dnsPacket.getHeader().id);
} }
} }
} catch (IOException e){ } catch (IOException e){

View file

@ -34,17 +34,17 @@ import java.io.ByteArrayOutputStream;
import java.io.IOException; import java.io.IOException;
import static org.junit.Assert.*; import static org.junit.Assert.*;
import static zutil.net.dns.DNSPacketQuestion.*; import static zutil.net.dns.DnsPacketQuestion.*;
import static zutil.net.dns.DNSPacketResource.*; import static zutil.net.dns.DnsPacketResource.*;
/** /**
* Created by Ziver * Created by Ziver
*/ */
public class DNSPacketTest { public class DnsPacketTest {
@Test @Test
public void writeRequestHeaderTest() throws IOException { public void writeRequestHeaderTest() throws IOException {
DNSPacketHeader header = new DNSPacketHeader(); DnsPacketHeader header = new DnsPacketHeader();
header.setDefaultQueryData(); header.setDefaultQueryData();
header.countQuestion = 1; header.countQuestion = 1;
@ -58,7 +58,7 @@ public class DNSPacketTest {
@Test @Test
public void readResponseHeaderTest() throws IOException { public void readResponseHeaderTest() throws IOException {
DNSPacketHeader header = new DNSPacketHeader(); DnsPacketHeader header = new DnsPacketHeader();
header.setDefaultResponseData(); header.setDefaultResponseData();
header.countAnswerRecord = 1; header.countAnswerRecord = 1;
@ -72,7 +72,7 @@ public class DNSPacketTest {
@Test @Test
public void writeRequestDnsPacketHeaderTest() throws IOException { public void writeRequestDnsPacketHeaderTest() throws IOException {
DNSPacket packet = new DNSPacket(); DnsPacket packet = new DnsPacket();
packet.getHeader().setDefaultQueryData(); packet.getHeader().setDefaultQueryData();
ByteArrayOutputStream buffer = new ByteArrayOutputStream(); ByteArrayOutputStream buffer = new ByteArrayOutputStream();
@ -92,9 +92,9 @@ public class DNSPacketTest {
@Test @Test
public void writeRequestDnsPacketTest() throws IOException { public void writeRequestDnsPacketTest() throws IOException {
DNSPacket packet = new DNSPacket(); DnsPacket packet = new DnsPacket();
packet.getHeader().setDefaultQueryData(); packet.getHeader().setDefaultQueryData();
packet.addQuestion(new DNSPacketQuestion("appletv.local", QTYPE_A, QCLASS_IN)); packet.addQuestion(new DnsPacketQuestion("appletv.local", QTYPE_A, QCLASS_IN));
ByteArrayOutputStream buffer = new ByteArrayOutputStream(); ByteArrayOutputStream buffer = new ByteArrayOutputStream();
BinaryStructOutputStream out = new BinaryStructOutputStream(buffer); BinaryStructOutputStream out = new BinaryStructOutputStream(buffer);
@ -156,7 +156,7 @@ public class DNSPacketTest {
}; };
ByteArrayInputStream buffer = new ByteArrayInputStream(Converter.toBytes(input)); ByteArrayInputStream buffer = new ByteArrayInputStream(Converter.toBytes(input));
BinaryStructInputStream in = new BinaryStructInputStream(buffer); BinaryStructInputStream in = new BinaryStructInputStream(buffer);
DNSPacket packet = DNSPacket.read(in); DnsPacket packet = DnsPacket.read(in);
// Assert Header // Assert Header
assertTrue("flagQueryResponse", packet.getHeader().flagQueryResponse); assertTrue("flagQueryResponse", packet.getHeader().flagQueryResponse);
@ -165,7 +165,7 @@ public class DNSPacketTest {
assertEquals("ARCOUNT", 2, packet.getHeader().countAdditionalRecord); assertEquals("ARCOUNT", 2, packet.getHeader().countAdditionalRecord);
// Assert Answer // Assert Answer
assertEquals("No Of Answer records", 1, packet.getAnswerRecords().size()); assertEquals("No Of Answer records", 1, packet.getAnswerRecords().size());
DNSPacketResource answer = packet.getAnswerRecords().get(0); DnsPacketResource answer = packet.getAnswerRecords().get(0);
assertEquals("NAME", "appletv.local", answer.name); assertEquals("NAME", "appletv.local", answer.name);
assertEquals("TYPE", TYPE_A, answer.type); assertEquals("TYPE", TYPE_A, answer.type);
assertEquals("CLASS", CLASS_IN, answer.clazz); assertEquals("CLASS", CLASS_IN, answer.clazz);
@ -205,13 +205,13 @@ Domain Name System (query)
Type: A (Host address) Type: A (Host address)
Class: IN (0x0001) Class: IN (0x0001)
*/ */
DNSPacket packet = new DNSPacket(); DnsPacket packet = new DnsPacket();
DNSPacketHeader header = packet.getHeader(); DnsPacketHeader header = packet.getHeader();
header.id = 0x241a; header.id = 0x241a;
header.flagRecursionDesired = true; header.flagRecursionDesired = true;
header.countQuestion = 1; header.countQuestion = 1;
DNSPacketQuestion question = new DNSPacketQuestion(); DnsPacketQuestion question = new DnsPacketQuestion();
question.qName = "www.google.com"; question.qName = "www.google.com";
question.qType = QTYPE_A; question.qType = QTYPE_A;
question.qClass = QCLASS_IN; question.qClass = QCLASS_IN;
@ -298,7 +298,7 @@ Domain Name System (response)
).replace(" ", "")); ).replace(" ", ""));
ByteArrayInputStream buffer = new ByteArrayInputStream(input); ByteArrayInputStream buffer = new ByteArrayInputStream(input);
BinaryStructInputStream in = new BinaryStructInputStream(buffer); BinaryStructInputStream in = new BinaryStructInputStream(buffer);
DNSPacket packet = DNSPacket.read(in); DnsPacket packet = DnsPacket.read(in);
assertEquals("id", 0x241a, packet.getHeader().id); assertEquals("id", 0x241a, packet.getHeader().id);
assertTrue("flagQueryResponse", packet.getHeader().flagQueryResponse); assertTrue("flagQueryResponse", packet.getHeader().flagQueryResponse);
@ -308,13 +308,13 @@ Domain Name System (response)
assertEquals("No Of Additional records", 0, packet.getHeader().countAdditionalRecord); assertEquals("No Of Additional records", 0, packet.getHeader().countAdditionalRecord);
// Query // Query
DNSPacketQuestion question = packet.getQuestions().get(0); DnsPacketQuestion question = packet.getQuestions().get(0);
assertEquals("qNAME", "www.google.com", question.qName); assertEquals("qNAME", "www.google.com", question.qName);
assertEquals("qType", DNSPacketQuestion.QTYPE_A, question.qType); assertEquals("qType", DnsPacketQuestion.QTYPE_A, question.qType);
assertEquals("qClass", DNSPacketQuestion.QCLASS_IN, question.qClass); assertEquals("qClass", DnsPacketQuestion.QCLASS_IN, question.qClass);
// Answer // Answer
DNSPacketResource answer = packet.getAnswerRecords().get(0); DnsPacketResource answer = packet.getAnswerRecords().get(0);
assertEquals("NAME", "12", answer.name); assertEquals("NAME", "12", answer.name);
assertEquals("TYPE", TYPE_CNAME, answer.type); assertEquals("TYPE", TYPE_CNAME, answer.type);
assertEquals("CLASS", CLASS_IN, answer.clazz); assertEquals("CLASS", CLASS_IN, answer.clazz);

View file

@ -8,24 +8,24 @@ import java.io.IOException;
import java.util.logging.Level; import java.util.logging.Level;
/** /**
* Test class for MulticastDNSClient. * Test class for MulticastDnsClient.
* *
* Created by Ziver on 2016-04-26. * Created by Ziver on 2016-04-26.
*/ */
public class MulticastDNSClientTest { public class MulticastDnsClientTest {
public static void main(String[] args) throws IOException { public static void main(String[] args) throws IOException {
LogUtil.setGlobalLevel(Level.ALL); LogUtil.setGlobalLevel(Level.ALL);
LogUtil.setGlobalFormatter(new CompactLogFormatter()); LogUtil.setGlobalFormatter(new CompactLogFormatter());
MulticastDNSClient mdns = new MulticastDNSClient(); MulticastDnsClient mdns = new MulticastDnsClient();
mdns.start(); mdns.start();
//mdns.sendProbe("appletv.local"); //mdns.sendProbe("appletv.local");
//mdns.sendProbe("_services._dns-sd._udp.local"); //mdns.sendProbe("_services._dns-sd._udp.local");
mdns.sendProbe("_googlecast._tcp.local"); mdns.sendProbe("_googlecast._tcp.local");
mdns.setListener(new DNSResolutionListener() { mdns.setListener(new DnsResolutionListener() {
@Override @Override
public void receivedResponse(DNSPacket packet) { public void receivedResponse(DnsPacket packet) {
System.out.println("####### Received:"); System.out.println("####### Received:");
MultiPrintStream.out.dump(packet,3); MultiPrintStream.out.dump(packet,3);
} }

View file

@ -33,12 +33,12 @@ import java.io.IOException;
import java.util.Map; import java.util.Map;
public class HTTPGuessTheNumber implements HttpPage { public class HttpGuessTheNumber implements HttpPage {
public static void main(String[] args) throws IOException{ public static void main(String[] args) throws IOException{
//HttpServer server = new HttpServer("localhost", 443, FileFinder.find("keySSL"), "rootroot");//SSL //HttpServer server = new HttpServer("localhost", 443, FileFinder.find("keySSL"), "rootroot");//SSL
HttpServer server = new HttpServer(8080); HttpServer server = new HttpServer(8080);
server.setDefaultPage(new HTTPGuessTheNumber()); server.setDefaultPage(new HttpGuessTheNumber());
server.run(); server.run();
} }