package org.krakenapps.pcap.decoder.smb.response;
import org.krakenapps.pcap.decoder.smb.structure.SmbData;
public class TreeConnectANDXExtendResponse implements SmbData{
boolean malformed = false;
static final short SMB_SUPPORT_SEAERCH_BITS = 0x0001;
static final short SMB_SHARE_IS_IN_DFS = 0x0002;
static final short SMB_CSC_MASK = 0x000C;
static final short SMB_UNIQUE_FILE_NAME = 0x0010;
static final short SMB_EXTNEDED_SIGNATURES = 0x0020;
byte WordCount;
byte AndxCommand;
byte AndxReserved;
short andxOffset;
short optionalSupport;
int maximalShareAccessRight;
int guestMaximalShareAccessRight;
short byteCount;
String service;
String nativeFileSystem;
public byte getWordCount() {
return WordCount;
}
public void setWordCount(byte wordCount) {
WordCount = wordCount;
}
public byte getAndxCommand() {
return AndxCommand;
}
public void setAndxCommand(byte andxCommand) {
AndxCommand = andxCommand;
}
public byte getAndxReserved() {
return AndxReserved;
}
public void setAndxReserved(byte andxReserved) {
AndxReserved = andxReserved;
}
public short getAndxOffset() {
return andxOffset;
}
public void setAndxOffset(short andxOffset) {
this.andxOffset = andxOffset;
}
public short getOptionalSupport() {
return optionalSupport;
}
public void setOptionalSupport(short optionalSupport) {
this.optionalSupport = optionalSupport;
}
public int getMaximalShareAccessRight() {
return maximalShareAccessRight;
}
public void setMaximalShareAccessRight(int maximalShareAccessRight) {
this.maximalShareAccessRight = maximalShareAccessRight;
}
public int getGuestMaximalShareAccessRight() {
return guestMaximalShareAccessRight;
}
public void setGuestMaximalShareAccessRight(int guestMaximalShareAccessRight) {
this.guestMaximalShareAccessRight = guestMaximalShareAccessRight;
}
public short getByteCount() {
return byteCount;
}
public void setByteCount(short byteCount) {
this.byteCount = byteCount;
}
public String getService() {
return service;
}
public void setService(String service) {
this.service = service;
}
public String getNativeFileSystem() {
return nativeFileSystem;
}
public void setNativeFileSystem(String nativeFileSystem) {
this.nativeFileSystem = nativeFileSystem;
}
public boolean isOptionSupportSearchBits()
{
if((this.optionalSupport & SMB_SUPPORT_SEAERCH_BITS) == SMB_SUPPORT_SEAERCH_BITS)
return true;
else
return false;
}
public boolean isOptionShareIsInDfs()
{
if((this.optionalSupport & SMB_SHARE_IS_IN_DFS) == SMB_SHARE_IS_IN_DFS)
return true;
else
return false;
}
public boolean isOptionCscCacheAutoReint()
{
if(((this.optionalSupport & SMB_CSC_MASK)>>2 ) == 1)
return true;
else
return false;
}
public boolean isOptionCscCacheVdo()
{
if(((this.optionalSupport & SMB_CSC_MASK)>>2 ) == 2)
return true;
else
return false;
}
public boolean isOptionCscNoCashing()
{
if(((this.optionalSupport & SMB_CSC_MASK)>>2 ) == 3)
return true;
else
return false;
}
public boolean isOptionCscCacheManualReint()
{
if(((this.optionalSupport & SMB_CSC_MASK)>>2 ) == 0)
return true;
else
return false;
}
public boolean isOptionUniqueFileName()
{
if((this.optionalSupport & SMB_UNIQUE_FILE_NAME) == SMB_UNIQUE_FILE_NAME)
return true;
else
return false;
}
public boolean isOptionExtendedSugnatures()
{
if((this.optionalSupport & SMB_EXTNEDED_SIGNATURES) == SMB_EXTNEDED_SIGNATURES)
return true;
else
return false;
}
@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 : Tree Connect Andx Extend Response\n" +
"isMalformed = %s\n" +
"wordCount = 0x%s\n" +
"andxCommand = 0x%s, andxReserved = 0x%s, andxOffset = 0x%s\n" +
"optionalSupport = 0x%s , maximalShareAccessRight = 0x%s , guestMaximalShareAccessRight = 0x%s\n" +
"byteCount = 0x%s\n" +
"service = %s\n" +
"nativeFileSystem = %s\n",
this.malformed,
Integer.toHexString(this.WordCount),
Integer.toHexString(this.AndxCommand) , Integer.toHexString(this.AndxReserved) , Integer.toHexString(this.andxOffset),
Integer.toHexString(this.optionalSupport) , Integer.toHexString(this.maximalShareAccessRight) , Integer.toHexString(this.guestMaximalShareAccessRight),
Integer.toHexString(this.byteCount),
this.service,
this.nativeFileSystem);
}
}