package org.krakenapps.pcap.decoder.smb.response;
import org.krakenapps.pcap.decoder.smb.TransData;
import org.krakenapps.pcap.decoder.smb.structure.SmbData;
import org.krakenapps.pcap.util.Buffer;
//0x25
public class TransactionResponse implements SmbData {
boolean malformed = false;
/* if error exist */
// param
byte wordCount;
// data
short byteCount;
/* if error exist */
/* if no error add follow */
// param
short totalParameterCount;
short totalDataCount;
short Reserved1;
short parameterCount;
short parameterOffset;
short parameterDisplacement;
short dataCount;
short dataOffset;
short dataDisplacement;
byte SetupCount;
byte reserved2;
byte[] setup; // new SetupCount;
TransData transactionData;
// data
byte[] pad1;
byte[] transParameters;
byte[] pad2;
byte[] transData;
Buffer upper;
public TransData getTransactionData() {
return transactionData;
}
public void setTransactionData(TransData transactionData) {
this.transactionData = transactionData;
}
public byte getWordCount() {
return wordCount;
}
public void setWordCount(byte wordCount) {
this.wordCount = wordCount;
}
public short getByteCount() {
return byteCount;
}
public short getParameterDisplacement() {
return parameterDisplacement;
}
public void setParameterDisplacement(short parameterDisplacement) {
this.parameterDisplacement = parameterDisplacement;
}
public Buffer getUpper() {
return upper;
}
public void setUpper(Buffer upper) {
this.upper = upper;
}
public void setByteCount(short byteCount) {
this.byteCount = byteCount;
}
public short getTotalParameterCount() {
return totalParameterCount;
}
public void setTotalParameterCount(short totalParameterCount) {
this.totalParameterCount = totalParameterCount;
}
public short getTotalDataCount() {
return totalDataCount;
}
public void setTotalDataCount(short totalDataCount) {
this.totalDataCount = totalDataCount;
}
public short getReserved1() {
return Reserved1;
}
public void setReserved1(short reserved1) {
Reserved1 = reserved1;
}
public short getParameterCount() {
return parameterCount;
}
public void setParameterCount(short parameterCount) {
this.parameterCount = parameterCount;
}
public short getParameterOffset() {
return parameterOffset;
}
public void setParameterOffset(short parameterOffset) {
this.parameterOffset = parameterOffset;
}
public short getParamterDisplacement() {
return parameterDisplacement;
}
public void setParamterDisplacement(short paramterDisplacement) {
this.parameterDisplacement = paramterDisplacement;
}
public short getDataCount() {
return dataCount;
}
public void setDataCount(short dataCount) {
this.dataCount = dataCount;
}
public short getDataOffset() {
return dataOffset;
}
public void setDataOffset(short dataOffset) {
this.dataOffset = dataOffset;
}
public short getDataDisplacement() {
return dataDisplacement;
}
public void setDataDisplacement(short dataDisplacement) {
this.dataDisplacement = dataDisplacement;
}
public byte getSetupCount() {
return SetupCount;
}
public void setSetupCount(byte setupCount) {
SetupCount = setupCount;
}
public byte getReserved2() {
return reserved2;
}
public void setReserved2(byte reserved2) {
this.reserved2 = reserved2;
}
public byte[] getSetup() {
return setup;
}
public void setSetup(byte[] setup) {
this.setup = setup;
}
public byte[] getPad1() {
return pad1;
}
public void setPad1(byte[] pad1) {
this.pad1 = pad1;
}
public byte[] getTransParameters() {
return transParameters;
}
public void setTransParameters(byte[] transParameters) {
this.transParameters = transParameters;
}
public byte[] getPad2() {
return pad2;
}
public void setPad2(byte[] pad2) {
this.pad2 = pad2;
}
public byte[] getTransData() {
return transData;
}
public void setTransData(byte[] transData) {
this.transData = transData;
}
@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 : Transaction Response\n"
+ "isMalformed = %s\n"
+ "wordCount = 0x%s(it must 0x00)\n"
+ "byteCount = 0x%%s\n"
+ "totalParameterCount = 0x%s , totalDataCount = 0x%s, reserved1 = 0x%s\n"
+ "parameterCount = 0x%s, parameterOffset = 0x%s, parameterDisplacement = 0x%s\n"
+ "dataCount = 0x%s, dataOffset = 0x%s, dataDisplacement = 0x%s\n"
+ "setupCount = 0x%s, reserved2 = 0x%s\n"
+ "transactionData = %s\n", this.malformed,
Integer.toHexString(this.wordCount),
Integer.toHexString(this.byteCount),
Integer.toHexString(this.totalParameterCount),
Integer.toHexString(this.totalDataCount),
Integer.toHexString(this.Reserved1),
Integer.toHexString(this.parameterCount),
Integer.toHexString(this.parameterOffset),
Integer.toHexString(this.parameterDisplacement),
Integer.toHexString(this.dataCount),
Integer.toHexString(this.dataOffset),
Integer.toHexString(this.dataDisplacement),
Integer.toHexString(this.SetupCount),
Integer.toHexString(this.reserved2),
this.transactionData);
}
}