package org.zarroboogs.smartzpn.dns;
import org.zarroboogs.smartzpn.utils.ProxyUtils;
import java.nio.ByteBuffer;
public class DnsHeader {
public short ID;
public DnsFlags Flags;
public short QuestionCount;
public short ResourceCount;
public short AResourceCount;
public short EResourceCount;
public static DnsHeader FromBytes(ByteBuffer buffer) {
DnsHeader header = new DnsHeader(buffer.array(), buffer.arrayOffset() + buffer.position());
header.ID = buffer.getShort();
header.Flags = DnsFlags.Parse(buffer.getShort());
header.QuestionCount = buffer.getShort();
header.ResourceCount = buffer.getShort();
header.AResourceCount = buffer.getShort();
header.EResourceCount = buffer.getShort();
return header;
}
public void ToBytes(ByteBuffer buffer) {
buffer.putShort(this.ID);
buffer.putShort(this.Flags.ToShort());
buffer.putShort(this.QuestionCount);
buffer.putShort(this.ResourceCount);
buffer.putShort(this.AResourceCount);
buffer.putShort(this.EResourceCount);
}
static final short offset_ID = 0;
static final short offset_Flags = 2;
static final short offset_QuestionCount = 4;
static final short offset_ResourceCount = 6;
static final short offset_AResourceCount = 8;
static final short offset_EResourceCount = 10;
public byte[] Data;
public int Offset;
public DnsHeader(byte[] data, int offset) {
this.Offset = offset;
this.Data = data;
}
public short getID() {
return ProxyUtils.readShort(Data, Offset + offset_ID);
}
public short getFlags() {
return ProxyUtils.readShort(Data, Offset + offset_Flags);
}
public short getQuestionCount() {
return ProxyUtils.readShort(Data, Offset + offset_QuestionCount);
}
public short getResourceCount() {
return ProxyUtils.readShort(Data, Offset + offset_ResourceCount);
}
public short getAResourceCount() {
return ProxyUtils.readShort(Data, Offset + offset_AResourceCount);
}
public short getEResourceCount() {
return ProxyUtils.readShort(Data, Offset + offset_EResourceCount);
}
public void setID(short value) {
ProxyUtils.writeShort(Data, Offset + offset_ID, value);
}
public void setFlags(short value) {
ProxyUtils.writeShort(Data, Offset + offset_Flags, value);
}
public void setQuestionCount(short value) {
ProxyUtils.writeShort(Data, Offset + offset_QuestionCount, value);
}
public void setResourceCount(short value) {
ProxyUtils.writeShort(Data, Offset + offset_ResourceCount, value);
}
public void setAResourceCount(short value) {
ProxyUtils.writeShort(Data, Offset + offset_AResourceCount, value);
}
public void setEResourceCount(short value) {
ProxyUtils.writeShort(Data, Offset + offset_EResourceCount, value);
}
}