diff options
author | Florian Schmaus <flo@geekplace.eu> | 2014-06-08 13:18:46 +0200 |
---|---|---|
committer | Florian Schmaus <flo@geekplace.eu> | 2014-06-08 13:27:25 +0200 |
commit | 3236432c39f1d5a1bbbe362c5cfdb088756fd04f (patch) | |
tree | 3e67a0bed7fdd2d7525eca395c7f0dfd44bc64f5 /src/main/java/de/measite/minidns/record | |
parent | 152be6eb1a22da8cebe24ac4ee05b487936c9f2a (diff) |
Make minidns Android agnostic
there is really no need for minidns to be Android exclusive. Replacing
the Android log API with JUL make minidns available for Android and Java
SE.
Diffstat (limited to 'src/main/java/de/measite/minidns/record')
-rw-r--r-- | src/main/java/de/measite/minidns/record/A.java | 37 | ||||
-rw-r--r-- | src/main/java/de/measite/minidns/record/AAAA.java | 43 | ||||
-rw-r--r-- | src/main/java/de/measite/minidns/record/CNAME.java | 44 | ||||
-rw-r--r-- | src/main/java/de/measite/minidns/record/Data.java | 16 | ||||
-rw-r--r-- | src/main/java/de/measite/minidns/record/NS.java | 12 | ||||
-rw-r--r-- | src/main/java/de/measite/minidns/record/SRV.java | 74 |
6 files changed, 226 insertions, 0 deletions
diff --git a/src/main/java/de/measite/minidns/record/A.java b/src/main/java/de/measite/minidns/record/A.java new file mode 100644 index 00000000..a85a7af0 --- /dev/null +++ b/src/main/java/de/measite/minidns/record/A.java @@ -0,0 +1,37 @@ +package de.measite.minidns.record; + +import java.io.DataInputStream; +import java.io.IOException; + +import de.measite.minidns.Record.TYPE; + +public class A implements Data { + + private byte[] ip; + + @Override + public TYPE getType() { + return TYPE.A; + } + + @Override + public byte[] toByteArray() { + return ip; + } + + @Override + public void parse(DataInputStream dis, byte[] data, int length) + throws IOException { + ip = new byte[4]; + dis.readFully(ip); + } + + @Override + public String toString() { + return Integer.toString(ip[0] & 0xff) + "." + + Integer.toString(ip[1] & 0xff) + "." + + Integer.toString(ip[2] & 0xff) + "." + + Integer.toString(ip[3] & 0xff); + } + +} diff --git a/src/main/java/de/measite/minidns/record/AAAA.java b/src/main/java/de/measite/minidns/record/AAAA.java new file mode 100644 index 00000000..d89147b2 --- /dev/null +++ b/src/main/java/de/measite/minidns/record/AAAA.java @@ -0,0 +1,43 @@ +package de.measite.minidns.record; + +import java.io.DataInputStream; +import java.io.IOException; + +import de.measite.minidns.Record.TYPE; + +public class AAAA implements Data { + + private byte[] ip; + + @Override + public TYPE getType() { + return TYPE.AAAA; + } + + @Override + public byte[] toByteArray() { + return ip; + } + + @Override + public void parse(DataInputStream dis, byte[] data, int length) + throws IOException { + ip = new byte[16]; + dis.readFully(ip); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + for (int i = 0; i < ip.length; i += 2) { + if (i != 0) { + sb.append(':'); + } + sb.append(Integer.toHexString( + ((ip[i] & 0xff) << 8) + (ip[i + 1] & 0xff) + )); + } + return sb.toString(); + } + +} diff --git a/src/main/java/de/measite/minidns/record/CNAME.java b/src/main/java/de/measite/minidns/record/CNAME.java new file mode 100644 index 00000000..4657b4a5 --- /dev/null +++ b/src/main/java/de/measite/minidns/record/CNAME.java @@ -0,0 +1,44 @@ +package de.measite.minidns.record; + +import java.io.DataInputStream; +import java.io.IOException; + +import de.measite.minidns.Record.TYPE; +import de.measite.minidns.util.NameUtil; + +public class CNAME implements Data { + + protected String name; + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + @Override + public byte[] toByteArray() { + // TODO Auto-generated method stub + return null; + } + + @Override + public void parse(DataInputStream dis, byte[] data, int length) + throws IOException + { + this.name = NameUtil.parse(dis, data); + } + + @Override + public TYPE getType() { + return TYPE.CNAME; + } + + @Override + public String toString() { + return "to \"" + name + "\""; + } + +} diff --git a/src/main/java/de/measite/minidns/record/Data.java b/src/main/java/de/measite/minidns/record/Data.java new file mode 100644 index 00000000..9cb80374 --- /dev/null +++ b/src/main/java/de/measite/minidns/record/Data.java @@ -0,0 +1,16 @@ +package de.measite.minidns.record; + +import java.io.DataInputStream; +import java.io.IOException; + +import de.measite.minidns.Record.TYPE; + +public interface Data { + + TYPE getType(); + + byte[] toByteArray(); + + void parse(DataInputStream dis, byte data[], int length) throws IOException; + +} diff --git a/src/main/java/de/measite/minidns/record/NS.java b/src/main/java/de/measite/minidns/record/NS.java new file mode 100644 index 00000000..bf07e8c4 --- /dev/null +++ b/src/main/java/de/measite/minidns/record/NS.java @@ -0,0 +1,12 @@ +package de.measite.minidns.record; + +import de.measite.minidns.Record.TYPE; + +public class NS extends CNAME { + + @Override + public TYPE getType() { + return TYPE.NS; + } + +} diff --git a/src/main/java/de/measite/minidns/record/SRV.java b/src/main/java/de/measite/minidns/record/SRV.java new file mode 100644 index 00000000..32b70c4d --- /dev/null +++ b/src/main/java/de/measite/minidns/record/SRV.java @@ -0,0 +1,74 @@ +package de.measite.minidns.record; + +import java.io.DataInputStream; +import java.io.IOException; + +import de.measite.minidns.Record.TYPE; +import de.measite.minidns.util.NameUtil; + +public class SRV implements Data { + + protected int priority; + protected int weight; + protected int port; + protected String name; + + public int getPriority() { + return priority; + } + + public void setPriority(int priority) { + this.priority = priority; + } + + public int getWeight() { + return weight; + } + + public void setWeight(int weight) { + this.weight = weight; + } + + public int getPort() { + return port; + } + + public void setPort(int port) { + this.port = port; + } + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + @Override + public byte[] toByteArray() { + // TODO Auto-generated method stub + return null; + } + + @Override + public void parse(DataInputStream dis, byte[] data, int length) + throws IOException + { + this.priority = dis.readUnsignedShort(); + this.weight = dis.readUnsignedShort(); + this.port = dis.readUnsignedShort(); + this.name = NameUtil.parse(dis, data); + } + + @Override + public String toString() { + return "SRV " + name + ":" + port + " p:" + priority + " w:" + weight; + } + + @Override + public TYPE getType() { + return TYPE.SRV; + } + +} |