package org.krakenapps.pcap.decoder.smb.request;
import org.krakenapps.pcap.decoder.smb.structure.LockingANDXRange32;
import org.krakenapps.pcap.decoder.smb.structure.LockingANDXRange64;
import org.krakenapps.pcap.decoder.smb.structure.SmbData;
//0x24
public class LockingANDXRequest implements SmbData{
boolean malformed = false;
byte wordCount;
byte andxCommand;
byte andxReserved;
short andxOffset;
short fid;
byte typeOfLock;
byte newOpLockLevel;
int timeout;
short numberOfreqedUnlocks;
short numberOfreqedLocks;
//data
short byteCount;
LockingANDXRange32 []unlocks32;// 10 byte
LockingANDXRange64 []unlocks64;// 20 byte
LockingANDXRange32 []Locks32;
LockingANDXRange64 []locks64;
public byte getWordCount() {
return wordCount;
}
public void setWordCount(byte wordCount) {
this.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 getFid() {
return fid;
}
public void setFid(short fid) {
this.fid = fid;
}
public byte getTypeOfLock() {
return typeOfLock;
}
public void setTypeOfLock(byte typeOfLock) {
this.typeOfLock = typeOfLock;
}
public byte getNewOpLockLevel() {
return newOpLockLevel;
}
public void setNewOpLockLevel(byte newOpLockLevel) {
this.newOpLockLevel = newOpLockLevel;
}
public int getTimeout() {
return timeout;
}
public void setTimeout(int timeout) {
this.timeout = timeout;
}
public short getNumberOfreqedUnlocks() {
return numberOfreqedUnlocks;
}
public void setNumberOfreqedUnlocks(short numberOfreqedUnlocks) {
this.numberOfreqedUnlocks = numberOfreqedUnlocks;
}
public short getNumberOfreqedLocks() {
return numberOfreqedLocks;
}
public void setNumberOfreqedLocks(short numberOfreqedLocks) {
this.numberOfreqedLocks = numberOfreqedLocks;
}
public short getByteCount() {
return byteCount;
}
public void setByteCount(short byteCount) {
this.byteCount = byteCount;
}
public LockingANDXRange32[] getUnlocks32() {
return unlocks32;
}
public void setUnlocks32(LockingANDXRange32[] unlocks32) {
this.unlocks32 = unlocks32;
}
public LockingANDXRange64[] getUnlocks64() {
return unlocks64;
}
public void setUnlocks64(LockingANDXRange64[] unlocks64) {
this.unlocks64 = unlocks64;
}
public LockingANDXRange32[] getLocks32() {
return Locks32;
}
public void setLocks32(LockingANDXRange32[] locks32) {
Locks32 = locks32;
}
public LockingANDXRange64[] getLocks64() {
return locks64;
}
public void setLocks64(LockingANDXRange64[] locks64) {
this.locks64 = locks64;
}
@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 : Locking AndX Request\n"+
"isMalformed = %s\n"+
"wordCount = 0x%s\n"+
"andxCommand = 0x%s , andxReserved = 0x%s , andxOffset = 0x%s\n"+
"fid = 0x%s , typeOfLock = 0x%s , newOpLockLevel = 0x%s\n"+
"timeOut = 0x%s , numberOfReqedUnlocks = 0x%s , numberofreqedLocks = 0x%s\n"+
"byteCount = 0x%s\n"+
"Locking Andx not showed",
this.malformed,
Integer.toHexString(this.wordCount),
Integer.toHexString(this.andxCommand), Integer.toHexString(this.andxReserved) , Integer.toHexString(this.andxOffset),
Integer.toHexString(this.fid) , Integer.toHexString(this.typeOfLock) , Integer.toHexString(this.newOpLockLevel),
Integer.toHexString(this.timeout) , Integer.toHexString(this.numberOfreqedUnlocks) , Integer.toHexString(this.numberOfreqedLocks),
Integer.toHexString(this.byteCount));
}
}