aboutsummaryrefslogtreecommitdiffstats
path: root/src/main/java/de/measite/minidns/Question.java
diff options
context:
space:
mode:
Diffstat (limited to 'src/main/java/de/measite/minidns/Question.java')
-rw-r--r--src/main/java/de/measite/minidns/Question.java62
1 files changed, 62 insertions, 0 deletions
diff --git a/src/main/java/de/measite/minidns/Question.java b/src/main/java/de/measite/minidns/Question.java
new file mode 100644
index 00000000..9d1e3f56
--- /dev/null
+++ b/src/main/java/de/measite/minidns/Question.java
@@ -0,0 +1,62 @@
+package de.measite.minidns;
+
+import java.io.ByteArrayOutputStream;
+import java.io.DataInputStream;
+import java.io.DataOutputStream;
+import java.io.IOException;
+
+import de.measite.minidns.Record.CLASS;
+import de.measite.minidns.Record.TYPE;
+import de.measite.minidns.util.NameUtil;
+
+public class Question {
+
+ private String name;
+
+ private TYPE type;
+
+ private CLASS clazz = CLASS.IN;
+
+ public TYPE getType() {
+ return type;
+ }
+
+ public void setType(TYPE type) {
+ this.type = type;
+ }
+
+ public CLASS getClazz() {
+ return clazz;
+ }
+
+ public void setClazz(CLASS clazz) {
+ this.clazz = clazz;
+ }
+
+ public String getName() {
+ return name;
+ }
+
+ public void setName(String name) {
+ this.name = name;
+ }
+
+ public void parse(DataInputStream dis, byte[] data) throws IOException {
+ this.name = NameUtil.parse(dis, data);
+ this.type = TYPE.getType(dis.readUnsignedShort());
+ this.clazz = CLASS.getClass(dis.readUnsignedShort());
+ }
+
+ public byte[] toByteArray() throws IOException {
+ ByteArrayOutputStream baos = new ByteArrayOutputStream(512);
+ DataOutputStream dos = new DataOutputStream(baos);
+
+ dos.write(NameUtil.toByteArray(this.name));
+ dos.writeShort(type.getValue());
+ dos.writeShort(clazz.getValue());
+
+ dos.flush();
+ return baos.toByteArray();
+ }
+
+}