package org.krakenapps.pcap.decoder.smb.response;
import org.krakenapps.pcap.decoder.smb.structure.SmbData;
public class ReadANDXExtensionResponse implements SmbData{
boolean malformed = false;
byte WordCount;
byte andxCommand;
byte andxReserved;
short andxOffset;
short available;
short dataCompactionMode;
short reserved1;
int dataLength;
short dataOffset;
int dataLengthHigh;
byte []reserved2 = new byte[8];
int byteCount;
byte []pad;
byte []data; // DataLength;
public byte getWordCount() {
return WordCount;
}
public void setWordCount(byte wordCount) {
WordCount = wordCount;
}
public byte getAndxCommand() {
return andxCommand;
}
public void setAndxCommand(byte andxCommand) {
this.andxCommand = andxCommand;
}
public byte getAndxReserved() {
return andxReserved;
}
public void setAndxReserved(byte andxReserved) {
this.andxReserved = andxReserved;
}
public short getAndxOffset() {
return andxOffset;
}
public void setAndxOffset(short andxOffset) {
this.andxOffset = andxOffset;
}
public short getAvailable() {
return available;
}
public void setAvailable(short available) {
this.available = available;
}
public short getDataCompactionMode() {
return dataCompactionMode;
}
public void setDataCompactionMode(short dataCompactionMode) {
this.dataCompactionMode = dataCompactionMode;
}
public short getReserved1() {
return reserved1;
}
public void setReserved1(short reserved1) {
this.reserved1 = reserved1;
}
public int getDataLength() {
return dataLength & 0xffffffff;
}
public void setDataLength(int dataLength) {
if(dataLength <0){
dataLength = dataLength & 0x0000ffff;
}
this.dataLength = dataLength;
}
public short getDataOffset() {
return dataOffset;
}
public void setDataOffset(short dataOffset) {
this.dataOffset = dataOffset;
}
public int getDataLengthHigh() {
return dataLengthHigh;
}
public void setDataLengthHigh(int dataLengthHigh) {
this.dataLengthHigh = dataLengthHigh;
}
public byte[] getReserved2() {
return reserved2;
}
public void setReserved2(byte[] reserved2) {
this.reserved2 = reserved2;
}
public int getByteCount() {
return byteCount & 0xffffffff;
}
public void setByteCount(int byteCount) {
if(byteCount <0){
byteCount = byteCount & 0x0000ffff;
}
this.byteCount = byteCount;
}
public byte[] getPad() {
return pad;
}
public void setPad(byte[] pad2) {
this.pad = pad2;
}
public byte[] getData() {
return data;
}
public void setData(byte[] data) {
this.data = data;
}
@Override
public boolean isMalformed() {
// TODO Auto-generated method stub
return malformed;
}
@Override
public void setMalformed(boolean malformed) {
this.malformed = malformed;
}
@Override
public String toString(){
return String.format("First Level : Read Andx Extension Response\n" +
"isMalformed = %s\n" +
"wordCount = 0x%s\n" +
"andxCommand = 0x%s , andxReserved = 0x%s , andxOffset = 0x%s\n" +
"available = 0x%s , dataCompactionMode = 0x%s , reserved1 = 0x%s\n" +
"dataLength = 0x%s , dataOffset = 0x%s , DataLengthHigh = 0x%s\n" +
"byteCount = 0x%s\n",
this.malformed,
Integer.toHexString(this.WordCount),
Integer.toHexString(this.andxCommand) , Integer.toHexString(this.andxReserved) , Integer.toHexString(this.andxOffset),
Integer.toHexString(this.available) , Integer.toHexString(this.dataCompactionMode) , Integer.toHexString(this.reserved1),
Integer.toHexString(this.dataLength) , Integer.toHexString(this.dataOffset) , Integer.toHexString(this.dataLengthHigh),
Integer.toHexString(this.byteCount));
}
}