package org.zarroboogs.smartzpn.tcpip;
import org.zarroboogs.smartzpn.utils.ProxyUtils;
public class UDPHeader {
static final short offset_src_port = 0; // Source port
static final short offset_dest_port = 2; // Destination port
static final short offset_tlen = 4; // Datagram length
static final short offset_crc = 6; // Checksum
public byte[] m_Data;
public int m_Offset;
public UDPHeader(byte[] data, int offset) {
this.m_Data = data;
this.m_Offset = offset;
}
public short getSourcePort() {
return ProxyUtils.readShort(m_Data, m_Offset + offset_src_port);
}
public void setSourcePort(short value) {
ProxyUtils.writeShort(m_Data, m_Offset + offset_src_port, value);
}
public short getDestinationPort() {
return ProxyUtils.readShort(m_Data, m_Offset + offset_dest_port);
}
public void setDestinationPort(short value) {
ProxyUtils.writeShort(m_Data, m_Offset + offset_dest_port, value);
}
public int getTotalLength() {
return ProxyUtils.readShort(m_Data, m_Offset + offset_tlen) & 0xFFFF;
}
public void setTotalLength(int value) {
ProxyUtils.writeShort(m_Data, m_Offset + offset_tlen, (short) value);
}
public short getCrc() {
return ProxyUtils.readShort(m_Data, m_Offset + offset_crc);
}
public void setCrc(short value) {
ProxyUtils.writeShort(m_Data, m_Offset + offset_crc, value);
}
@Override
public String toString() {
// TODO Auto-generated method stub
return String.format("%d->%d", getSourcePort() & 0xFFFF,
getDestinationPort() & 0xFFFF);
}
}